《作業系統真象還原》 1 5 執行bochs

2021-09-23 16:56:09 字數 2364 閱讀 2159

終於安裝完成了,雖然這過程中有可能會出現各種各樣的問題,但還是值得慶祝的,對linux不熟的朋友第一次就搞定了這麼個硬貨,我理解您此時的喜大普奔之情,哈哈,給大家點讚。順便說一句,其實平時我們的運維人員為開發環境付出了遠比這更多的努力,所有奮戰在一線的系統工程師和運維工程師,您們辛苦了。

不過好奇心讓我們按捺不住想一探bochs容貌,說實在的,我現在就想先執行一下看看,失敗又能怎樣,無非是報錯退出唄,又不會造成實質性的損失。我非常理解大家的心情,雖然現在還差點東西沒完成,但作為求知慾強的技術人必須得獲得理解和支援,那現在咱們先執行一下bochs試試,至少檢測下是不是安裝正確了,反正不會破壞咱們的電腦,缺什麼的時候咱們再建立也不遲。

怕被讀者埋怨我太囉嗦,趕緊在bochs安裝路徑下鍵入bin/bochs並趕緊按下了回車,執行效果如圖1-2所示。

看,bochs介面中給出的提示符預設選項是[2],read options from…,這是bochs要讀取選項的節奏啊,也就是說要讀取配置檔案,直接按回車鍵。執行結果如圖1-3所示。

我們鍵入的是上面長方形框框中的部分:bochsrc.disk。由於我們剛剛把此檔案放到了bochs的安裝路徑下,bochs找到了它並載入成功。緊接著下面給出的預設選項變成了[6],也就是begin simulation選項,開始模擬x86硬體平台。

再多說一句,bochs如果載入不到配置,它是不會向下執行的,所以在圖1-3中,白色方框中若不鍵入配置檔名而直接回車,還是會回到圖1-2所示的介面,必須給出配置讓bochs知道您想模擬的硬體是什麼才行。

繼續回車,馬上就有效果了,不過是報錯了,如圖1-4所示。

哎喲,不錯哦,果然沒白測試,報的這是個panic級別的錯誤,bios說:「沒有啟動裝置」。

缺什麼我們就建立什麼,提示沒有的這個「bootable device」就是啟動盤,現在就建立啟動盤吧。

bochs先生說:「作為乙個負責任的模擬器,既然幹的就是模擬硬體的工作,那就要把硬體都模擬全了」,所以bochs給咱們提供了建立虛擬硬碟的工具bin/bximage。我們先看下這個命令的幫助,如圖1-5所示。

-fd建立軟盤。

-hd建立硬碟。

-mode建立硬碟的型別,有flat、sparse、growing三種。

-size指建立多大的硬碟,以mb為單位。

-q以靜默模式建立,建立過程中不會和使用者互動。

按照上面的幫助,那咱們就開工啦,如圖1-6所示。

bin/bximage -hd -mode="flat" -size=60 -q hd60m.img

這個命令串中最後乙個hd60m.img是咱們建立的虛擬硬碟的名稱。

如果大家覺得以上鍵入命令繁瑣,不想用命令列的話,可以直接鍵入bin/bximage回車,後面的提示很清楚,很容易幫助大家建立硬碟。

硬碟建立好了,該如何安裝到虛擬機器中呢?

事不宜遲,趕緊更新bochsrc.disk,找到第33行注釋部分,將內容新增到35行,儲存,如圖1-7所示。

此刻的我已經迫不及待地想看看bochs現在的運**況,不過如果每次啟動bochs後都要通過read options from選項讀取配置檔案,這就太麻煩了,其實啟動bochs的時候,有個更簡便的方法,我們用-f來指定其配置檔案便可。

bin/bochs –f bochsrc.disk 回車,觀察效果,如圖1-8所示。

看上去和圖1-4報錯一樣,都是提示沒有啟動盤。這是怎麼回事呢?仔細看過之後,發現這裡的報錯和圖1-4還是有些不同的,雖然結果是一樣的錯誤,但原因是不同的。圖1-4中的報錯原因是boot failed: could not read the boot disk,這是無法讀取啟動盤。而現在這裡的報錯是boot failed: not a bootable disk,這不是乙個啟動盤。這兩個原因明顯不是一碼事,就像某件衣服穿著不合適一樣,原因是乙個人是太胖了,另乙個人是太瘦了。

《作業系統 真象還原》書評

首先我對這本書的評價是正面的,這是一本還算不錯的書。請以這個基調閱讀本文。我也從來沒寫過書評,只不過這本書實在是讓人忍不住要寫一下,因為各種各樣的原因。這本書大致就是在bochs虛擬機器上面,實現乙個簡單的作業系統,實現的內容包括 mbr,loader,記憶體管理,中斷管理,檔案管理,系統呼叫,多程...

作業系統真象還原 記憶體管理

翻來覆去看了好多遍的記憶體管理 還是沒有弄明白 先把想明白的記下來好了 首先 是開啟分頁管理 一共三步 1 準備好頁目錄表 頁表 2 將頁目錄表的實體地址寫入到cr3暫存器中 3 開啟cr0的31位 即pg位 先說說準備頁目錄表和頁表 頁目錄表被放在了低端1mb記憶體之內 具體位置是0x100000...

《作業系統真象還原》 閱讀筆記(上)

配置bochs,進入bochs simulator後一直是黑屏,原來預設是除錯模式,需要輸入c continue 來讓除錯繼續。主講mbr及進入mbr前的步驟 1.實模式只能訪問1mb的記憶體空間。2.bios在rom中。3.開機上電後cs ip指向記憶體0xfff0,這裡有個跳轉語句,轉到fe05...