[OS64位][001]Boot:使用bochs制作虛擬軟盤鏡像boot.img、啟動(dòng)并運(yùn)行boot程序

學(xué)習(xí)筆記

使用教材(配書源碼以及使用方法)
《一個(gè)64位操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》
http://www.ituring.com.cn/book/2450
http://www.itdecent.cn/p/28f9713a9171


操作步驟

  • 第一步,安裝各種必需的軟件工具,具體步驟見參考資料

http://www.ituring.com.cn/book/tupubarticle/26323

  • 第二步,見《一個(gè)64位操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》“第二部分 初級(jí)篇 第3章 BootLoader引導(dǎo)啟動(dòng)程序”

以下為第二步的實(shí)驗(yàn)記錄

使用 bochs 虛擬機(jī) 創(chuàng)建 虛擬軟盤 boot.img

  • 啟動(dòng)虛擬磁盤鏡像制作工具
    [anno@localhost ~]$ bximage
  • 繼續(xù)依次輸入
    1 fd 1.44M boot.img
  • 創(chuàng)建軟盤成功示意圖
    使用bochs虛擬機(jī)創(chuàng)建虛擬軟盤boot.img

匯編源碼 boot.asm

http://www.ituring.com.cn/book/2450
隨書下載-源代碼

隨書下載-源代碼-第二部分-第三章-程序3-1

  • 編譯匯編源碼
    [anno@localhost ~]$ nasm boot.asm -o boot.bin(小寫字母o

  • 生成.lst文件(幫助閱讀源碼、機(jī)器碼,相當(dāng)有用?。?br> [anno@localhost Desktop]$ nasm boot.asm -o boot.bin -l boot.lst

  • boot.bin寫入上面創(chuàng)建的虛擬軟盤鏡像boot.img
    [anno@localhost Desktop]$ dd if=boot.bin of=boot.img bs=512 count=1 conv=notrunc

[anno@localhost Desktop]$ ls
bochsrc  boot.asm  boot.bin  boot.img  gnome-terminal.desktop

bochs配置文件 bochsrc

配置文件在線閱讀
http://www.ituring.com.cn/book/tupubarticle/21474

http://www.ituring.com.cn/book/2450
隨書下載-源代碼

bochs配置文件 bochsrc

  • 首先,建議直接去用隨書下載的源代碼包里的配置文件(這是絕對(duì)正確無誤的),在線閱讀那里的配置文件因?yàn)橐恍Q行把標(biāo)識(shí)符給生生隔斷了,比如cpuid字段里有一個(gè)標(biāo)識(shí)符叫做1g_pages=1,如果在線復(fù)制,就會(huì)復(fù)制成1 g_pages=1,這樣一來后面載入配置文件就會(huì)出錯(cuò)了,這其實(shí)就是由于換行引起的;

  • 其次,配置文件里面有一句floppya: type=1_44, 1_44="boot.img",應(yīng)該是說配置文件boot.img(軟盤鏡像文件)要處在同一個(gè)目錄下,為了方便,我就把這兩個(gè)東西同時(shí)放在了桌面上;

測(cè)試運(yùn)行

  • 啟動(dòng) bochs:打開命令行輸入
    [anno@localhost Desktop]$ bochs -f ./bochsrc

    我的配置文件和鏡像文件boot.img現(xiàn)在都放在桌面

  • 繼續(xù)依次輸入:6 c
    (6是選擇啟動(dòng)虛擬機(jī),c是繼續(xù)執(zhí)行,回車確認(rèn),都是在命令行里面輸入,黑色那個(gè)框是輸出結(jié)果)

    出現(xiàn)字符start Boot表示運(yùn)行成功


參考資料

代碼比較工具

Beyond Compare

開發(fā)環(huán)境

  • 1、安裝 VMware Workstation虛擬機(jī)軟件

VMware Workstation 的安裝和使用
https://blog.csdn.net/lamp_yang_3533/article/details/53136474

  • 2、下載 CentOS6 發(fā)行版

VMware Workstation中安裝linux系統(tǒng)(CentOS)超詳細(xì)
https://blog.csdn.net/u010996565/article/details/79048104

鏡像文件下載 CentOS-6.10-x86_64-bin-DVD1.iso
http://isoredirect.centos.org/centos/6/isos/x86_64/

  • 3、 在VMware Workstation安裝 CentOS6
    在VMware Workstation安裝 CentOS6
需要在BOIS里面開啟VT
  • 4、在 CentOS6 上安裝bochs

https://www.linuxidc.com/Linux/2012-12/76952.htm

0) 編譯之前先安裝如下的庫: gtk2,libXt,libXpm
sudo yum install gtk2 gtk2-devel
sudo yum install libXt libXt-devel
sudo yum install libXpm libXpm-devel

1)然后編譯安裝:
tar xzvf bochs-2.3.7.tar.gz
cd bochs-2.3.7
./configure --enable-debugger --enable-disasm
make
sudo make install
  • 5、安裝bochs

https://sourceforge.net/projects/bochs/files/bochs/

安裝bochs

  • 6、安裝VMware Workstation tools: is not in the sudoers file 問題解決

https://blog.csdn.net/zhuqinglu/article/details/2050927

  • 7、 Centos安裝gccg++

https://www.cnblogs.com/Anker/p/3203402.html

安裝gcc:yum install gcc 
安裝g++:yum install gcc-c++
  • 8、配置 bochs文件

linux上配置bochs,搭建基于X86架構(gòu)操作系統(tǒng)的開發(fā)環(huán)境
https://www.cnblogs.com/lmstack/p/8159128.html

bochs配置文件 .bochsrc
http://www.ituring.com.cn/book/tupubarticle/21474

  • 9、bochs各種目錄

https://www.cnblogs.com/kuainiao/archive/2012/12/20/2825981.html

  • 10、啟動(dòng)bochs

Ubuntu 14.04 LTS 安裝和配置Bochs
https://www.linuxidc.com/Linux/2016-10/135905.htm

  • 11、制作軟盤

linux上配置bochs,搭建基于X86架構(gòu)操作系統(tǒng)的開發(fā)環(huán)境
https://www.cnblogs.com/lmstack/p/8159128.html

  • 12、啟動(dòng)bochs時(shí)報(bào)錯(cuò)No bootable device

https://blog.csdn.net/hushengshan/article/details/7937016

  • 13、安裝 NASM 匯編編譯器

https://centos.pkgs.org/6/centos-x86_64/nasm-2.07-7.el6.x86_64.rpm.html

bochs 調(diào)試命令

  • [067][x86匯編語言]Bochs調(diào)試命令整理

之前在win平臺(tái)下使用bochs的經(jīng)驗(yàn),除了安裝和設(shè)置配置文件不同,打開了bochs之后都是一樣的,可以參考一下
http://www.itdecent.cn/p/c98c113772db

  • [Linux]編譯一個(gè)C程序:./configure 、 make、 sudo make install

我這次安裝bochs的方法是: 先下載源碼包,然后自己編譯make,自己install make http://www.itdecent.cn/p/74d92309a751

值得一提的是./configure 這個(gè)步驟要去 圖靈社區(qū) 在線閱讀那個(gè)網(wǎng)址復(fù)制一下大量參數(shù)太多了
http://www.ituring.com.cn/book/tupubarticle/21474

  • [Linux]dd 讀寫軟盤:在軟盤主引導(dǎo)扇區(qū)寫入顯示hello world的二進(jìn)制代碼數(shù)據(jù)

http://www.itdecent.cn/p/207aaf0f986b

  • VMware Workstation 和 bochs 都是虛擬機(jī),都有創(chuàng)建軟盤功能,需要用VMware Workstation創(chuàng)建軟盤看這里:[Ubuntu]dd 命令,軟盤讀寫實(shí)例:二進(jìn)制文件.bin ->鏡像文件 .img -> 軟盤設(shè)備 /dev/fd0

http://www.itdecent.cn/p/ab11cb269634

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容