《作業系統真象還原》閱讀筆記 第1章

2021-10-02 10:00:11 字數 2738 閱讀 4021

安裝一系列的包。

首先,linux 系統需要安裝了x window系統才能使用bochs。

因bochs是由c++寫的,需先安裝gnu gcc/g++編譯器。

安裝命令如下:

sudo apt-get install build-essential 

sudo apt-get install xorg-dev

sudo apt-get install bison

sudo apt-get install libgtk2.

0-dev

sudo apt-get install g++

解壓壓縮包

tar zxvf bochs-2.6.9.tar.gz

編譯在 bochs-2.6.9 目錄下,開始configure、make、make install三部曲。

.

/configure \

--prefix=

/root/bochs \

--enable-debugger \

--enable-disasm \

--enable-iodebug \

--with-x \

--with-x11

make
若編譯時沒有問題,就直接執行:

make install
為了模擬計算機,需要寫乙個配置檔案,bochs啟動時會找到此檔案,根據檔案內容建立自己。

在安裝目錄下有樣本檔案:share/doc/bochs/bochsrc-sample.txt。摘取重點內容,關於啟動順序,可參見該檔案的以下幾行:

配置檔案bochsrc.disk放在 bochs 的安裝目錄下。(bochs配置檔案位置不固定,名字也不要求固定),加disk是作者為了表示此配置檔案的內容是從硬碟啟動。

# configuration file for bochs

# 第1步,設定bochs在執行中能夠使用的記憶體,32mb

megs :

32# 第2步,設定對應真實機的bios和vga bios。

romimage: file=

/root/bochs/share/bochs/bios-bochs-latest

vgaromimage: file=

/root/bochs/share/bochs/vgabios-lgpl-latest

# 第3步,設定bochs所使用的磁碟

# 若只有乙個軟盤,則使用floppya即可;多個則使用floppya,floppyb...

#floppya: 1_44=a.img, status=inserted

# 第4步, 選擇啟動碟符

#boot: floppy #預設從軟盤啟動,將其注釋

boot: disk #改為從硬碟啟動。**寫在硬碟上,不會有讀寫軟盤的操作。

# 第5步,設定日誌檔案的輸出

log: bochs.out

# 第6步,開啟或關閉某些功能

# 關閉滑鼠,開啟鍵盤

mouse: enable=

0keyboard: type=mf, keymap=

/root/bochs/share/bochs/keymaps/x11-pc-us.map

# 硬體設定

ata0: enable=

1, ioaddr1=

0x1f0

, ioaddr2=

0x3f0

, irq=

14

在安裝目錄下執行bin/bochs命令:

預設提示符,準備讀取選項,也就是配置檔案,直接按回車。

載入成功後給出缺省選項 begin simulation,繼續回車後,c命令執行。

輸出如下提示「no bootable device」,原因是沒有建立啟動盤。

bochs 提供了建立虛擬硬碟的工具 bin/bximage。

直接輸入bin/bximage命令根據提示進行建立。

建立好後,根據下圖中提示,把紅色框中的配置資訊新增更新到我們之前的 bochsrc.disk 中

可以指定配置檔案,使用bin/bochs -f bochsrc.disk命令,回車:

還是報錯提示「no bootable device」,但與之前原因不同:『boot failed: not a bootable disk」。具體原因下章再講。

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

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

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

作業系統是由中斷驅動的。中斷分為外部中斷和內部中斷。外部中斷分為可遮蔽中斷和不可遮蔽中斷,內部中斷分為軟中斷和異常。外部中斷 來自cpu外部的中斷。可遮蔽中斷 通過intr引腳進入cpu,外部裝置如硬碟 網絡卡 印表機等發出的中斷 cpu可以不理會,因為不會宕機。linux把中斷分為上半部和下半部分...

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

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