本文参考2019年版的Tools Used in 6.828(注意到当前版本也就是2020版本的Xv6, a simple Unix-like teaching operating system并没有清楚的instruction)。以下两种方法无论是使用apt安装qemu-system-misc还是编译安装qemu皆可,但不要使用apt安…
〇、前言
本文主要完成MIT 6.S081 实验八:file system 开始之前,切换分支: $ git fetch$ git checkout fs$ make cleanLarge files (moderate) The format of an on-disk inode is defined by struct dinode in fs.h. You’re particularly …
〇、前言
本文主要完成MIT 6.S081 实验五:Copy-on-Write Fork for xv6。 开始之前,切换分支:
$ git fetch
$ git checkout cow
$ make clean一、问题
Question requirements The fork() system call in xv6 copies all of the parent proc…
〇、前言
本文主要完成 MIT 6.S081 实验 mmap 。 开始之前,切换分支: $ git fetch$ git checkout mmap$ make cleanLab: mmap (hard)
Question requirements The mmap and munmap system calls allow UNIX programs to exert detailed control over th…
〇、前言
本文将会结合源代码谈论 exit、wait、kill 这三个系统调用。
一、exit 系统调用
以下是 exit()的源码:
// Exit the current process. Does not return.
// An exited process remains in the zombie state
// until its parent calls wait().
void
e…
〇、前言
本文主要完成MIT 6.S081 实验二:system call
一、Using gdb (easy)
Question requirements In many cases, print statements will be sufficient to debug your kernel, but sometimes being able to single step through some assembly code or inspe…
〇、前言
MIT 6.S081 实验六:Multithreading; 开始之前,切换分支: $ git fetch$ git checkout thread$ make clean一、实验:Multithreading
Uthread: switching between threads (moderate) In this exercise you wi…
〇、前言
本文主要完成 MIT 6.S081 实验 net 。 开始之前,切换分支: $ git fetch$ git checkout net$ make cleanLab: networking(hard)
Question requirements Your job is to complete e1000_transmit() and e1000_recv(), bo…