1. 简介 #
最近一直在尝试将 arceos unikernel 移植到 seL4 系统上,本质是将 arceos 作为 seL4 的一个应用,在其上运行。
需要移植的内容主要包括以下内容
移植到 seL4 上的主要目的是利用 seL4 的安全性,通过 capability 机制分配所有资源。
在 sel4 上运行的时候,默认启用以下 arceos 特性
onsel4 = ["axhal/onsel4", "axruntime/onsel4", "axtask/onsel4", "multitask", "alloc", "page-alloc-4g", "tls"]
2. 讨论 #
- 目前调度效率很低,涉及到多次 syscall 操作,希望能找到某种方法提高调度效率。
- 打开抢占调度后,偶尔会出现运行卡住的情况,也许和调度以及中断是有关的,因为 seL4 kernel 中也是会在 timer 中执行抢占调度的,timer 本身也是中断,这中间是存在一些冲突的。
- 支持 ArceOS 的宏内核 starry。
- ArceOS 按照功能分成多个进程级操作系统服务。