清华大学计算机科学与技术系学生科协
用户4053
分享
开源操作系统训练营 ArceOS 宏内核实践资料
输入“/”快速插入内容
开源操作系统训练营 ArceOS 宏内核实践资料
用户4053
用户4053
用户299
用户299
2025年1月23日修改
本阶段支持组队,欢迎大家多交流多沟通
前言
ArceOS 宏内核扩展的工作已经进行了较长时间,这个过程留下来很多工作,但是由于维护原因,资料较为散乱。现将与本次训练营相关的各个仓库意义说明如下:
•
原版 Starry:
https://github.com/Starry-OS/Starry-New
◦
这是对 ArceOS 宏内核扩展的第一次尝试
◦
作为作品参加全国大学生计算机系统能力大赛内核实现赛,通过了大部分决赛测例
◦
在本次训练营前长期进行维护,
本次训练营会逐渐将宏内核的功能移植到 starry-next 上
◦
方向一要求实现的内核决赛测例不在这一版上实现
,而是在 starry-next 上。但这一版可以提供参考,因为相关测例都已经在这一版上通过欧了
◦
它是
方向二和方向三需要用到的代码仓库
,对于实际应用的支持和模块的测试,可以用这一版比较成熟的内核进行测试
•
ArceOS 基座:
https://github.com/Azure-stars/Starry/tree/monolithic
◦
main 分支是已经停止维护的宏内核实现,可以忽略不计
◦
monolithic 分支是对
https://github.com/arceos-org/arceos/tree/monolithic
的一个 fork,会实现关于宏内核扩展的相关内容,也是我们
本次训练营要使用的基座
•
Starry-next 扩展:
https://github.com/Azure-stars/Starry-On-ArceOS/tree/oscomp
◦
对于 ArceOS 宏内核扩展的上层实现(关于上层实现和基座实现的关系,详见训练营阶段三的第 4-6 讲,也可以见下文对方向一的说明)
◦
我们会将原版 Starry 的功能逐渐移植到这上面,这也是方向一的工作
方向一:starry-next 的扩展
关于 ArceOS 组装异构内核的说明的视频和 PPT 如下:
视频:
https://opencamp.cn/os2edu/camp/2024fall/stage/3?tab=video
中的第六讲:组件化内核的异构拓展实现
代码仓库与功能
•
ArceOS 基座:
https://github.com/Azure-stars/Starry/tree/monolithic
◦
main 分支是已经停止维护的宏内核实现,可以忽略不计
◦
monolithic 分支是对
https://github.com/arceos-org/arceos/tree/monolithic
的一个 fork,会实现关于宏内核扩展的相关内容,也是我们
本次训练营要使用的基座
•
Starry-next 扩展:
https://github.com/Azure-stars/Starry-On-ArceOS/tree/oscomp
◦
对于 ArceOS 宏内核扩展的上层实现(关于上层实现和基座实现的关系,详见训练营阶段三的第 4-6 讲,也可以见下文对方向一的说明)
为了实现宏内核的功能,
可能要求我们同时对基座和上层实现均进行修改
,所以同学们可以同时 fork 这两个仓库,并且自由进行修改。
运行方式
1.
进入 starry-next 扩展仓库
2.
修改 ./scripts/get_deps.sh 中的 arceos-org/arceos 为 Azure-stars/Starry
3.
参见 README 开始运行
测例说明
测例代码仓库为:
https://github.com/oscomp/testsuits-for-oskernel/tree/final-2024-rv
预编译好的版本详见:
https://github.com/Starry-OS/testcases
支持的流程从易到难可以是:
1.
初赛测例:
a.
源码:
https://github.com/oscomp/testsuits-for-oskernel/tree/pre-2024/riscv-syscalls-testing
b.
预编译下载链接:
https://github.com/Starry-OS/testcases/releases/download/v0.1/riscv-syscall-testcases.tar.gz