広東省工科大学パニューキャンパスネクスト私はゲームを賞賛したい
私たちのOSは、主にBen Shuが書いた本「RISC-Vアーキテクチャプログラミングとプラクティス」を指します。
その他の参照:
「64ビットオペレーティングシステムの設計と実装」 - Tian Yu
RISCV-XV6
すべてを作成:コンパイル
ランニング:QEMUを開始します
クリーンにする:生成されたすべてのファイルをクリアします
デバッグを作成:QEMUとGDBのデバッグを開始します
時間制限により、OSは単純な割り込み処理、メモリ管理、プロセススケジューリング機能、ファイルシステムのごく一部、およびいくつかのシステム呼び出しのみを実装しています。バグは最終的に正常に固定されていないため、Virtioドライバーにはまだ問題があり、使用できません。ファイルシステムは完全に完了していません。したがって、ファイルシステムはドキュメントを指定していません。私を許してください。
Virtioドライバーのバグを修正し、基本的なファイルシステムを完成させ、静的リンカーを実行するELFファイルローダーのみをサポートし、少数のSyscallおよびShellコマンドをサポートしました
例外処理と割り込み
メモリ管理とページテーブルマッピング
プロセス管理とスケジューリング
VFS仮想ファイルシステム
エルフローダー
Qu Weikaiは、コードの開発を担当しています。LiangSijunと彼の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デバッグに接続することを学習することまで、開発効率を改善する多くの方法を学びました。これにより、デバッグの効率が大幅に向上しました。 OSを完了してテストできなかったことは非常に残念ですが、競争が多くの恩恵を受けて以来学んだ知識は、競争に参加するという目標を達成しました。