将清华大学uCore/rCore/zCore教学系统移植到LoongArch平台上,并进行力所能及的优化。清华大学操作系统课程使用的教学系统,uCore为最早的C语言实现版本,rCore为使用rust语言重新实现的版本,支持x86/RISCV/ARM/MIPS等架构,zCore为谷歌微内核zircon的rust实现。
- loongArch平台上有比较完善的工具链,可以支持rust的开发
- loongArch的指令和mips、riscv相似,可以快速进行学习
- 有过rcore的开发经验,项目可以进行
- 有qemu模拟的龙芯平台可以进行虚拟实验
根据硬件差异将rCore
逐步迁移到loongArch64
平台上,并撰写详细的实验手册,以期达到学习操作系统的同学可以熟悉如何在loongArcch
平台上进行相关的实验,同时也将rCore
扩展到新的平台。
ch0:
- 阅读LoongArch相关材料,熟悉相关指令和开发流程
- 搭建交叉编译环境,调试linux系统的启动过程
- 将Linux的启动过程的反汇编代码移植进入rCore
ch1:
- LoongArch的操作系统启动过程解析
- 第一次进入操作系统
- 完成串口输出功能
ch2:
- LoongArch特权指令的使用
- qemu模拟器的地址空间分布
- 使用rust编写loongArch的寄存器支持
- 特权级切换
- 加载应用程序
ch3:
- 中断
- 多道程序
- 协作式多道程序
- 分时多任务
- 时钟
ch4:
-
buddy system allocator
- 三级页表
- TLB管理
- 地址空间
ch5:
- 进程抽象
- 地址空间切换
ch6:
- PCI设备探测
- ahci协议
- 文件系统easy-fs
ch7:
- 输入输出重定向
- 管道
- 信号
ch8:
- 内核态线程抽象
- 信号量
- 锁机制
- 条件变量
其它:
- 简易内核栈回溯
loongArch64
版本 - 简易内核栈回溯
risc-v
版本 - VESA BIOS Extensions 显示(初步)
rustup target add loongarch64-unknown-none
项目存在许多分支,每一个分支均对应于某一章的全部或者一部分。项目的具体环境配置位于实验手册中。
进入loongrCore目录下
make run #直接运行
make debug #gdb
运行截图:
要查看提供的教程,请进入rCoreloongArch目录,使用mdbook命令
mdbook serve --open
在线查看指导教程。
或者查看根目录下导出的rCoreloongArch-tutorial.pdf文件。
从Arceos查看更多la64相关的内容。
- 添加键盘、鼠标中断的完整支持
- 图形化显示
- 教程的细致化
https://github.com/Godones/rCoreloongArch
- QEMU模拟器。可以在PC上模拟运行LoongArch架构的操作系统
- 关于LoongArch架构的工具链及文档
- 相关OS信息
- VBE
- riscv os