Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024-秋冬季开源操作系统训练营第三阶段总结-代俊勃 #656

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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操作系统。