-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Milestone
Description
目标
将 ArceOS 移植到 reL4 之上作为用户态程序,由于 ArceOS 是 Unikernel,内核和程序直接绑在一起,通过函数调用,所以在完成基本功能的时候不需要对调用指令进行修改。在完成基本任务的时候,应该能够让 ArceOS 的所有测例都能以 seL4 的用户态进程的形式运行,并且尽量保证 ArceOS 的结构和模块名称兼容。
阶段基本任务
- 为 ArceOS 的 HAL 添加 seL4 用户态的支持
- 修改 ArceOS 的编译系统能够和 rel4-linux-kit 的编译系统整合
- PerCPU 部分的支持需要进行梳理和修改
- 对 HAL 模块进行修改,剔除特权指令的存在
- ArceOS 中页表进行修改,和 seL4/reL4 Capability 进行整合
- 添加基于 Cap 的中断机制支持
- 由于 ArceOS 中存在 TLS 的使用,而 rust-sel4 中也存在 TLS 的使用,且 ArceOS 可能会随意切换 TLS,需要进行梳理
- 移除调度器相关代码
- ArceOS 自己掌控调度,能够保证发生中断的时候内核 TLS 和状态是对应的,但是运行在 seL4/reL4 来说需要特别的设计让中断发生的时候切换 ArceOS 的状态到对应的 TLS 和内核状态
- 将内存管理方式从直接内存管理转换为 Cap Untyped 管理
- 对 ArceOS 内存申请和映射部分进行梳理,申请内存按照 Cap 的方式进行,确保没有 “凭空”产生的
- 对其他模块进行梳理,保证不出现资源或 Cap 冲突、访问特权指令等情况
阶段进阶任务
- 将 ArceOS 中的模块进行修改,能够拆分成多个独立的进程运行,模块之间通过 IPC 通信
- 支持多种架构和平台
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Todo