README.md 1.67 KB
Newer Older
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed
<img title="" src="./docs/imgs/hunau.png" alt=""> 

杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed
# LotusOS

LotusOS是来自湖南农业大学队伍参赛作品,基于Rust编写,使用了RISC-V指令集,目前已经实现了基本的内核功能,是一个多核中断IO式的OS。

# 内核实现功能

- 双核

- 中断式IO

- 内核线程

- Signal机制

- Copy On Write机制

- 支持动态链接程序

- pthread线程库支持

# 比赛情况

初赛满分完成
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

<img title="" src="docs/imgs/chusai.png" alt="">
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

决赛第一阶段满分完成
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

<img title="" src="docs/imgs/juesai1.png" alt="">
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

决赛第二阶段截止2022/8/19 19:16:32 排名第6
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

<img title="" src="docs/imgs/juesai2.png" alt="">
杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed

# 运行

制作文件系统

```bash
make mkfs
```

编译k210镜像

```bash
make all
```

编译qemu镜像并且运行

```bash
cd os
make run
```
ez4yunfeng2's avatar
ez4yunfeng2 committed

杨云枫 计科19-5's avatar
杨云枫 计科19-5 committed
# 项目结构

[/bootloader](./bootloader): 保存了k210与qemu的RustSBI

[/disk](./disk):保存决赛测试用例

[/docs](./docs):保存项目说明文档

[/os](./os):OS代码

OS项目代码

fatfs:fat32文件系统相关代码

drivers:设备驱动相关代码

fs:文件抽象层代码

irq:外设中断处理代码

mm:内存管理相关

sync:同步机制相关代码

syscall:系统调用相关代码

task:进程管理相关

trap:中断相关

### 队员

队员:杨云枫(队长)、刘青云、乔子科

指导老师:龙陈锋,傅卓军

---

$致谢$

本项目使用了洛佳等开发者的[RustSBI](https://github.com/rustsbi/rustsbi),以及吴一凡等开发者的[rCoreTutorial-v3](https://github.com/rcore-os/rCore-Tutorial-v3)