MIT 6.828 课程 | 3-User Environments PartB 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3540 Part B: Page Faults, Breakpoints Exceptions, and System CallsRemember that you can boot JOS into a particular user program using make run-x or make ru 阅读全文 »
MIT 6.828 课程 | 0-环境的搭建 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3890 在整个课程开始之前,我们首先需要搭建相应的环境,比如安装所需要的编译工具链、qemu软件等。0. 前言此次搭建是在Ubuntu 16.04 x64上进行的。$ uname -aLinux share-virtual-machine 4.15.0-54-generic #58~16.04.1-Ubun 阅读全文 »
MIT 6.828 课程 | HW1-Boot xv6 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3059 整个HW准备!!!!!!需要注意的是,这个homework所需要的不再是lab中的内容了,而是需要重新clone一份git仓库,之前Lab用到的是JOS,而HW系列用到的是xv6.git clone git://github.com/mit-pdos/xv6-public.git之后执行make,形 阅读全文 »
MIT 6.828 课程 | HW2-Shell 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 1644 Shell这一个作业的目的是为让我们更加了解Unix API,要实现一些shell命令,比如简单命令的执行、重定向的实现、通道的实现。0. 环境及所需文件环境:在任何支持Unix API的操作系统上实现都可以。所需文件:shell.c,这个作业就是在这个已给的文件上实现shell命令、重定向、管道 阅读全文 »
MIT 6.828 课程 | HW8-User level threads 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2640 在这个homework中,我们通过实现线程之间的上下文切换的代码来完成一个简单的user-level线程包。实验准备下载 uthread.c and uthread_switch.S这两个文件放到xv6的目录中(Hint:uthread_switch.S是以S结尾的而不是s结尾的)在Makefile 阅读全文 »
MIT 6.828 课程 | 5-File system,Spawn and Shell 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2696 Introduction在这个Lab中我们将会实现spawn,这是一个library call可以加载和运行磁盘上的可执行文件。之后我们将会扩展kernel和library operating system在console上运行shell。这些功能都需要一个文件系统,所以这个Lab将会引入一个简单的 阅读全文 »
MIT 6.828 课程 | 2-Memory Management 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2156 Introduction在这个Lab中,将会为OS编写内存管理的代码。内存管理有以下两个部分:第一部分是kernel的physical memory allocator,kernel通过allocator来分配内存并且之后释放掉它。allocator将以4096bytes为单元来进行操作。你的任务是 阅读全文 »
MIT 6.828 课程 | HW3-System Calls 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 2570 理论知识User mode,kernel mode,and sytem calls强大的隔离需要一个坚固的边界在application和操作系统之间。当一个application出错了,我们不希望操作系统运行失败也不希望其他applications运行失败,相反操作系统需要去清除掉这个运行出错的程序 阅读全文 »
MIT 6.828 课程 | HW7-xv6 locking 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 3095 在这个HW中,我们将探索interrupt和lock之间的相互作用。首先我们来看一下spinlock.c和spinlock.h中的一些函数和定义struct spinlock;initlock();acquire();release()这些主要是lock的具体实现,比如struct spinlock 阅读全文 »
MIT 6.828 课程 | 0-MIT 6.828 课程简介 发表于 2019-11-25 | 分类于 MIT6.828 | 0 | 阅读次数 1955 课程简介和感悟先把课程的链接抛出来:https://pdos.csail.mit.edu/6.828/2018/schedule.html给的是课程的安排表,学习这个课程主要是做安排表上相应的Lab内容和homework内容,安排表上还给出了贼全面的参考资料。那么简单来说这个课程是MIT给他们本科生 阅读全文 »