Skip to content

update 2024秋冬开源操作系统训练营第三阶段总结-Jasonhonghh #654

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

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
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,23 @@
---
title: 2024秋冬开源操作系统训练营第三阶段总结-Jasonhonghh
date: 2024-11-29 10:58:18
tags:
- author:jasonhonghh
---
# 2024秋冬开源操作系统训练营第三阶段总结-Jasonhonghh
## 学习内容
这个阶段,学习了模块化搭建操作系统的方法,主要包括单内核,宏内核和Hypervisor三种模块化的搭建方法。
从更加底层的视角,了解了操作系统的基本结构,包括内核态和用户态,中断,异常,系统调用等。

另外,老师预留了一些作业和挑战题目,有的实现起来还是很有难度的,比如实现一个堆内存分配器,在实现的过程中,
我弄清楚了数组、指针的内存结构,和内存分配的方式,让我感觉到“计算机没有黑魔法”。
## 学习收获
有两个点让我印象深刻:

一个是实现collections的实现,我们后面发现作业题可以用一个开源的crate引入,来一行代码搞定的时候,我感觉到了Rust的强大,
而且,感觉到读代码和涉猎更多的项目的重要性。

另一个是实现堆内存分配器的时候,群里有同学计算了理论的分配次数,可是大家实际实现的时候,发现了一些方法可以大大增加分配次数,虽然
这对于内存分配器来说是不好的,但是面向应用测例没有一点问题,有一种hack的感觉,让我感觉到了计算机的乐趣,哈哈。
## 下一步计划
最后一个阶段,我选择了单内核的网卡驱动实现,希望能够做好吧。
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
title: 2024秋冬开源操作系统训练营第四阶段总结-Jasonhonghh
date: 2024-12-20 10:58:18
tags:
- author:jasonhonghh
---
# 2024秋冬开源操作系统训练营第四阶段总结-Jasonhonghh
## 学习内容
这个阶段,我选择了unikernel方向二的任务,为arceos实现一个igb网卡驱动。主要进行了两个方面的探索:
1. 根据igb网卡的说明书,编写igb网卡驱动,实现了网卡的基本功能,但没有适配arceos。
2. 仿照ixgbe-driver驱动的结构,修改ixgbe-driver中的函数内容和寄存器位置,尝试适配arceos。
## 学习收获
这个任务对我来说属实难度比较大,总结一下有两点没有做好:
1. 项目管理。在三周时间内,一直是在慢慢摸索,后面才开始制订计划,没有规划的坏习惯一定要改。
2. 资料调研。前期igb网卡资料没有仔细研究,只盯着几章看,错过了一些很重要的概念和信息。另外也没有仔细调研类似
的项目,后期发现了e1000的驱动仓库。
不过总的来说还是有收获的。
1. 了解了驱动开发的过程和底层一些硬件知识。
2. 积累了一些开发经验。
## 下一步计划
做好计划继续学习,未来属于rust。