Skip to content

Commit

Permalink
Zia6的第三阶段总结报告
Browse files Browse the repository at this point in the history
  • Loading branch information
Zia6 committed Nov 30, 2024
1 parent d678ab9 commit 9dc053e
Showing 1 changed file with 56 additions and 0 deletions.
56 changes: 56 additions & 0 deletions source/_posts/2024秋季开源操作系统第三阶段总结.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: 2024秋季开源操作系统第三阶段总结
date: 2024-11-30 20:03:03
tags:
- author: Zia6
- repo: https://github.com/Zia6/oscamp
---
# ArceOS Unikernel 学习总结

不知不觉,在开源操作系统训练营中学习 ArceOS Unikernel 已经过去了几周。回顾这段学习经历,我深深感受到了从一个普通开发者到系统级开发的转变过程。通过这次学习,我对操作系统的理解有了质的飞跃。

## 学习心得

最让我感到惊讶的是,原来操作系统可以像开发应用程序一样模块化。在学习之前,我对操作系统的印象还停留在庞大而复杂的整体概念上。但通过 ArceOS 的学习,我发现操作系统其实可以被拆分成一个个独立的组件,每个组件都有其明确的职责和边界。这种组件化的思想不仅让系统更容易理解和维护,也为定制化需求提供了极大的灵活性。

## 技术收获

### 第一周:打好基础
第一周的学习主要聚焦在基础概念和核心功能的实现上:

1. 从最简单的彩色 "Hello World" 开始,逐步熟悉了 ArceOS 的项目结构和开发流程
2. 通过实现 early 内存分配算法,深入理解了操作系统是如何管理内存的
3. 在调度算法的改造过程中,真正体会到了协作式调度和抢占式调度的区别

### 第二周:深入应用
第二周的内容则更加贴近实际应用场景:

1. 学习了如何加载和执行外部应用程序
2. 实现了内核与应用程序的通信机制
3. 掌握了地址空间分离和切换的技术要点

## 技术难点突破

在学习过程中,最具挑战性的部分是实现抢占式调度算法。这需要对系统中断机制有深入理解,同时还要考虑:
- 如何合理设置时间片
- 如何处理优先级
- 如何确保调度的公平性

另一个有趣的挑战是实现应用程序的加载与执行。这让我深入理解了:
- 程序加载的整个流程
- 内存布局的规划
- ABI 接口的设计与实现

## 个人感悟

这次学习经历让我对操作系统有了全新的认识。原来操作系统并不是那么遥不可及,通过合理的模块化设计,我们完全可以构建出自己的操作系统。这种认知的转变也让我在日常应用开发中更注重系统层面的思考。

## 未来展望

通过这次学习,我对系统级开发产生了浓厚的兴趣。接下来我打算:
1. 深入研究 ArceOS 的其他组件
2. 尝试开发一些自定义的系统组件
3. 探索 Unikernel 在云计算场景中的应用可能

最后要特别感谢课程老师的悉心指导,让我能够在短时间内掌握这么多系统级的知识。这次学习经历不仅提升了我的技术能力,更重要的是开阔了我的技术视野。

0 comments on commit 9dc053e

Please sign in to comment.