哈囉大家好,6.S081是麻省理工的一門作業系統的課程,小弟我在寒假時有聽說這們課程很厲害,但是才寫了一個lab就沒有繼續寫下去了XD
想說趁暑假閒閒沒事,來再次嘗試讀讀這們課程,順便寫個筆記:)
跟著課程進度一直走下去就可以了,個人覺得重點是寫完各個lab(類似作業的東西)
6.S081提供了一個教學用的作業系統Xv6,讓學生可以直接修改以及trace程式碼,我認為這非常的讓人興奮,平常雖然每天都在使用作業系統,但也不是很了解OS是如何運作的,而這們課程透過Xv6來把OS的原型展露出來,有不懂的地方都可以向原始碼請教
這部份的詳細內容都寫在lab util中,大致上你會需要一個linux系統(windows使用者可以用虛擬機),然後Xv6會跑在linux所架設的虛擬機上
$ git clone git://g.csail.mit.edu/xv6-labs-2020
$ cd xv6-labs-2020
$ git checkout util
$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
$ make qemu
...
(一大串訊息)
...
xv6 kernel is booting
hart 2 starting
hart 1 starting
init: starting sh
$
到這裡,Xv6已經成功開機了!
$ ls
. 1 1 1024
.. 1 1 1024
README 2 2 2059
xargstest.sh 2 3 93
cat 2 4 24120
echo 2 5 22944
forktest 2 6 13184
grep 2 7 27424
init 2 8 23680
kill 2 9 22904
ln 2 10 22744
ls 2 11 26312
mkdir 2 12 23040
rm 2 13 23032
sh 2 14 41856
stressfs 2 15 23904
usertests 2 16 148312
grind 2 17 38008
wc 2 18 25232
zombie 2 19 22280
console 3 20 0
沒意外了話,會出現以上的畫面
ctrl+a
放開這兩個鍵之後,再按下x
$ QEMU: Terminated
就可以裡開了
之後應該會繼續寫筆記,再請各位多多指教~