前言
哈啰大家好,6.S081是麻省理工的一门作业系统的课程,小弟我在寒假时有听说这们课程很厉害,但是才写了一个lab就没有继续写下去了XD
想说趁暑假闲闲没事,来再次尝试读读这们课程,顺便写个笔记:)
学习方法
跟着课程进度一直走下去就可以了,个人觉得重点是写完各个lab(类似作业的东西)
什么是Xv6 ?
6.S081提供了一个教学用的作业系统Xv6,让学生可以直接修改以及trace程式码,我认为这非常的让人兴奋,平常虽然每天都在使用作业系统,但也不是很了解OS是如何运作的,而这们课程透过Xv6来把OS的原型展露出来,有不懂的地方都可以向原始码请教
Xv6的环境架设
这部份的详细内容都写在lab util中,大致上你会需要一个linux系统(windows使用者可以用虚拟机),然后Xv6会跑在linux所架设的虚拟机上
下载原始码$ git clone git://g.csail.mit.edu/xv6-labs-2020$ cd xv6-labs-2020$ git checkout util
安装架设虚拟机的套件我自己是用Debian,如果你用的是ubuntu了话下载步骤应该也是一样的,至于是其他系统的使用者,可以看这里
$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
compile程式码并且让他跑在虚拟机上$ make qemu...(一大串讯息)...xv6 kernel is bootinghart 2 startinghart 1 startinginit: starting sh$
到这里,Xv6已经成功开机了!
尝试打个指令$ ls. 1 1 1024.. 1 1 1024README 2 2 2059xargstest.sh 2 3 93cat 2 4 24120echo 2 5 22944forktest 2 6 13184grep 2 7 27424init 2 8 23680kill 2 9 22904ln 2 10 22744ls 2 11 26312mkdir 2 12 23040rm 2 13 23032sh 2 14 41856stressfs 2 15 23904usertests 2 16 148312grind 2 17 38008wc 2 18 25232zombie 2 19 22280console 3 20 0
没意外了话,会出现以上的画面
离开虚拟机按下
ctrl+a
放开这两个键之后,再按下x
$ QEMU: Terminated
就可以里开了
之后应该会继续写笔记,再请各位多多指教~