Pantheon
项目简介
Pantheon是一个基于 RISCV-64 硬件平台实现的采用无栈协程架构、支持多核CPU的宏内核操作系统。
完成情况
决赛第一阶段,截至7.31晚11:20总分排名第一:
其中iperf、ltp单个测试排名第一
项目结构
Pantheon
├─ cargo-config
├─ docs
├─ pantheon
│ ├─ kernel
│ │ ├─ cargo-config
│ │ ├─ src
│ │ │ ├─ devices
│ │ │ ├─ drivers
│ │ │ ├─ fs
│ │ │ ├─ io
│ │ │ ├─ ipc
│ │ │ ├─ kmm
│ │ │ ├─ knet
│ │ │ ├─ platform
│ │ │ ├─ syscall
│ │ │ ├─ task
│ │ │ ├─ trap
│ │ │ ├─ entry.rs
│ │ │ ├─ impls.rs
│ │ │ ├─ linker.ld
│ │ │ ├─ main.rs
│ │ │ └─ panic.rs
│ │ ├─ Cargo.toml
│ │ ├─ Makefile
│ │ └─ build.rs
│ ├─ lib
│ │ ├─ arch
│ │ ├─ config
│ │ ├─ executor
│ │ ├─ fat32
│ │ ├─ hart
│ │ ├─ kalloc
│ │ ├─ klog
│ │ ├─ kmem
│ │ ├─ kpath
│ │ ├─ ksync
│ │ ├─ ktime
│ │ ├─ lwext4_rust
│ │ ├─ nix
│ │ ├─ task
│ │ ├─ trap
│ │ ├─ utils
│ │ └─ vfs
│ ├─ user
│ │ ├─ apps
│ │ │ ├─ initproc
│ │ │ ├─ runtests
│ │ │ ├─ shell
│ │ │ ├─ step1
│ │ │ ├─ Makefile
│ │ │ └─ linker.ld
│ │ └─ libd
│ └─ jh7110-visionfive-v2.dtb
├─ part
├─ Cargo.lock
├─ Cargo.toml
├─ Makefile
├─ README.md
├─ qemu.dtb
├─ qemu.dts
├─ rust-toolchain.toml
└─ rustfmt.toml
项目整体架构
如图所示,Pantheon 系统基于从低到高搭建内核的思想进行架构开发,概括分为三层:Base Layer层、Kernel Layer层、App Layer层。
内核构建
- 在项目根目录下构建os内核
make all
- 运行os内核
make run
- 清理内核映像
make clean
项目分工
初赛阶段:
-
李梁锋 :负责进程模块和地址空间的设计与构建、编写测试环境
-
张锦轩 :负责完善地址空间与文件系统,代码审查与调试,修复内核问题
-
周家正 :负责文件系统模块的构建以及地址空间的完善
决赛第一阶段:
-
李梁锋 :完善进程模块和信号模块,负责代码的调试和运行
-
张锦轩 :负责网络模块的构建,代码审查与调试,修复内核问题
-
周家正 :负责文件系统模块的完善和板卡驱动的适配
指导老师
章复嘉,邬惠峰
项目文档
与参考作品对比与优势
在Pantheon的开发过程中,主要参考了往届作品BTD OS的基础架构和设计理念,并在其基础上进行了创新和优化,通过深入分析和优化关键模块,实现了在进程管理、信号系统、内存管理、文件系统、网络模块以及IO模块等方面的显著提升。下图是具体的区别和这些创新所带来的优势:
额外的,本系统在开发过程中还参考了其他的优秀的开源作品,由于仅参考了部分模块设计理念,总结如下: