광동 기술 대학교 Panyu 캠퍼스 -next 게임을 칭찬하고 싶습니다.
우리의 OS는 주로 Ben Shu가 작성한 "RISC-V 아키텍처 프로그래밍 및 연습"이라는 책을 나타냅니다.
기타 참조 :
"64 비트 운영 체제의 설계 및 구현"-Tian Yu
RISCV-XV6
모든 것을 만드십시오 : 편집
실행 : QEMU를 시작하십시오
깨끗하게 만들기 : 생성 된 모든 파일을 지우십시오
디버그 만들기 : QEMU 및 GDB 디버깅을 시작하십시오
시간 제한으로 인해 OS는 간단한 인터럽트 처리, 메모리 관리, 프로세스 스케줄링 기능, 파일 시스템의 작은 부분 및 몇 가지 시스템 호출만을 구현합니다. 버그는 결국 성공적으로 고정되지 않았으므로 우리의 virtio 드라이버에는 여전히 문제가 있으며 사용할 수 없습니다. 파일 시스템이 완전히 완료되지 않았습니다. 따라서 파일 시스템은 문서를 제공하지 않았습니다. 저를 용서 해주세요.
우리는 Virtio 드라이버의 버그를 수정하고 기본 파일 시스템을 완료했으며 정적 링커를 실행하는 ELF 파일 로더 만 지원했으며 소수의 SYSCALL 및 SHELL 명령을 지원했습니다.
예외 처리 및 인터럽트
메모리 관리 및 페이지 테이블 매핑
프로세스 관리 및 스케줄링
VFS 가상 파일 시스템
엘프 로더
Qu Weikai는 코드 개발, Liang Sijun의 개발을 담당하며 그는 버그의 디버깅 및 문서 작성을 담당합니다.
.vscode:vscode相关
bootloader:opensbi生成的sbi固件,由于使用了QEMU默认的sbi固件,因此该文件夹内的opensbi固件未使用
doc:文档说明
include:头文件
LinkList.h:链表操作
buf.h:与文件系统相关,用于读写虚拟磁盘的缓冲区
csr.h:控制寄存器相关
fs.h:与文件系统相关,由于未完成,目前内容仅有超级块的定义
io.h:与读取写入相关
log.h:文件系统相关,磁盘日志
memory.h:mmu和内存管理相关
page_table.h:页表相关的宏定义
plic.h:plic相关
process.h:进程管理相关
pt_offset.h:与上下文现场保存相关
sbi.h:S模式下系统调用opensbi固件接口
scheduler.h:进程调度相关
sleeplock.h:睡眠锁
syscall.h:系统调用
timer.h:定时器
trap.h:中断和异常
uart.h:16550串口控制器
virtio.h:virtio设备驱动
VFS.h:虚拟文件系统相关
fat32.h:fat32文件系统相关
elf.h:elf格式定义
elf_loader.h:elf加载器
sysflags.h:系统调用使用标志
kernel:内核文件夹
driver:virtio驱动,存在问题
fs:文件系统相关
memeory:内存管理和mmu映射
process:进程管理
trap:中断和异常
boot.S:opensbi引导到跳转至内核
entry.S:汇编相关定义
linker.ld:链接脚本
main.c:内核主函数在内
lib:通用库,包含输出和基本函数
usr:与U模式相关시간 제한과 제한된 수준으로 인해 지정된 시간 내에 작업을 완료하지 못했습니다. 그러나 우리는이 기간 동안 많은 것을 배웠습니다. 학교의 운영 체제 수업은 이론에 중점을두고 있으며, 경쟁은 우리에게 실제 수준에서 운영 체제에 대한 더 깊은 이해를 제공했습니다. 작품을 작성하는 동안, 우리는 또한 명령 줄 GDB 디버깅을 시작하여 나중에 학습을 사용하여 VSCODE를 사용하여 GDB 디버깅에 연결하는 것과 같은 개발 효율성을 향상시키는 많은 방법을 배웠으므로 디버깅의 효율성이 크게 향상되었습니다. 우리가 OS를 완성하고 테스트하지 못한 것은 매우 유감 스럽지만, 경쟁 이후에 우리가 배운 지식은 많은 혜택을 얻었으며, 이는 경쟁에 참여한다는 목표도 달성했습니다.