-
Notifications
You must be signed in to change notification settings - Fork 387
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #495 from chy669086/master
2024秋冬季开源操作系统训练营第二阶段总结报告-chy669086
- Loading branch information
Showing
1 changed file
with
34 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
--- | ||
title: 2024秋冬季开源操作系统训练营第二阶段总结报告 | ||
date: 2024-10-21 17:40:38 | ||
categories: | ||
- 第二阶段总结报告 | ||
tags: | ||
- author:chy669086 | ||
- repo:https://github.com/LearningOS/2024a-rcore-chy669086 | ||
--- | ||
|
||
## 第一阶段报告 | ||
|
||
在加入这个课程的时候已经学习 rust 小半年了,rustling 原项目也是完整的写过一次,所以第一阶段很快就通过了。第一阶段的 rustling 是魔改版,确实让我学到了很多我之前不太了解的东西。 | ||
|
||
## 第二阶段报告 | ||
|
||
这个阶段的学习直接戳中我的知识盲区,汇编、操作系统这些我是一点不会。 | ||
|
||
### 困难 | ||
|
||
应该说都是困难? | ||
|
||
卡我最久的应该是内存分页和文件系统了,这种一层一层抽象上来的我看的是眼花缭乱,物理结构和程序结构的转换,在此基础上的再一层抽象在当时给了我很大的阅读困难。 | ||
|
||
### 收获 | ||
|
||
首先这几次学习解开了我之前的误区和疑惑,特别是系统调用这一方面,我之前都不知道原来特权级这个概念,不知道为什么汇编需要在操作系统支持下运行。现在我知道很多操作是需要系统提供接口,需要用户态和内核态的切换。 | ||
|
||
这是我第二次写这个体量的 rust 项目,编写过程中经常写出很多哭笑不得的代码,比如在持有锁的前提下再次请求锁导致死锁,在单次借用后不 drop 再次借用导致 panic。 | ||
通过这次的学习,我的 rust 编程能力无疑得到了提升,我可以明显感觉到我的代码可读性比之前好不少,对于写注释也更加得心应手。 | ||
|
||
在学习过程中与群友的讨论中,我也对其中的汇编代码理解更深,通过我在本机的多次测试,也加深了我对任务切换、特权级跳转的认识。 | ||
|
||
这五个 lab 的代码难度确实不是很高,主要难点都在于理解 os 的组织形式,没有搞清楚 os 的其他代码就难以下手,但是理清思路之后写起来就没有什么难度。 |