http://bochs.sourceforge.net/ bochs官網。關於bochs再也不累述。linux
我是在UBUNTU下用包管理軟件apt-get裝的bochs.命令ubuntu
apt-get install bochsapp
這是一個沒有調試環境的安裝,先感覺一下小成功的滋味。。呵呵框架
這樣的安裝後,在命令行下執行$bochs會跳出一個配置界面,表懼怕,這說安裝成功啦。仔細閱讀他的提示會發現是沒有配置文件oop
(配置文件bochsrc,ROMIMAGE,VGAROMIMAGE。這些不解釋。本身查)。你能夠配置一個簡單的bochsrc。內容以下:網站
1###############################################################
2 # Configuration file for Bochs
3 ###############################################################
4
5 # how much memory the emulated machine will have
6 megs: 64
7
8 # filename of ROM images
9 romimage: file=/usr/share/bochs/BIOS-bochs-latest
10
11 # what disk images will be used
12 floppya: 1_44=a.img, status=inserted
13
14 # choose the boot disk.
15 boot: floppy
16
17 # where do we send log messages?
18 # log: bochsout.txt
19
20 # disable the mouse
21 mouse: enabled=0
22
23 # enable key mapping, using US layout as default.google
這個文件至少可使bochs能共運行嘿嘿,由於網上高手都是安裝後直接運行就行啦,但是小弟的就是沒有。出現各類錯誤,,多是你的bochs沒 找到配置文件,而你從網上覆制的是比較長,專業,可是有的文件可能版本不一樣,路徑不一樣,因此在啓動時就會出現找不到的錯誤,這是個最簡單的。不少都用的是 你安裝軟件的默認路徑。關於配置文件的書寫,最好的就是man bochsrc,標準教程.net
下面是一個啓動文件,是《linux內核徹底剖析)第三章的例子,很簡單的功能,命令行
*******************************************************************************************************************************************************debug
1!
2 !boot.s -- bootsect.s 的框架程序。用代碼0x07替換msag中1字符,而後在屏幕第一行上顯示
3 !
4
5 .globl begtext,begdata,begbss,endtext,enddata,endbss !全局標識符,供ld86連接使用
6 .text !正文段
7 begtext:
8 .data !數據段
9 begdata:
10 .bss !未初始化數據段
11 begbss:
12 .text !正文段開始
13 BOOTSEG = 0x7c0 !BIOS加載bootsect代碼的原始段地址。
14
15
16 entry start !告知連接程序,程序從strat標號處開始執行
17
18 start:
19 jmpi go,BOOTSEG !段間跳轉。BOOTSEG指出跳轉段的地址,標號go是偏移地址
20 go: mov ax,cs !段寄存器cs值-->ax,用於初始化數據段寄存器ds和es
21 mov ds,ax
22 mov es,ax
23 mov [msg1+17],ah !0x07-->替換字符串1個點符號,喇叭會鳴一聲
24 mov cx,#20 !共顯示20個字符,包括回車換行符
25 mov dx,#0x1004 !字符串顯示在屏幕第17行,第5列處
26 mov bx,#0x000c !字符顯示屬性(紅色)
27 mov bp,#msg1 !指向要調用的字符串(中斷調用要求)
28 mov ax,#0x1301 !寫字符串並移動光標到串結尾處
29 int 0x10 !BIOS中斷調用0x10,功能0x13,子功能01
30 loop0: jmp loop0 !死循環
31
32 msg1: .ascii "Loading system..." !調用BIOS中斷顯示的信息。共20個ASCII碼字符。
33 .byte 13,10
34
35
36 .org 510 !表示之後語句從地址510(0x1FE)開始存放
37 .word 0xAA55 !有效引導扇區標誌,供BIOS加載引導扇區使用。
38
39 .text
40 endtext:
41 .data
42 enddata:
43 .bss
44 endbss:
*************************************************************************************************************************************
編譯過程:
$as86 -0 -a -o boot.o boot.s
$ld86 -0 -s -o boort boot.o
$dd bs=32 if =boot of=a.img skip=1
這樣而後啓動bochs能夠看到屏幕上的「loading system"
程序的解釋及編譯過程下篇文章
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
上面是簡單的bochs安裝與實驗,安裝成功很簡單,可是不會帶調試,要帶調試要原碼編譯:
原本也不是多複雜
安裝bochs:
而後到bochs官方網站下載源碼包 bochs-2.4.6.tar.gz
解壓此文件:
tar vxzf bochs-2.4.26tar.gz
cd bochs-2.4.2
./configure --enable-debugger --enable-disasm
make
sudo make install
但是ubuntu少裝的東西真是很多(至少個人是)
sudo apt-get bulid-essional (若是之前安裝過就免了)
sudo apt-get install xorg-dev
可是裝着兩個估計你看到的指望的場面的概率很小
個人還有一個gtk沒有裝等等。。。。
出現的調試錯誤直接把錯誤信息甩到google上。會找到答案。
望兄弟們一遍成功