Universitas Guangdong Teknologi Panyu Campus-Bext Saya ingin memuji permainan
OS kami terutama mengacu pada buku "RISC-V Architecture Programming and Practice" yang ditulis oleh Ben Shu.
Referensi Lainnya:
"Desain dan Implementasi Sistem Operasi 64-Bit"-Tian Yu
RISCV-XV6
Buat semua: Disusun
LAKIKAN: MULAI QEMU
Buat Bersih: Hapus Semua File yang Dihasilkan
Buat Debug: Mulai Qemu dan GDB Debugging
Karena keterbatasan waktu, OS kami hanya mengimplementasikan pemrosesan interupsi sederhana, manajemen memori, fungsi penjadwalan proses, sebagian kecil dari sistem file dan beberapa panggilan sistem. Karena bug itu tidak berhasil diperbaiki pada akhirnya, driver virtio kami masih memiliki masalah dan tidak dapat digunakan. Sistem file tidak sepenuhnya selesai. Oleh karena itu, sistem file belum memberikan dokumentasi. Mohon maafkan saya.
Kami memperbaiki bug driver virtio, menyelesaikan sistem file dasar dan hanya pendukung loader file elf yang menjalankan linker statis, dan mendukung sejumlah kecil perintah syscall dan shell
Penanganan dan interupsi pengecualian
Manajemen memori dan pemetaan tabel halaman
Manajemen proses dan penjadwalan
Sistem file virtual VFS
ELF LOADER
Qu Weikai bertanggung jawab atas pengembangan kode, Liang Sijun dan dia Chang bertanggung jawab atas debugging bug dan penulisan dokumen.
.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模式相关Karena keterbatasan waktu dan tingkat terbatas kami, kami tidak menyelesaikan pekerjaan dalam waktu yang ditentukan. Namun, kami juga belajar banyak selama periode ini. Kelas sistem operasi sekolah berfokus pada teori, dan kompetisi memberi kami pemahaman yang lebih dalam tentang sistem operasi dari tingkat praktis. Selama penulisan pekerjaan, kami juga belajar banyak cara untuk meningkatkan efisiensi pengembangan, seperti dari awal menggunakan baris perintah GDB debugging ke pembelajaran nanti untuk menggunakan vscode untuk terhubung ke debugging GDB, yang sangat meningkatkan efisiensi debugging kami. Meskipun sangat disesalkan bahwa kami gagal menyelesaikan dan menguji OS kami, pengetahuan yang kami pelajari sejak kompetisi telah banyak mendapat manfaat, yang juga telah mencapai tujuan kami untuk berpartisipasi dalam kompetisi.