0%

这是我第一次接触rust语言,因为是初次接触,而且语法系统和之前学过的C++语言完全不同,因此在学习上遇到了不少困难,幸运的是在个人的持续努力以及与同学的持续交流下,最终是赶在截止之前实现了基础的110题的需求。由于接触比较晚,再加上现实生活并没有很多空闲时间,因此完成rustling训练的过程的时间过程相对较长,对语言的理解也依然不是很深刻,在后续的学习中会尽量在不影响正常学习的情况下尽量提高对rust语言的熟悉度与熟练度。以下则是按相对日期所展示的具体时间安排:
day1 配置环境 + 1 ~ 30题的完成
day2 31 ~ 60
day3 61 ~ 80
day4 81 ~ 101
day5-7 102~110
通过这段时间的学习实际收获其实并不少,只是由于时间以及客观环境的限制,对rust语言解决问题的编码思路与生命周期相关的内容依然不算很熟悉,也算是一个需要继续精进的点了。

总结

通过第三阶段的学习,了解了组件化操作系统内核的思想,这告诉我们可以基于组件构造内核的方法,增量地构造出应对不同场景的各种模式内核。从而能够:

  1. 提高内核开发效率
  2. 降低内核维护难度
  3. 开展基于组件的功能复用和开发协作
    具体来讲:

第一周

  • 配置好了项目环境
  • 通过模拟需求的不断增加的场景,增量地认识了unikernel形态下的Arceos
  • 了解了如何根据需求变更,从最开始一个极为简单的内核逐步扩展出一个拥有文件系统等功能模块的unikernel
  • 了解了如何通过转义字符使终端打印彩色字符
  • 实现了简单的Hashmap
  • 实现了一种简单的内存分配算法

第二周

  • 见识到了如何根据组件化的思想,仅通过增加少量组件,将unikernel形态下的内核扩展为Monolithic kernel
  • 了解了一点riscv硬件架构的知识
  • 学习了Arceos中TCB的设计思路
  • 编写了一个函数处理缺页异常
  • 实现了一些简单的unix应用(mv,rename)
  • 了解了mmap函数

第三周

  • 了解了虚拟化的思想和一些基本概念
  • 了解了是如何通过增加模块将Arceos进行虚拟化的

不知不觉一个月都要过去了,整了将近一个月(中间因为各种事情咕咕了一周多)的 rCoreLab, 在这里做一个小小的总结。

Read more »

学习报告

一个月的rCore学习已经步入了尾声,虽然Lab还在进行中,但是还是在这里简单复盘一下这一个月的学习心得。刚看到这样一个实习机会的时候,就挺想尝试的,因为学习一个月、参与项目一个月的模式真的很打动我,然后就从做简历和学习github的用法开始,一点一点靠近这个实习。其实报名的时候就是抱着试一试的心态,因为毕竟是完全零基础,填写报名问卷的时候,是否学过Rust、是否做过操作系统相关项目都战战兢兢的写了否,生怕这里就被刷下去,所幸,最终还是得到了一个机会,可以参与进来。然后就是按照rCoreTutorial的要求,按部就班的进行啦,暑假的时间还是很宽裕的,所以基本每天从早到晚都在学习这些,一度感觉自己比上课时候还用功,虽然比较用功,但是还是自知和参与这项活动的很多大佬还是有很大差距的,但是我心态比较好,也不和别人比较嘛,就尽自己所能,来完成每日的要求,还没有完成的事情,接下来几天也一定抓紧补齐。

Read more »

我是洛佳,参与了这次OS实验。我在一段时间的工作中,学习了大量操作系统开发的基础知识,熟悉了理论课的概念。
RISC-V是崭新的架构,Rust是优秀的编程语言,都是全新的技术和工业设计的精华。这样开发操作系统,学习的效果更好。
本次实验我还尝试为开源社区提出意见,帮助建设Rust与操作系统相关的生态环境。

Read more »