學(xué)習(xí)筆記
使用教材(配書源碼以及使用方法)
《一個(gè)64位操作系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)》
http://www.ituring.com.cn/book/2450
http://www.itdecent.cn/p/28f9713a9171
操作步驟
- 第一步,安裝各種必需的軟件工具,具體步驟見參考資料
- 第二步,見《一個(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/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
- 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架構(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
- 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ù)
- VMware Workstation 和 bochs 都是虛擬機(jī),都有創(chuàng)建軟盤功能,需要用VMware Workstation創(chuàng)建軟盤看這里:[Ubuntu]dd 命令,軟盤讀寫實(shí)例:二進(jìn)制文件.bin ->鏡像文件 .img -> 軟盤設(shè)備 /dev/fd0






