个人信息

学号: 20232131048
姓名: 梁俊斌
专业班级: 计算机科学与技术三班

lab1: 环境搭建以及简单的用户程序

  1. 这个实验主要是用来熟悉环境以及初入门 xv6
  2. 这一部分没有太多细节要讲解

因为我是将*nix 的作为主力机使用的,因此这搭建环境这一部分没有太多问题,其余习题直接展示成果更好。

p1

p2

p3

lab2: System call & xv6 attack

这次的实验就是有关于:系统调用(system call) 的实现以及关于 xv6 的攻击测试(即一个系统安全问题的思考)

实验内容主要为:

  • 系统调用路径 trace 的实现
  • 一个内存释放的安全问题

这次的实验, trace 这道题还好.主要是这个 攻击xv6 这个有意思.
之前对于系统攻击就有一定的了解,比如: csci0300meltdown and spectre. 这些系统攻击就是和这次实验的有点不一样,一个主要是Side channel attacks,一个是C库函数的缺陷,这次的实验我们主要是利用了xv6团队特意设计的系统缺陷进行攻击的. 系统攻击真的是有趣但复杂, 从这次的 attack 来看,看来还有很多东西要继续深挖才行啊,内存分布,内存布局,内存分配,页表等等.

p4

lab3: Address space and memory

这次的实验可以用一个作为关键:page table

这次的实验,我对这个 page table
可以说是有了一定的深刻了解。从物理概念,物理实现到逻辑概念,逻辑实现,这个真是充满了工程性。我认为这种工程性还不够就是有那种系统的逻辑性,其实我在思考🤔是否可以用数学上的抽象代数上的结构进行一个系统的重构,起码我认为 lock 这个是可以做到的

p7

lab4: File system

这个实验其实只是 File system 的其中一部分涉猎,有趣的东西都还没有涉及到。

File system 七大 layer:

  • File descriptor
  • Pathname
  • Directory
  • Inode
  • Logging
  • Buffer cache
  • Disk

这次的实验我们主要就是做了:

  1. 对于 bigfile 的支持
  2. 对于 symbolic link 的支持

p5

p8

lab5: net

这次的实验就是有关于网络接收包 packet 的一个实现,主要我们探讨的是 UDP 的实现的。这个实验,其实如果你肯耐下心来文档套文档,套到最后一层,那么你就可以实现了对网络的不仅有概念上的理解,更有动手实践的基础。

这个实验作为本学期的最后一个实验,不仅仅可以说是一个好的收尾,更是一个你作为兴趣者的一个好的继续下去的拓展。

p6

那一刻,铜管响起

操作系统路程算是告一段落了, 这个 xv6 的折腾算是一个很好的折腾了,因为麻雀虽小,但五脏俱全。课程的安排,我认为选择 xv6 是一个很好的选择,毕竟这个算是初时代的 Unix 系统。

教学方式生动有趣,充满风趣,我认为这种和底层的 OS 结合在一起,富有一种独特风味,也让我产生一种我还要继续下去的感觉。

就如同響け!ユーフォニアム里的黄前久美子那样:

上手くなりたい!!!

そして、次の曲が始まるのです!