作業系統---學習筆記0,作業系統---學習筆記
註:本筆記內容是跟隨“網易雲課堂”--哈工大--李治軍老師的公開課學習的,感謝李老師百忙之中為廣大學子提供的優質教學資源。
主要平台和工具簡介x86模擬器Bochs
Bochs是一個免費且開放原始碼的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編譯的。現在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”是刪除上一次編譯產生的所有中間檔案和目標檔案,確保是在全新的狀態下編譯整個工程。