Nachos的全稱是「Not Another Completely Heuristic Operating System」,它是一個可修改和跟蹤的操做系統教學軟件。具體可參考百度百科。若是是在學習操做系統課程,並使用Nachos做爲輔助教學,本文將會有所幫助。在網上沒有找到使用Code Blocks搭建nachos的教程,只好本身琢磨,總算有所小成。sass
說明,如下操做都是在Ubuntu 11.10中進行的。函數
一、獲取Nachos源碼:能夠在這裏下載源碼。下載後,右擊,選擇解壓到此處,把解壓獲得的文件夾,修更名稱爲nachos,放在某一目錄下,這裏直接放在主文件夾下。工具
二、系統安裝g++。學習
sudo apt-get install g++
三、直接使用gcc編譯。ui
先將nachos\nachos3-4\code\下的Makefile文件中的操作系統
MAKE = gmake 改爲 MAKE = make
而後在clean:後邊加上如下幾行:.net
clean: cd threads; rm *.o nachos cd network; rm *.o nachos cd filesys; rm *.o nachos cd test; rm *.o cd userprog; rm *.o nachos cd vm; rm *.o nachos rm -f *~ */{core,nachos,DISK,*.o,swtch.s,*~} test/{*.coff} bin/{coff2flat,coff2noff,disassemble,out}
上面的這幾行是用來實現clean時清楚全部子目錄下的目標文件已經可執行文件。由於原來的那行貌似不起做用。調試
運行終端,切換目錄到nachos\nachos3-4\code下,直接輸入make,回車:code
正常的話,就編譯成功了。再進入threads目錄下,執行nachos:教程
若運行如上圖,則表示編譯成功。
再運行命令
cd .. make clean
清除目標文件及可執行文件。
四、安裝Code::Blocks:在軟件中心搜索Code Blocks,並安裝
五、運行Code::Blocks,新建一個空工程,名稱爲nachosCb,其餘路徑以下:
下一步,編譯器選擇GNU GCC Compiler,完成。
六、右擊工程,選擇Add files recursively,選擇nachos-3.4下的code目錄,選擇Select All:
肯定,將全部文件加到工程。
七、右擊工程,選擇Properties,設置Makefile以及路徑,勾選上This is a custom Makefile,下面的路徑是Makefile所在目錄,即code目錄。圖中使用的是相對路徑:
八、選擇Build targets標籤,單擊Add,增長一個Target,名稱爲Threads,其餘設置以下:
說明:由於nachos下有不少子目錄,執行make以後,不少目錄下都會生成可執行文件nachos,它們表明nachos不一樣的部分。你能夠爲每一個會生成可執行文件的目錄創建一個Target,這樣,在Code Blocks裏能夠經過在工具欄切換Target來實現運行、調試整個系統的不一樣部分。不過,雖然每一個目錄下都有各自的Makefile文件,Build的時候用的仍是code目錄下的那個Makefile。固然,你能夠在第7步裏邊進行選擇,不過仍是建議使用code下的Makefile,比較方便。
單擊肯定,使得設置生效。
九、再次右擊工程,選擇Properties,打開上圖所示窗口,Build targets選擇Threads,單擊上圖中的Build Options按鈕,找到Make Commands選項,把$target都去掉:
肯定,完成操做。
十、試試可否編譯、運行和調試:
在工具欄選擇Target爲Threads,而後執行Build。能夠右擊工程選擇Build或者單擊工具欄中的Build圖標。這裏是Build成功的,下圖是運行截圖:
十一、調試。在Code Blocks中打開threads目錄下的main.cc,在main函數的開始處設置一個斷點,在菜單中依次選擇Debug——Run或者直接按F8,則調試開始。此時,能夠在菜單中依次選擇Debug——Debuging Windows,添加調試時能夠用到的窗口,如Watches能夠顯示變量值。
能夠按F7一步步執行。截圖以下:
十二、重複第八、9步,爲其餘幾個子目錄建立Target,並刪掉原來的Debug與Release,以下圖:
1三、關閉以前Code Block以前最好保存工程。右擊工程選擇Save project。