diff --git "a/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223-\351\231\210\346\240\251\346\260\221.md" "b/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223-\351\231\210\346\240\251\346\260\221.md" new file mode 100644 index 0000000000..69050cc644 --- /dev/null +++ "b/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223-\351\231\210\346\240\251\346\260\221.md" @@ -0,0 +1,33 @@ +--- +title: 2024秋冬开源操作系统训练营第三阶段总结-陈栩民 +date: 2024-11-30 21:20:01 +categories: + - 2024秋冬季开源操作系统训练营 +tags: + - author:yumu20030130 +--- + + +# Unikernel + +Unikernel,可以认为就是一个免去了US间特权级切换的简单内核,在阅读源码和解决部分课后习题的过程中,我将自己的想法与收获总结如下: +1. Unikernel的基本启动流程:https://yumu20030130.github.io/2024/11/25/Unikernel%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%90%AF%E5%8A%A8%E6%B5%81%E7%A8%8B/ +2. Unikernel组件之axalloc:https://yumu20030130.github.io/2024/11/25/Unikernel%E7%BB%84%E4%BB%B6%E4%B9%8Baxalloc/ +3. Unikernel组件之paging:https://yumu20030130.github.io/2024/11/25/Unikernel%E7%BB%84%E4%BB%B6%E4%B9%8Bpaging/ +4. Unikernel组件之axtask:https://yumu20030130.github.io/2024/11/25/Unikernel%E7%BB%84%E4%BB%B6%E4%B9%8Baxtask/ + +# 宏内核 + +Unikernel加上用户态与内核态的分离,便形成了宏内核,其中我认为最重要的便是理解从内核态创建并执行一个应用,以及应用陷入内核的时候,又发生了什么。 +1. 最简宏内核模式内核构建:https://yumu20030130.github.io/2024/11/30/%E6%9C%80%E7%AE%80%E5%AE%8F%E5%86%85%E6%A0%B8%E6%A8%A1%E5%BC%8F%E5%86%85%E6%A0%B8%E6%9E%84%E5%BB%BA/ + +# HyperVisor + +HyperVisor,即所谓的虚拟机管理程序,从代码实现来看,和宏内核思想差不多,都是一个高特权级的“内核”为低特权级的“应用”创建独属于它的“虚拟空间”,为它准备对应的资源,然后切换特权级去执行该“应用”。当“应用”发生“中断”的时候,就trap回“内核”处理。GuestOS,就像是一个特殊的应用。 + +1. Debug-版本错误:https://yumu20030130.github.io/2024/11/30/Debug-OpenSBI%E7%89%88%E6%9C%AC%E9%94%99%E8%AF%AF/ + +# 总结 + +通过这段时间的学习,我对于如何将内核组件化、以及如何从Unikernel到宏内核和HyperVisor有了更深入的理解。 +HyperVisor及部分基础组件相关的学习总结还未来得及形成文档,后续也将逐步更新在本人的博客网页:https://yumu20030130.github.io/ \ No newline at end of file