diff --git "a/source/_posts/2024\346\230\245\345\244\217\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\347\254\254\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223bosswnx.md" "b/source/_posts/2024\346\230\245\345\244\217\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\347\254\254\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223bosswnx.md" index 2c3ccf96fe..1fea125a7d 100644 --- "a/source/_posts/2024\346\230\245\345\244\217\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\347\254\254\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223bosswnx.md" +++ "b/source/_posts/2024\346\230\245\345\244\217\345\255\243\345\274\200\346\272\220\346\223\215\344\275\234\347\263\273\347\273\237\350\256\255\347\273\203\350\220\245\347\254\254\344\270\200\351\230\266\346\256\265\346\200\273\347\273\223bosswnx.md" @@ -32,3 +32,12 @@ tags: 也是得益于训练营阶段对 rcore 代码深入学习的经历,让我们在两周不到的时间里,完全原创地完成了操作系统比赛初赛的赛题。接下来是复赛,我们打算继续基于初赛的代码,加入虚拟文件系统、无栈协程等特性,为复赛做好准备! +## 第三阶段 + +第三阶段我选择了项目二《ArceOS 宏内核》,原因是我正在参加今年的计算机系统能力大赛(操作系统内核实现赛道),正好项目二和我们的比赛内容较为贴近,可以相互之间参考与借鉴一下。 + +ArceOS 是 unikernel。其特点是模块组件化,这样在构建操作系统镜像的时候,就可以选择性地编译模块,从而达到尽可能减少系统镜像体积的目的,对嵌入式等低性能的场景有很大的帮助。 + +但是 unikernal 的缺点是没有用户态和内核态的区分,也就意味着应用程序的权限管理会对内核的稳定性有很大的隐患。其次,ArceOS 目前只支持一个应用程序,不能作为一个通用的内核来使用。 + +因此,项目二的目的就是为了让 ArceOS 支持用户态和内核态、支持多应用的并发执行,向宏内核靠拢。