學習筆記
使用教材(配書源碼以及使用方法)
《一個64位操作系統的設計與實現》
http://www.ituring.com.cn/book/2450
http://www.lxweimin.com/p/28f9713a9171
操作步驟
- 第一步,安裝各種必需的軟件工具,具體步驟見參考資料
- 第二步,見《一個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/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
- 4、在
CentOS6
上安裝bochs
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 問題解決
- 7、
Centos
安裝gcc
及g++
安裝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
- 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的二進制代碼數據
- VMware Workstation 和 bochs 都是虛擬機,都有創建軟盤功能,需要用VMware Workstation創建軟盤看這里:[Ubuntu]dd 命令,軟盤讀寫實例:二進制文件.bin ->鏡像文件 .img -> 軟盤設備 /dev/fd0