-
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 #143 from lyoh33/master
lyoh33's blog
- Loading branch information
Showing
2 changed files
with
14 additions
and
1 deletion.
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 |
---|---|---|
|
@@ -25,4 +25,4 @@ | |
"hexo-renderer-stylus": "^1.1.0", | ||
"hexo-server": "^1.0.0" | ||
} | ||
} | ||
} |
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,13 @@ | ||
--- | ||
title: 2023开源操作系统第二阶段总结报告-lyoh33 | ||
date: 2023-11-03 21:14:34 | ||
tags: | ||
- author:lyoh33 | ||
- repo:https://github.com/LearningOS/2023a-rcore-lyoh33.git | ||
--- | ||
|
||
此次训练营需要依照提供的os代码框架,完成一些练习,主要是补全函数的实现,整体难度并不大。比较困难的点,一是实验环境的配置,对git,qemu,makefile,cargo等工具的陌生,很容易导致无法理解工作环境。例如实验要拷贝的仓库并不是按照官方仓库的readme里的``` git clone https://github.com/LearningOS/rCore-Tutorial-Code-2023A.git```,而是自己的作业仓库,ci-user这个测试文件夹应与os文件夹平级;二是刚上手代码框架时容易迷失在繁多的文件和文件夹里;三是部分代码比较晦涩,比如涉及到trap的部分,而这些对于理解整个操作系统是至关重要的。 | ||
|
||
练习中的几个实验只要求实现基本的功能,只要熟悉框架代码就很容易写出来,部分更困难的部分并没有作为必做的练习,比如实现写时复制、缺页异常等等。某些关键细节比如开启分页并不要求自己填写,因此,完成这次训练营只能算是一张入门系统的入场券。 | ||
|
||
不同于xv6,rcore的实验框架是递进式的,从裸机应用到批处理系统到多道程序系统,相当后面才有了文件系统。我对这种安排是否是合适保持一点疑问,因为链接时陌生的,在有文件系统前把用户应用链接到内核反而增添了很多复杂性。我觉得rcore的框架像是把用c翻译成的rust代码写成的,缺乏一些用rust重写的必要性,反而增添了很多复杂性。比如虚拟内存那章的MapArea等抽象我琢磨了很久,但是由c写成的xv6的虚拟内存代码我却很容易看懂,直至现在我依然觉得这种抽象是不必要的(也可能是个人水平欠缺,尚不能理解)。rcore的多进程、多线程也是仿linux的经典设计,这部分能否更有一些rust特色,比如让语言自身来管理一部分并发的功能呢?我希望今后能探索这部分的答案 |