From 77041a2e162b5f775ca3110efe656919b314fd30 Mon Sep 17 00:00:00 2001 From: GuoGuo <2251270969@qq.com> Date: Sat, 25 Oct 2025 13:51:38 +0800 Subject: [PATCH] GuoGuo614 stage1 and stage2 blog Added two new markdown files summarizing the learning process and experiences for rcore stages 1 and 2. Also updated hexo version in package.json from 7.0.0 to 4.2.1 to match dependencies. --- package.json | 4 ++-- source/_posts/rcore-stage-1-summary.md | 24 +++++++++++++++++++ source/_posts/rcore-stage-2-summary.md | 32 ++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 source/_posts/rcore-stage-1-summary.md create mode 100644 source/_posts/rcore-stage-2-summary.md diff --git a/package.json b/package.json index b825528088c..7af3a8ab802 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "server": "hexo server" }, "hexo": { - "version": "7.0.0" + "version": "4.2.1" }, "dependencies": { "hexo": "^4.2.1", @@ -24,4 +24,4 @@ "hexo-renderer-stylus": "^1.1.0", "hexo-server": "^1.0.0" } -} +} \ No newline at end of file diff --git a/source/_posts/rcore-stage-1-summary.md b/source/_posts/rcore-stage-1-summary.md new file mode 100644 index 00000000000..712224a3547 --- /dev/null +++ b/source/_posts/rcore-stage-1-summary.md @@ -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 了草。 diff --git a/source/_posts/rcore-stage-2-summary.md b/source/_posts/rcore-stage-2-summary.md new file mode 100644 index 00000000000..c35fa49fdcc --- /dev/null +++ b/source/_posts/rcore-stage-2-summary.md @@ -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的时候可以发现这个东西。