《操作系統真象還原》讀書筆記 第1章

0x1 工作環境部署

0x1.1開發操作系統的環境及工具

1)gcc編譯器
2)彙編語言編譯器nasm
3)VMware workstation Pro v15.1.0 build-13591040
4)Ubuntu 14.04 LTS
5)bochs v2.6.9
爲了方便起見,我是用的是WMare+Ubuntu進行開發(純屬個人習慣),具體安裝Ubuntu的步驟我就不在這裏細說了,大家百度一下網上都有。

0x1.2 bochs的安裝

首先給出bochs的官方地址:bochs官網,官方軟件免費開源不用去其他地方下載。
作者安裝的bochs v2.6.2版本比較老,bochs很多配置格式在最新版中發生了變化(真坑)。以下是我總結的安裝最新bochs及配置的詳細步驟:
1)在虛擬機中輸入安裝網址
在這裏插入圖片描述
2)選擇最新下載鏈接
在這裏插入圖片描述
3)根據操作系統位數和類型選擇安裝文件
在這裏插入圖片描述
4)下載好了先別急着安裝,先對bochs所需的依賴進行檢查配置。
首先更新下軟件源sudo apt-get update保證軟件列表是最新的(當然也得保證源是最新可用的)
在這裏插入圖片描述
更新後安裝bochs軟件依賴,注意如果不安裝這些依賴會給你報一大堆噁心的錯誤,而且不糊給你再次安裝的機會,建議大家安裝前先做個虛擬機備份。

apt-get install build-essential
apt-get install xorg-dev
sudo apt-get install libx11-dev
apt-get install libgtk2.0-dev
apt-get install bison
apt-get install g++

5)進入到下載bochs源碼的文件夾對源碼進行編譯三步曲
解壓縮下載好的源碼壓縮文件

tar zxvf bochs-2.6.9.tar.gz

進入解壓後的bochs文件目錄內,並按照作者給出的配置進行設置

./configure --prefix=/root/Downloads/bochs --enable-debugger --enable-disasm --enable-iodebug --with-x --with-x11

配置後若沒有問題就可以開始編譯了

make

如果編譯沒有報錯執行make install會發現在你設置的目錄下創建了bochs文件目錄
在這裏插入圖片描述
安裝完成後在安裝目錄下輸入./bochs查看是否安裝成功
在這裏插入圖片描述

0x1.3 配置bochs

安裝好bochs虛擬機後,我們需要通過修改配置文件來告知bochs,在運行時需要從哪些虛擬硬件設備中讀取信息,是軟盤、USB還是硬盤。目的是爲了模仿BIOS的工作原理。
打開安裝目錄下有樣本文件:share/doc/bochs/bochsrc-sample.txt可以從該文件中查看啓動順序。
在這裏插入圖片描述
接下來就是創建啓動配置文件,作者給該配置文件起名爲bochsrc.disk。bochs默認會尋找bochsrc文件作爲啓動配置文件,可能作者這樣起名可能是爲了避免bochs默認加載配置文件。我這裏按照作者給的名字創建配置文件。

gedit bochsrc.disk(我默認是root權限,如果不可讀寫在指令前添加sudo)

在該文件中添加以下內容,參考https://blog.csdn.net/the_chosen_1/article/details/88918766
進行配置。

 #注意'#'後面爲注註釋內容

#模擬器的內存 
megs:32

#這個是BIOS-bochs-latest的路徑
romimage:file=/root/Downloads/bochs/share/bochs/BIOS-bochs-latest

#這個是VGABIOS-lgpl-latest的路徑
vgaromimage:file=/root/Downloads/bochs/share/bochs/VGABIOS-lgpl-latest 

#這個是啓動軟盤,就是我們下載的那個,就在當前目錄下,如果不在當前目錄,需要指明路徑 
#floppya:1_44=bootroot-0.11,status=inserted



#表示從軟盤啓動
#boot:floppy 
#作者是從硬盤啓動的,這裏我們按照書上配置
boot:disk
#日誌輸出文件
log:bochsout.out

#開啓鼠標和鍵盤的設置
mouse:enabled=0	#這裏先禁用了鼠標因爲是字符顯示界面
#type 鍵盤類型
#keymap 鍵盤映射文件
#這裏和原書的鍵盤映射不同,是新版的特性
keyboard: type=mf,keymap=/root/Downloads/bochs/share/bochs/keymaps/x11-pc-us.map


#硬盤設置
ata0: enabled=1,ioaddr1=0x1f0,ioaddr2=0x3f0,irq=14
ata0-master: type=disk, path="hd60M.img", mode=flat#根據創建磁盤後的提示信息決定
#暫時不需要遠程調試

#選項還有很多,想了解更多可以參照原始的.bochsrc文件(在bochs-2.6.9/目錄下)

對應的文件映射,我給出了圖形化界面參考
在這裏插入圖片描述在這裏插入圖片描述
設置好配置文件後我們可以先測試下bochs是否可以正常運行,然後按照配置文件的設置創建一個虛擬引導硬盤。
首先徵在安裝目錄下輸入bin/bochs會出現下圖結果
在這裏插入圖片描述
可以從提示信息得知,bochs已經正常啓動了,但是他還沒有讀取配置文件信息,希望用戶選擇2選項,獲取一個配置文件信息bochs就可以開始運行啦!
我們按回車,bochs會提示用戶輸入要讀取配置文件名。輸入我們剛創建的bochsrc.disk
在這裏插入圖片描述
讀取成功會顯示以下提示符,默認選項變爲了[6],也就是Begin simulation選項,開始模擬x86硬件平臺。
在這裏插入圖片描述
接下來繼續回車的話就會出現黑屏彈框。
在這裏插入圖片描述
在Bochs中輸入c然後回車會出現一個錯誤提示框,因爲我們還沒創建引導用的硬盤。
在這裏插入圖片描述
bochs中自帶了一個可以用於創建虛擬硬盤的工具bximage,這個工具使用又和書上的2.6.2版本不同。可以直接運行,根據內置的字符提示進行硬盤創建操作。
在這裏插入圖片描述
我們配置文件中設置的引導介質是硬盤,所以我們選擇[1]創建一個硬盤。創建成功後bochs要求我們將配置信息修改爲ata0-master: type=disk, path="hd60M.img", mode=flat直接將這段配置信息拷貝到之前設置的配置文件中即可。
在這裏插入圖片描述
創建成功後發現目錄下增加了映像文件
在這裏插入圖片描述
接下來重新運行bochs,發現再次報錯。但是報錯結果與上次有細微差別
在這裏插入圖片描述
上次報錯是boot failed:Could not read the boot disk而這次報錯提示是boot failed:No bootable device。因爲我們沒有在虛擬硬盤中添加任何引導指令。

發佈了16 篇原創文章 · 獲贊 1 · 訪問量 1106
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章