[OS64位][001]Boot:使用bochs制作虛擬軟盤鏡像boot.img、啟動并運行boot程序

學習筆記

使用教材(配書源碼以及使用方法)
《一個64位操作系統的設計與實現》
http://www.ituring.com.cn/book/2450
http://www.lxweimin.com/p/28f9713a9171


操作步驟

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

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

  • 第二步,見《一個64位操作系統的設計與實現》“第二部分 初級篇 第3章 BootLoader引導啟動程序”

以下為第二步的實驗記錄

使用 bochs 虛擬機 創建 虛擬軟盤 boot.img

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

匯編源碼 boot.asm

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

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

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

  • 生成.lst文件(幫助閱讀源碼、機器碼,相當有用!)
    [anno@localhost Desktop]$ nasm boot.asm -o boot.bin -l boot.lst

  • boot.bin寫入上面創建的虛擬軟盤鏡像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

  • 首先,建議直接去用隨書下載的源代碼包里的配置文件(這是絕對正確無誤的),在線閱讀那里的配置文件因為一些換行把標識符給生生隔斷了,比如cpuid字段里有一個標識符叫做1g_pages=1,如果在線復制,就會復制成1 g_pages=1,這樣一來后面載入配置文件就會出錯了,這其實就是由于換行引起的;

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

測試運行

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

    我的配置文件和鏡像文件boot.img現在都放在桌面

  • 繼續依次輸入:6 c
    (6是選擇啟動虛擬機,c是繼續執行,回車確認,都是在命令行里面輸入,黑色那個框是輸出結果)

    出現字符start Boot表示運行成功


參考資料

代碼比較工具

Beyond Compare

開發環境

  • 1、安裝 VMware Workstation虛擬機軟件

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

  • 2、下載 CentOS6 發行版

VMware Workstation中安裝linux系統(CentOS)超詳細
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架構操作系統的開發環境
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、啟動bochs

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

  • 11、制作軟盤

linux上配置bochs,搭建基于X86架構操作系統的開發環境
https://www.cnblogs.com/lmstack/p/8159128.html

  • 12、啟動bochs時報錯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 調試命令

  • [067][x86匯編語言]Bochs調試命令整理

之前在win平臺下使用bochs的經驗,除了安裝和設置配置文件不同,打開了bochs之后都是一樣的,可以參考一下
http://www.lxweimin.com/p/c98c113772db

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

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

值得一提的是./configure 這個步驟要去 圖靈社區 在線閱讀那個網址復制一下大量參數太多了
http://www.ituring.com.cn/book/tupubarticle/21474

  • [Linux]dd 讀寫軟盤:在軟盤主引導扇區寫入顯示hello world的二進制代碼數據

http://www.lxweimin.com/p/207aaf0f986b

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

http://www.lxweimin.com/p/ab11cb269634

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容