جامعة قوانغدونغ للتكنولوجيا بانيو الحرم الجامعي-أريد أن أشيد بلعبة
يشير نظام التشغيل الخاص بنا بشكل أساسي إلى كتاب "برمجة وممارسة العمارة RISC-V" التي كتبها بن شو.
مراجع أخرى:
"تصميم وتنفيذ نظام تشغيل 64 بت"-تيان يو
RISCV-XV6
اجعل كل شيء: تجميع
جعل تشغيل: ابدأ Qemu
اجعل نظيفًا: مسح جميع الملفات التي تم إنشاؤها
تصحيح تصحيح: ابدأ تصحيح الأخطاء QEMU و GDB
نظرًا لقيود الوقت ، يقوم نظام التشغيل الخاص بنا فقط بتنفيذ معالجة المقاطعة البسيطة ، وإدارة الذاكرة ، ووظائف جدولة العملية ، وجزء صغير من نظام الملفات وبعض مكالمات النظام. نظرًا لأن الخطأ لم يتم إصلاحه بنجاح في النهاية ، فإن برنامج Virtio Driver لدينا لا يزال لديه مشاكل ولا يمكن استخدامه. نظام الملفات غير مكتمل بالكامل. لذلك ، لم يعط نظام الملفات الوثائق. رجائاً أعطني.
لقد أصلحنا خطأ برنامج تشغيل Virtio ، وأكملنا نظام ملفات أساسي ودعم فقط لوادر ملفات ELF التي تدير روابط ثابتة ، ودعمت عددًا صغيرًا من أوامر SYSCALL و Shell
معالجة الاستثناء والمقاطعات
إدارة الذاكرة ورسم خرائط جدول الصفحة
إدارة العملية وجدولة
نظام الملفات الافتراضي VFS
محمل قزم
Qu Weikai مسؤول عن تطوير Code و Liang Sijun و He Chang مسؤولون عن تصحيح الأخطاء وكتابة المستندات.
.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 ، والذي حسّن بشكل كبير من كفاءة تصحيحنا. على الرغم من أنه من المؤسف للغاية أننا فشلنا في إكمال واختبار نظام التشغيل الخاص بنا ، إلا أن المعرفة التي تعلمناها منذ المنافسة قد استفادت كثيرًا ، الأمر الذي حقق هدفنا في المشاركة في المنافسة.