注:本筆記內容是跟隨“網易云課堂”--哈工大--李治軍老師的公開課學習的,感謝李老師百忙之中為廣大學子提供的優質教學資源。
主要平臺和工具簡介x86模擬器BochsBochs是一個免費且開放源代碼的IA-32(x86)架構PC機模擬器。在它模擬出的環境中可以運行linux、DOS和各種版本的Windows等多種操作系統。而Bochs本身具有很高的移植性,可以運行在多種軟硬件平臺之上,這也是我們選擇它做為本書的指定模擬器的主要原因。如果您想擁抱自由的Linux,那么Bochs幾乎是您的不二選擇。如果您想繼續把自己綁定在Windows平臺上,那么除了Bochs,您還可以選用VMware或者Microsoft Virtual PC。它們是最著名虛擬機軟件,而且都可以免費使用。因為Bochs的是模擬器,其原理決定了它的運行效率會低于虛擬機。但對于本書所設計的實驗來說,效率上的差別很不明顯。而且,Bochs有虛擬機無可比擬的調試操作系統的能力,所以我們更建議您選用Bochs。hit-oslab已經內置了bochs,本實驗后文假定的缺省環境也是Bochs。
關于Bochs的更詳細的介紹請訪問它的主頁及Bochs使用手冊。
GCC編譯器GCC是和Linux一起成長起來的編譯器。Linux最初的版本就是由GCC編譯的?,F在GCC也是在自由軟件領域應用最廣泛的編譯器。所以,我們也選擇GCC做為本書實驗的指定編譯器。
DB調試器GDB調試器是GCC編譯器的兄弟。做為自由軟件領域幾乎是唯一的調試器,它秉承了*nix類操作系統的一貫風格,采用純命令行操作,有點兒類似dos下的debug。關于它的使用方法請看GDB使用手冊。
Ubuntu (GNU/Linux)Ubuntu也許不是目前最好用的Linux桌面發行版,但它一定是最流行的。主要特點是易用,非常的易用。
現在,已經有越來越多的人開始用Ubuntu完全代替Windows,享受更加自由、安全、守法的感覺。Ubuntu的主頁是http://www.ubuntu.com/,這里不僅可以免費下載到iso文件,甚至能免費申領Ubuntu的安裝光盤。
我們強烈建議您在Ubuntu下做實驗。因為有些實驗內容涉及到在自己改進的Linux 0.11下,運行自己編的應用程序。被改進的功能都是高版本Linux內核已經具有的,在其上確認自己編寫的應用程序無誤后,再用之測試自己改進的Linux 0.11,可以更有信心些。
Linux 下的常用命令:
解壓縮:tar zxvf hit-oslab-linux-20110823.tar.gz
編譯: make all “all”是最常用的參數,所以可以省略
多處理器的系統上,可以用-j參數進行并行編譯,加快速度。例如雙CPU的系統可以:
$ make -j 2
linux-0.11目錄下是全部的源代碼,很多實驗內容都是要靠修改這些代碼來完成。修改后需要重新編譯內核,還是執行命令:
$ make all
make命令會自動跳過未被修改的文件,鏈接時直接使用上次編譯生成的目標文件,從而節約編譯時間。但如果重新編譯后,你的修改貌似沒有生效,可以試試 先“make clean”,再“make all”。“make clean”是刪除上一次編譯生成的所有中間文件和目標文件,確保是在全新的狀態下編譯整個工程。
新聞熱點
疑難解答