Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 2.39 KB

File metadata and controls

53 lines (42 loc) · 2.39 KB

Kernel-32bit

bitos系统概况

bitos 基本实现了文件系统、内存管理、进程管理三大模块。基本实现了32个系统调用,能够通过初赛平台测试。

项目架构

bitos ├── bootloader/ rust-sbi ├── dependencies/ 各项开源库
├── modify-img/ 将shell程序和其它想测试的程序写入文件系统镜像
├── os/ bitos内核 ├── user/ 用户态程序 ├── Design.md/ 设计文档 ├── Design.pdf/
├── Dockerfile/
├── Makefile/
├── rust-toolchain.toml/ 工具链配置 ├── sdcard-riscv.img/ 文件系统镜像 └── README.md

设计思路

文件系统

应比赛要求,文件系统目前还仅采用了fat32。同时设计OSinode作为虚拟文件系统的一部分。

进程管理

目前仅实现单核。调度机制采用的是stride调度,并且可动态地设置优先级。

内存管理

用户空间和内核空间独立,采用SV39。

实现重点

主要实现重点在于fat32的移植和改进,以及各种系统调用的实现。

遇到的困难

目前主要遇到的困难大多数在于互斥访问、意外地址访问导致系统崩溃。

下一步计划

1.文件系统的松耦合和补充工作:目前bitos文件系统的虚拟文件系统没做好,导致和fat32耦合比较深,需要进行改善来兼容其它文件系统。也意味着需要进一步移植其它文件系统。 2.多核处理:目前bitos采用单核设计,需要拓展到多核。 3.进程管理改善:目前进程管理有些臃肿,代码质量不高。 4.用户管理:目前没有用户管理。 5.网络:目前不支持网络功能。 6.内存空间管理:目前分为用户空间和内核空间,可以增加cache以加速,同时考虑是否可以重新规划内存管理,增加除sv39以外其它的内存分页模式。 7.应用移植:尝试移植一个编辑器和简单的编译器。 8.IO处理:尝试异步内核设计 9.驱动管理:尝试增加其它驱动

说明

bitos主要基于rcore camp的ch6版本进行构建。 上下文切换,很大部分内存管理,小部分进程管理参考于rcore的ch6。 文件系统fat32主要参考了FAT32库,做了部分完善。