diff --git "a/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223\346\212\245\345\221\212-\344\273\243\344\277\212\345\213\203.md" "b/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223\346\212\245\345\221\212-\344\273\243\344\277\212\345\213\203.md" new file mode 100644 index 0000000000..c940b9cc17 --- /dev/null +++ "b/source/_posts/2024\347\247\213\345\206\254\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\211\351\230\266\346\256\265\346\200\273\347\273\223\346\212\245\345\221\212-\344\273\243\344\277\212\345\213\203.md" @@ -0,0 +1,32 @@ +--- +title: 2024秋冬季开源操作系统训练营第三阶段总结报告-代俊勃 +date: 2024-12-02 14:54:15 +tags: +--- + +## 第三阶段 +很高兴能进入第三阶段,三周的课程由浅入深,石磊老师讲的非常好,可惜中间第二周第三周比较忙,就只是听完了课程,实验上完成了第一周的前两课的实验,以及尝试去做了挑战题目,实现了一个内存池分配算法。后续会继续学习。 + +## Unikernel + +一种组件化的内核构建方式,根据需求可以快速实现轻量级的部署,可以说是微服务部署的理想容器。 + +### print_with_color + +对已有的println功能实现扩展,通过ANSI码控制颜色,写了一个基于时间戳的随机函数实现每次输出时颜色随机,通过随机的开始颜色和结束颜色计算每个字符的颜色实现渐变效果。 + +### 支持HashMap + +直接引入了hashbrown库,接管之前调用的std的collections。 + +### bump内存分配算法 + +这个比较简单,用两个指针分别从两端分配byte和页,当然缺点很明显,已经回收的资源无法继续分配,只有全部回收后才会将指针归零。 + +### 实现特定的内存分配算法 + +这里首先是利用bump算法进行尝试,结果达到了63轮,之后加入了回收空间记录list,提高不多,也分别尝试自己实现了Buddy和Tlsf抽了一个文件,但是build一直过不去。 + +## 学习心得 + +通过这次学习,对Unikernel的理解加深了很多,第四阶段也打算做这一个阶段的实习,学完之后还要系统的学习一下linux操作系统。 \ No newline at end of file