iT邦幫忙

0

[MIT-6.S081-2020] OS課程----Xv6作業系統的環境架設

  • 分享至 

  • xImage
  •  

前言

哈囉大家好,6.S081是麻省理工的一門作業系統的課程,小弟我在寒假時有聽說這們課程很厲害,但是才寫了一個lab就沒有繼續寫下去了XD

想說趁暑假閒閒沒事,來再次嘗試讀讀這們課程,順便寫個筆記:)

學習方法

跟著課程進度一直走下去就可以了,個人覺得重點是寫完各個lab(類似作業的東西)

什麼是Xv6 ?

6.S081提供了一個教學用的作業系統Xv6,讓學生可以直接修改以及trace程式碼,我認為這非常的讓人興奮,平常雖然每天都在使用作業系統,但也不是很了解OS是如何運作的,而這們課程透過Xv6來把OS的原型展露出來,有不懂的地方都可以向原始碼請教

Xv6的環境架設

這部份的詳細內容都寫在lab util中,大致上你會需要一個linux系統(windows使用者可以用虛擬機),然後Xv6會跑在linux所架設的虛擬機上

  1. 下載原始碼
$ git clone git://g.csail.mit.edu/xv6-labs-2020
$ cd xv6-labs-2020
$ git checkout util
  1. 安裝架設虛擬機的套件
    我自己是用Debian,如果你用的是ubuntu了話下載步驟應該也是一樣的,至於是其他系統的使用者,可以看這裡
$ sudo apt-get install git build-essential gdb-multiarch qemu-system-misc gcc-riscv64-linux-gnu binutils-riscv64-linux-gnu
  1. compile程式碼並且讓他跑在虛擬機上
$ make qemu
...
(一大串訊息)
...
xv6 kernel is booting

hart 2 starting
hart 1 starting
init: starting sh
$

到這裡,Xv6已經成功開機了!

  1. 嘗試打個指令
$ 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

沒意外了話,會出現以上的畫面

  1. 離開虛擬機
    按下ctrl+a放開這兩個鍵之後,再按下x
$ QEMU: Terminated

就可以裡開了

之後應該會繼續寫筆記,再請各位多多指教~


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言