Skip to content

Commit

Permalink
Merge pull request #495 from chy669086/master
Browse files Browse the repository at this point in the history
2024秋冬季开源操作系统训练营第二阶段总结报告-chy669086
  • Loading branch information
hky1999 authored Nov 8, 2024
2 parents b14c59d + ebcdbcb commit dd50f82
Showing 1 changed file with 34 additions and 0 deletions.
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 的其他代码就难以下手,但是理清思路之后写起来就没有什么难度。

0 comments on commit dd50f82

Please sign in to comment.