Skip to content
Open
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
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"server": "hexo server"
},
"hexo": {
"version": "7.0.0"
"version": "4.2.1"
},
"dependencies": {
"hexo": "^4.2.1",
Expand All @@ -24,4 +24,4 @@
"hexo-renderer-stylus": "^1.1.0",
"hexo-server": "^1.0.0"
}
}
}
24 changes: 24 additions & 0 deletions source/_posts/rcore-stage-1-summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: rcore-stage-1-summary
date: 2025-10-18 12:33:31
categories:
- blog for summary
tags:
- author:GuoGuo614
- repo: https://github.com/LearningOS/2025a-rcore-GuoGuo614.git
- os-kernel
- rcore
- summary
- rust
---

# rCore-2025-autumn 基础阶段-总结
## 学习过程
* 我用的是 rust 语言圣经来学习,书写的蛮不错的。
* 基本上是边对着 rustlings 边看 rust-course,最后看一看笔记有 1w5 多个字,蛮震惊的,虽然许多是直接复制自己认为需要记忆的语法。
* 做完 rustlings 之后,感觉大多题目还是比较保姆的,只是考察小小的一个语法点,甚至对着编译器报错也能做出来。感觉自己还缺乏看稍微大点的 rust 项目的经验,于是去学了 Stanford CS110L。两个 project 都很有意思,学习过程中也补充了很多关于系统的知识,对后续很有帮助。
## 学习感想
* 没有学过cpp,rust 上手有一定难度,实际上这门语言的先进设计让很多之前 Java、Go 的概念变得好上手了,比如特征、类与结构体更容易理解,也摒弃了继承的概念;再加上丰富的语法糖和容器方法,易用性甚至可以和 Python 比肩。
* 但是 rust 最难的生命周期和所有权借用规则,成了两个坎,学习过程中边看书边对着 GPT 问了好久。智能指针我也花了挺多时间,特性就不一一说了,总之是一个非常美妙的设计。
## 难点与踩坑记
* 感觉挺神奇的,用其他语言做题或者项目都是跑起来之后要 debug 一段时间,rust 给我的感觉就是要花好多时间“取悦”编译器,做完这件事之后就不怎么需要 debug 了草。
32 changes: 32 additions & 0 deletions source/_posts/rcore-stage-2-summary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: rcore-stage-2-summary
date: 2025-10-24 20:52:32
categories:
- blog for summary
tags:
- author:GuoGuo614
- repo: https://github.com/LearningOS/2025a-rcore-GuoGuo614.git
- os-kernel
- rcore
- summary
- rust
---

# rCore-2025-autumn OS内核实现阶段-总结
## 学习过程
- 我在认为自己rust基础差不多了,能handle一个大型项目之后就开了rcore.
- 因为有南大PA的基础,前几章没啥难度,做得比较快。一开始打算用v3仓库,对着v3课本一点点手敲出来。但是后来发现代码量越来越大,讲义里面也没法把所有添加的代码都贴出来,所以敲了第一章后就作罢了。不过敲第一章让我理解怎么在qemu上启动我们的内核,还是蛮重要的。
- 前五章我用的是v3课本,把讲义和源码细细啃了之后才去做的实验,所以实验实际上没有很难,但是虚拟内存那一章还是花了很多时间的,读下来收获很大。
- 后三章我就用的指导书了,因为第六章的代码实在太多,想自底向上全部理解有一定难度,所以我在看了指导书、自己理解部分代码后就去做了实验。
- 因为实验实际上没有考察到那么底层,只要理解了上面几层的接口就可以做出来了,不过之后还是回来细啃了全部源代码。
- 另外还熟练掌握了patch打补丁的方法。
## 学习感想
- 非常棒的项目,用rust语言一步一步优雅地实现了一个os内核,难度曲线很友好。
- 实际学习方式和一开始的预想还是有些出入,rcore是每一章都把该有的内核给出来了,文档实际上不是带你搓操作系统的过程而是带你读源码的过程。
- 相应的,实验也不是完善基础内核的过程,而是在基础内核上添加系统调用等“额外功能”的过程。
- 也完成了对内核理解的考察,但是感觉得到的训练没有搭建自己的内核,甚至说做到后面要来调试前面实现的部分那样的学习方式来得多。
- 还有就是原本想练习gdb调试的,但要么就是实验太简单没机会调试,要么就是打开之后没法设断点什么的,大型项目还是调不来,最后还是老实回归debug宏输出了。
## 难点与踩坑记
- 第六章源码很难读,现在都没有全部啃明白。
- 第八章手册挺简单的,但lab是我感觉最难的,理解全局的锁检测、设计自己的数据结构花了很多时间,具体都在ch8的总结里,就不多说了。
- 还有很多地方出现了页对齐之类的什么对齐,感觉自己基本上都糊弄过去了,也没有吃到亏。之后肯定会吃亏的,希望自己调不出bug的时候可以发现这个东西。