概述
我是在Debian 11下进行编译的,相信在其它的Linux发行版操作应该也没有问题,但没试过。
感谢老师和助教们贡献了这么好的课程。回顾一下这段时间的学习历程,首先是感谢课程提供的良好的资源,推荐的资料阅读大有脾益,比如那本risv手册易懂又不失深刻。课程的lab结构是一点点增加模块拓展而来的,上手难度平缓,对简易操作系统实现的核心思想有了更进一步的了解。
之前上杨力祥老师的操作系统课程,杨老师给我影响最深刻的一句话是要能够把系统结构画图花出来。 在阅读文档和代码过程中,感觉能把代码结构中的类之间的关联与作用机制、结构和内存磁盘等设备的作用原理搞清楚,能在脑袋里面建立一个大致的相互作用图景,对于理解操作系统非常有益。
2023-01 OS小组会议纪要
不同操作系统内核可重用的Rust Crate设计与实现
Rust 是一种“多范式安全系统编程语言”,在开源领域呈现出滚雪球般的势头不断壮大。当前已经出现了多种基于Rust的实验型操作系统项目,而且也已经出现在主流的操作系统中。2022年12月12日,Linux 6.1 正式发布。Linux 6.1 的一个主要升级是把已经开发近一年多的Rust for Linux子系统加入主线,这是对 Rust 在Linux内核上的重要突破。今后将可以使用Rust开发操作系统内核模块,并用于不同操作系统中,而Rust化的实时优化Linux内核和Rust RTOS将成为重要新技术方向。
本课程计划定期讨论和研究 “不同操作系统内核可重用的Rust Crate设计与实现” ,并基于Linux内核和Rust RTOS,着重开展以下三个研究子方向的技术工作:
这是我第一次参加这样的开源课程,也是我第一次深入的学习操作系统的相关知识
(之前学过 nand2tetris 不过学的比较浅)。整体的课程体验非常的好,这是我
第一次见到使用 GitHub Classroom 做为教学平台的国内课程。
除此之外,整个实践过程非常符合开源软件的开发方式,
这让我这种习惯了开源软件开发流程的人感到十分的舒适:
此外,课程的直播网站设计的也很棒,甚至在校园网的条件下比企鹅会议流畅。
学习记录和各章节报告的 repo: https://github.com/kxxt-sduwh/rust-os-learning-record
笔记仓库 https://github.com/yfblock/OS-Tranining-Camp
第二阶段rcore-N 仓库 https://github.com/yfblock/rCore-N
所谓用户态中断就是在用户态发生的中断,在发生中断时不需要进入内核态,不需要切换特权级。最开始是应用在当前进程中,因此在发生一些中断时不必频繁的切换上下文,一部分中断可以直接在用户态进行处理,减少相关的性能损耗。在fork
中也能对数据进行处理,在发生进程间通信时,可以不仅如此内核态而在用户态直接处理,同样也可以减少性能的损失。
在第二阶段的活动中,我选择的是rCore的进一步扩展,因为时间与rCore移植比赛的重合性,我选择了在完善移植工作并结束比赛后才进一步做扩展相关的工作,因此可能对于扩展部分的改进不是很多。
2022.09 朱懿
在第一阶段学习了rust和操作系统实验的基础上,第二阶段我基于我的兴趣,选择了虚拟机的方向,经过前期的调查了解研究,发现,在夏令营第二阶段设计的虚拟化的几个方向中,对于偏向硬件的虚拟机方向,已经有人做出了实现。然而我注意到,目前为止,所有的工作仍然没有人注意到操作系统级的虚拟化的方向,也就是容器化的方向。因此,在自己感兴趣的前提下,第二阶段我选择了容器化的这个虚拟机的方向进行学习和研究。
(当然,也因为没有前人在这方面的相关工作,我在这方面的学习研究,不能说举步维艰吧,只能说从0到1)
因此,尽管最后在zcore上面的改造不算成功,但我会尽量详尽的结合我在项目里面的log记录,省却大量无用的吐槽,希望为后来者提供一些可行的资料和设计思路。