0%

第二阶段总结

加油 从hello world 到 change world

两个月时间很快就过去了。我在夏令营里边主要做了算是三件事情吧。

  • Rust入门
  • rCore实验
  • 容器技术初步探索 简易容器Go代码学习&&Rust代码移植
Read more »

选题概述

zCore 目前并不能支持图形和输入设备,我的工作是让 zCore 的用户空间程序支持图形界面和输入设备,最终能跑起来一个简单的游戏。

Read more »

选题杂谈

​ 得知开源操作系统夏令营第二阶段我入选的时候,其实还是挺惊喜的。我第二阶段选的做的方向是移植Rustsbi到哪吒开发板上。其实之前我没有过移植经验,但是好像其他更没什么经验,又不想选标了简单(大概?)难度的文档制作,想给自己创造点难度(后面确实认识到难度了0.0),又因为之前参加全国大学生操作系统大赛(因为没有知识储备啥的,没有做出什么东西),见过Rustsbi-k210,于是我在夏令营第二阶段便选择了Rustsbi的移植工作。

Read more »

第一阶段完成情况:

Rustlings:完成全部测验

RUST_QUIZ:完成全部测验,并做了相应笔记

笨方法学C语言:实现了15个作业

rCore学习:完成了实验1-7并写了一部分详细理解,完成1-7的report

Rust学习

​ 从加入夏令营开始,我开始了解rust这门语言,以前只是学过c,java等语言。rust给我的第一感觉是严谨,复杂。rust的编译器将大部分可能的bug扼杀在编译阶段,我们不得不向编译器屈服。但是在严格的编译器检查的同时,相较于给予程序员足够信任的C语言也损失了些许灵活性。在rust的学习过程中,最重要的就是所有权,了解了所有权在学习rust简直易如反掌。

risc-v

就是一种精简指令集(doge

rCore学习

​ 完成实验1-7之后,我发现整个rCore就像一个大型软件,即使在我们并不了解riscv的情况下,我们也可以完成7个实验并通过测试用例。只需一下操作系统常识即可。在编写系统调用是我们无需担心特权转换,在开启分也是我们也无需担心mmu机制,这些关键的部分都已经编写好了。我们需要做的就只是调用作者先写好的功能即可。但是若是想了解rCore的运行细节,那么riscv机制将是重中之重。

建议

​ 在rCore实验中可以尝试让学员编写关键部分的代码如:特权级的转换,内存地址的映射等。而不是只要简单的调用rCore中写好的功能。

第一阶段的主要学习内容是Rust语言、RISC-V的特权级机制和 rCore-Tutorial-Book,我因为已经接触过Rust语言,所以在开始的几天复习了Rust语言的基础知识,学习了RISC-V的特权级机制,主要的时间和精力花费在了 rCore 的学习上。

Read more »