操作系统
文章平均质量分 92
rocketeerLi
自由地努力着
展开
-
MIT 6.S081 Lab11: networking
这次实验是最后一个实验,主要是写一个网卡驱动,在已有的框架下添加一些代码,实验地址在这里。本次实验是写的最不认真的一个了,也是写的最快的了,感谢网上的资源。个人感觉,本次实验内容应该放在讲键盘驱动那部分,当时看完了课程但不是很懂,没想到是最后的实验内容。我的实验代码在 github。由于本次实验与 xv6 系统关系不大,且代码量很少,做的时候就直接参考了网上其他人的,在这里做个记录,以后想看的时候,用来给这门课程的实验结个尾。原创 2022-01-17 16:13:09 · 820 阅读 · 0 评论 -
MIT 6.S081 Lab10: mmap
最近在忙其他事情,时隔两周,做了第十个实验,试验地址在这里。这个实验只有一个任务,主要是关于文件映射部分,跟文件系统关系不是很大,但与虚拟内存关系密切,部分实现类似于实验五的懒加载。本次实验的前置知识没多少,主要关注 mmap 系统调用的各个参数如何使用,以及其返回值。我的实验代码在github上。原创 2022-01-17 10:51:26 · 1367 阅读 · 0 评论 -
MIT 6.S081 Lab9: file system
这个实验是文件系统,内容是扩充 xv6 的文件系统大小和实现软链接,实验地址在这里。感觉到这里是操作系统的另一个视图了,跟前面的虚拟内存和进程不太一样,相比来说,操作系统这部分的知识简单一些。为此我去补充了一下相关的知识,再次感觉这门课真好,。能力太差了,写代码花了好长时间,,代码放在了github上。原创 2021-12-30 01:34:29 · 1728 阅读 · 0 评论 -
MIT 6.S081 Lab8: locks
最近有点忙,。。拖了一周多的时间才开始写这个实验。。这次实验的目的是设计锁,主要目的是降低多线程情况下对锁的竞争,实验地址在 Lab: locks。实验的整体思路还是比较简单的:就是降低锁的粒度,将一个大锁更换为一些粒度小的锁,这样可以大幅度降低锁的竞争。我的代码在 github。关于这次实验,对应的讲义没有太多有帮助的内容,可以直接上手做实验。我是先看了一下一遍对应的课程,虽然跟这次实验关系不是很大,但还是在下面记录一下。原创 2021-12-25 13:39:25 · 1718 阅读 · 2 评论 -
MIT 6.S081 Lab7: Multithreading
这个实验是多线程安全和同步的内容,实验地址在这里。说实话,有点简单,用了一天时间就写完了,感觉最近的实验,从实验三之后难度就降低了很多。但是实验的内容还是很有用的,主要学习了一遍线程的切换过程,感觉受益很多,建议看一下课程里对应的多线程部分。我的实验代码在 github 上,感觉这个实验没太多代码和步骤需要分析,主要是基础知识,这里就随便写点我觉得重要的了。原创 2021-12-12 13:53:10 · 1057 阅读 · 4 评论 -
MIT 6.S081 Lab6: Copy-on-Write Fork for xv6
这次的实验与上一个实验(懒分配)很相似,实现写时复制,实验地址在这里。与以往不同的是,这次只有一个任务,虽然是 hard 难度,但写起来并没有很吃力,应该是我写的最快的一个实验了。思路很简单,主要是容易出现各种 bug,debug 的过程会比较煎熬,。我的代码在 github 上。原创 2021-12-07 21:33:54 · 1358 阅读 · 0 评论 -
MIT 6.S081 Lab5: xv6 lazy page allocation
这个实验主要是写内存的懒分配(Lazy page allocation)应该是目前为止最简单的了?!实验说明地址在Lab: xv6 lazy page allocation,我的代码在 github。断断续续的做也没用多长时间,。需要的知识比较简单,可能会比较考验 debug 的能力,不过参考一下网上的经验,还是很容易解决的。原创 2021-12-06 02:22:30 · 2337 阅读 · 3 评论 -
MIT 6.S081 Lab4: traps
这次实验主要是写与 traps(中断陷阱)有关的代码,实验指导书在这里。总体来讲,代码量不是很大,大部分时间都思考应该怎么写、为什么这么写可以、函数是怎么运行的等问题。终于在思考了几天后完成了这次实验,实验代码在我的 github 上。建议在做实验之前看看课程或者讲义,感觉这次的课很精髓,对做实验很有帮助。原创 2021-12-02 16:31:44 · 2150 阅读 · 6 评论 -
MIT 6.S081 Lab3: page tables
今天做完了 6.S081 Lab3: page tables,实验三的主要任务是增加一个页表。本来计划上周就做完,但自己的基础知识实在匮乏,又先去补充了一下虚拟内存方面的知识,把李志军老师的操作系统慕课看了一些,周末才开始搞。中间遇到了一些bug,参考了一下大佬们的实现,磕磕绊绊算是做完了~,代码在 github 上。感觉这个实验跟前两个不是一个级别~原创 2021-11-25 01:52:07 · 2163 阅读 · 3 评论 -
MIT 6.S081 Lab2: system calls
先看了一下所需要的系统调用方面的知识,然后花了两天时间做完了实验二,实验手册在 syscall,我的实验代码在 github。实验二的目的是让我们实现两个系统调用函数,先来简单介绍一下前置知识。操作系统的主要功能就是管理硬件,避免程序直接和硬件进行交互,而是通过内核来操作硬件,例如,使用CPU、读取内存和写入磁盘等操作。操作系统具有两大特性:隔离性(Isolation)和防御性(Defensive)。原创 2021-11-11 17:35:16 · 1551 阅读 · 0 评论 -
MIT 6.S081 Lab1: Xv6 and Unix utilities
这周开始做 MIT 的 6.S801 操作系统实验,补一下本科时的基础,希望能一直做下去,二哥监督!刚做完实验一,地址在 Lab: Xv6 and Unix utilities, 在这里做一下记录。原创 2021-11-04 15:58:50 · 2017 阅读 · 1 评论