0%

整体感受

这是我第一次参加这样的开源课程,也是我第一次深入的学习操作系统的相关知识
(之前学过 nand2tetris 不过学的比较浅)。整体的课程体验非常的好,这是我
第一次见到使用 GitHub Classroom 做为教学平台的国内课程。

除此之外,整个实践过程非常符合开源软件的开发方式,
这让我这种习惯了开源软件开发流程的人感到十分的舒适:

  • 所有资料都公开在 GitHub 上
  • 实验代码在提交之后有 CI 自动完成评测和分数上报
  • 学生可以给仓库发 PR 来为课程做改善(感觉合PR 的频率稍微有点低,后来我就直接给 rCore Tutorial 提 PR 了,rCore 这边合的很快)
  • 直接使用 GitHub Issues 做问答(虽然回复的人比较少)
  • 甚至用上了当时还在预览中的 Codespaces

此外,课程的直播网站设计的也很棒,甚至在校园网的条件下比企鹅会议流畅。

学习记录和各章节报告的 repo: https://github.com/kxxt-sduwh/rust-os-learning-record

Read more »

2022 开源操作系统训练营第二阶段总结

笔记仓库 https://github.com/yfblock/OS-Tranining-Camp
第二阶段rcore-N 仓库 https://github.com/yfblock/rCore-N

rcoreN学习总结

所谓用户态中断就是在用户态发生的中断,在发生中断时不需要进入内核态,不需要切换特权级。最开始是应用在当前进程中,因此在发生一些中断时不必频繁的切换上下文,一部分中断可以直接在用户态进行处理,减少相关的性能损耗。在fork中也能对数据进行处理,在发生进程间通信时,可以不仅如此内核态而在用户态直接处理,同样也可以减少性能的损失。

Read more »

2022 开源操作系统训练营第二阶段总结

2022.09 朱懿

在第一阶段学习了rust和操作系统实验的基础上,第二阶段我基于我的兴趣,选择了虚拟机的方向,经过前期的调查了解研究,发现,在夏令营第二阶段设计的虚拟化的几个方向中,对于偏向硬件的虚拟机方向,已经有人做出了实现。然而我注意到,目前为止,所有的工作仍然没有人注意到操作系统级的虚拟化的方向,也就是容器化的方向。因此,在自己感兴趣的前提下,第二阶段我选择了容器化的这个虚拟机的方向进行学习和研究。

(当然,也因为没有前人在这方面的相关工作,我在这方面的学习研究,不能说举步维艰吧,只能说从0到1)

因此,尽管最后在zcore上面的改造不算成功,但我会尽量详尽的结合我在项目里面的log记录,省却大量无用的吐槽,希望为后来者提供一些可行的资料和设计思路。

Read more »

操作系统第二阶段结营

选题方向总体设想

通过一种实现模块的方式,对于各个不同的章节进行实现,在对于其他章节的学习的时候,尽可能的尝试不对于其他章节进行修改,以尽可能的保证在不同章节中的学习中,各个章节中的内容可以尽可能的进行复用,不至于在对于某个章节中的内容进行修改之后,需要对于其他模块(不同章节中实现的内容)进行大幅度的修改

Read more »

repo

我第二阶段选择的主题是模块化rcore,刚开始想的比较美好,这个模块化rcore项目和第一阶段都属同一个项目,做起来难度应该不大;并且模块化正是程序员所追求的一种境界。但是一着手实现就有很多问题了。第一个问题是怎么实现模块化,有没有一种切实可行的一种方法?此外,虽然经过了操作系统夏令营的洗礼,但是我依然缺少对操作系统底层相关的技术的理解。比如应用程序如何加载,这过程中使用到了什么命令等等细节的问题。

无奈何只能从头开始看rcore-tutorial的文档了。因此我第二阶段做的工作并不是模块化rcore,而是按照rcore-tutorial文档复现出一个操作系统。

Read more »

第二阶段报告

背景与已有工作

仓库地址: https://github.com/chenzhiy2001/code-debug

VSCode Debugger Extension

VSCode 为了方便图形化地调试(而不是在终端里手输命令去获取信息),提供了一套对 Debugger 的 UI 支持,但是不同的语言有不同的调试器,无法直接让 UI 去调用相应调试器,因此 VSCode 提出了 Debug Adapter 作为 UI 与 Debugger 的连接桥梁,一个调试器插件就是一个实现了这样一套接口的对象,其协议叫做 Debug Adapter Protocol。

Read more »

2022 开源操作系统训练营第二阶段总结

2022.09 唐洪雨 RFreeRTOS

经过2022年开源系统系统训练营的第一阶段学习,在第二阶段中我选择的课题是基于Rust语言的嵌入式实时操作系统RFreeRTOS,这是市场主流RTOS——FreeRTOS 的Rust语言实现。我的主要工作是复现已有的实验结果,进一步完善测例,并能移植到CH32V307芯片。

Read more »

选题背景

第二阶段我的主要工作是参与完善陈志扬同学的操作系统调试器。之所以选择这个题目,是因为在日常工作中,工具对于提升开发人员的效率是有非常大作用的。通常大家都是使用已有的工具,而作为一个工具的开发人员,往往需要了解到比一般用户更加底层,更加细致。

Read more »