nothing
陈林峰 authored
3fbccac6
Forked from 陈林峰 / proj93-la-tsinghuaOS
27 commits behind the upstream repository.

rCore的龙芯平台移植

项目名称:proj93-la-tsinghuaOS

项目描述:

将清华大学uCore/rCore/zCore教学系统移植到LoongArch平台上,并进行力所能及的优化。清华大学操作系统课程使用的教学系统,uCore为最早的C语言实现版本,rCore为使用rust语言重新实现的版本,支持x86/RISCV/ARM/MIPS等架构,zCore为谷歌微内核zircon的rust实现。

前期调研情况分析

  1. loongArch平台上有比较完善的工具链,可以支持rust的开发
  2. loongArch的指令和mips、riscv相似,可以快速进行学习
  3. 有过rcore的开发经验,项目可以进行
  4. 有qemu模拟的龙芯平台可以进行虚拟实验

与导师沟通情况

目前与老师交流了很多问题,都得到了老师耐心的回答,并且老师提供了丰富的资料。当前老师已经建立了微信群。

目标规划:

ch0:

  • 阅读LoongArch相关材料,熟悉相关指令和开发流程
  • 搭建交叉编译环境,调试linux系统的启动过程
  • 将Linux的启动过程的反汇编代码移植进入rCore
  • 完成串口输出功能

ch1:

  • qemu模拟的LoongArch平台的关机功能
  • LoongArch的操作系统启动过程解析

ch2:

  • LoongArch特权指令的使用
  • qemu模拟器的地址空间分布
  • 使用rust编写loongArch的寄存器支持

ch3:

  • 中断
  • 多道程序共享
  • 计时器
  • buddy system allocator

ch4:

  • 页表
  • [ ]

........

当前开发状态说明

已经可以成功的运行rcore的前两章代码,完成内核态与用户态的转换。添加LoonArch寄存器的支持,便于在内核代码中使用相关寄存器。目前正在开发第三章和第四章功能。

项目运行

进入loongrCore目录下
make run

运行截图:

image-20220605235656760

一些说明文件和实验过程:

linker.md

cross_tool.md

manual.md

其它仓库地址

https://github.com/Godones/rCoreloongArch

参考资源