0. 簡介
操作系統是計算機科學中十分重要的一門基礎學科,是一名計算機專業畢業生必須要具備的基礎知識。但是在學習這門課時,如果僅僅把目光停留在課本上一些關於操作系統概念上的敘述,並不能對操作系統有着深層次的理解。必須要結合動手實踐,才能真正掌握核心的知識。
MIT的操作系統課程6.828是一門被廣泛好評的入門課程。它最重要的特點就是它實踐第一的教學原則。在這門課程中會涉及到非常豐富的實驗,也會有非常多的動手機會。而且授課者更是親自構建了一個簡化的基於Unix內核的操作系統xv6。所有的實驗都是在這個操作系統上完成。雖然它功能很簡單,但是它能夠幫助我們真正的了解操作系統在做什么。
所以這一系列博文就是針對6.828這門課來展開的,我將以博客的形式記錄自己學習6.828的過程。為了能夠更好的掌握知識,以及為了能夠服務於廣大學習6.828的同學們,我將進自己最大的努力去總結,記錄。在我們這系列博文中會包括以下幾個內容:
- 所有實驗的實驗報告(Lab)
- 所有實驗中的練習(Exercise)
- 所有的小作業(Assignment)
- lecture中(book_xv6)中一些比較重要的知識點的翻譯總結
- 一些其他的重要相關知識的總結(Appendix)
1. 博文格式的說明
1.1 博文名稱
為了方便大家查找想要查看的內容,我為我的博文定義了一個命名規則:
博文標號. 博文分類 : 博文題目
比如 1. Lab 1 : Booting a PC
其中1,代表是第一篇博文,Lab 1,代表這篇博文講述的是實驗1的實驗報告,Booting a PC代表的是這篇博文的題目。
1.2 博文分類
我的博文根據講述的內容不同可能會划分為如下幾個種類,下面的表格列出所有種類的分類名,以及它所包含的內容
| 博文分類名 | 博文內容 |
| Lab | 代表這篇文章是關於某個實驗的記錄 |
| Exercise | 代表這篇博文是對某個實驗中的某個exercise的解答,Exercise 3.1,就代表是Lab 3的Exercise 1 |
| Assignment | 代表這篇博文是某個小作業的解答 |
| Lecture | 代表這篇博文是lecture(book_rev8)中某個重要知識點的總結翻譯 |
| Appendix | 代表這篇博文是對於一些沒有在lecture中出現的重要知識點的總結 |
這里面有一點要注意,因為每一個實驗的內容都很多,所以我們不會把一個實驗的所有部分都放在一篇博文中,所以我們對於Lab這類博文會再細分。因為每個Lab都會有好幾個Part,所以我們會按照Part來上傳博文,所以這類博文的名字如下:
1. Lab 1 Part 1: PC Bootstrap
代表的含義就是實驗1的Part1部分的實驗報告。
2. 關於資源
MIT 6.828的課程資源其實都可以在他們的官網上下載到:https://pdos.csail.mit.edu/6.828/2014/index.html,但是由於被牆掉了,可能大家會訪問不到,所以為大家提供了下面的途徑
大家可以關注我的github:https://github.com/fatsheepzzq/6.828mit
這里面包含了我的所有完成的代碼,還有關於xv6操作系統的源碼,還有所有大家需要的資源,不過由於我也不斷的學習中,所以這個里面的內容會有一些變動,比如添加一些新的資源,添加新的報告等等。
所以建議大家在github上watch一下我的工程,這樣的話,就可以第一時間獲取通知了!
謝謝大家的支持!
2.1 獲取資源的方法
因為所有的資源都在github上,所以必須要求大家使用github來獲取,而git也是6.828課程中非常強調的要掌握的技術之一,所以讓大家采用這種方式來獲取資源也是為大家之后的學習着想。
下面簡答介紹下如何獲取資源。
首先看一下在github中這個工程的目錄,我的這個工程6.828mit包含兩個目錄:
\lab:這個目錄下面存放着所有的xv6源碼,以及所有的實驗,作業的報告。每個實驗或作業都對應一個文件夾。
實驗的文件夾名為"LabX"的形式,X代表第幾個實驗。
作業的文件夾名為"AssignmentX",X代表第幾個作業。
每個文件夾中包括一個英文版的實驗描述或作業描述,這是MIT官方提供的。然后有些練習涉及到編程,那么源文件也在這個目錄下,每個源文件會有兩份,其中一份是沒有完成的原版,一份是我完成的,命名的區別就在於完成版后面會多加一個complete。
比如 作業1中有一個源文件,名字sh.c,所以原版就是sh.c,而我完成的版本就是 sh_complete.c
其余的文件夾都是xv6的源碼。
\resources:
這里面存放着所有和課程相關的引用書籍,都是授課者所推薦的。我為每個資源都標了號,具體在實驗中要用到哪個資源,看標號就可以找到了。
比如這門課程的課本(lecture)就是book-rev8,資源號為003.
在windows下獲取資源:
1. 首先你必須先安裝git到你的電腦中,至於怎么安裝git,我在這里就不贅述了,你可以在網上搜索,推薦 "廖雪峰的git教程",很簡潔明了。
2. 安裝好git之后打開cmd
3. 選擇你想要把整個工程放在哪里,來到那個目錄下
4. 輸入git clone https://github.com/fatsheepzzq/6.828mit.git 即可
上圖中就是完成了把工程clone到E:\Code目錄下的操作。
在Linux下獲取資源:
操作同windows一樣,也是要先安裝git,然后打開一個terminal,並且輸入
git clone https://github.com/fatsheepzzq/6.828mit.git
即可
如果工程有更新的話,比如當我上傳新的實驗報告時,你可以通過下面的方法獲取最新的更新:
1. 如果在windows下,打開cmd,如果在linux下,打開terminal
2. 來到工程根目錄下,比如E:\Code\6.828mit\
3. 輸入git pull,即可。
如有任何問題,或有發現我的錯誤,歡迎大家發送到我的郵箱~
zzqwf12345@163.com
最后多謝大家的支持!
