mac bochs 调试linux,Mac OS X 中 Bochs的安裝及使用

最近在看操作系統及內核的一些內容,找到一本書寫自己的操作系統,順手練習,但是Mac10.10系統安不上Bochs啊,找了半天在StackFlow上找到了答案。Bochs的下載地址。

Mac10.10 Bochs的安裝

0x01 安裝SDL庫

在http://www.libsdl.org安裝,或者使用Homebrew來進行安裝。Homebrew的安裝命令brew

install sdl。

0x02 Configure Bochs

簡單的解壓命令tar -xvf bochs-2.6.tar.gz后,Configure需要的參數:

./configure --enable-ne2000 \

--enable-all-optimizations \

--enable-cpu-level=6 \

--enable-x86-64 \

--enable-vmx=2 \

--enable-pci \

--enable-usb \

--enable-usb-ohci \

--enable-e1000 \

--enable-debugger \

--enable-disasm \

--disable-debugger-gui \

--with-sdl \

--prefix=$HOME/opt/bochs

其中,--disable-debugger-gui被加入的原因是,debugger GUI需要使用GTK+庫,但是Mac OS X默認沒有安裝GTK+,所以就不啟用debugger GUI了。

0x03 Building and Installing Bochs

Configure好以后,常規的安裝。

make

make install

安裝完成后,可以加入環境變量一些內容

export BXSHARE="$HOME/opt/bochs/share/bochs"

export PATH="$PATH:$HOME/opt/bochs/bin"

Bochs的使用

因為在上面禁用了debuger GUI,所以使用bochs只能通過shell來進行了。使用《自己動手寫操作系統》筆記中生成的軟盤鏡像來做一個系統來啟動,它會產生一個輸出Hello,

OS World!。結果如下圖:

0b8df35393be1583c9ae2b19fff3c60b.jpe

在bochs的安裝目錄下,有share/doc/bochs/bochsrc-sample.txt這個配置文件模板,可以拷貝出來修改,目前先做一個配置文件如下:

###############################################################

# Configuration file for Bochs(Linux)

###############################################################

# filename of ROM images

romimage: file=$BXSHARE/BIOS-bochs-latest

# VGAROMIMAGE

# You now need to load a VGA ROM BIOS into C0000.

vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

# what disk images will be used

floppya: 1_44=YourIMGPath/TINIX.IMG, status=inserted

# choose the boot disk.

boot: floppy

# where do we send log messages?

log: bochsout.txt

# disable the mouse

mouse: enabled=0

# enable key mapping, using US layout as default. 注意map的路徑

keyboard_mapping: enabled=0, map=YourBochsPath/keymaps/x11-pc-us.map

# how much memory the emulated machine will have

megs: 32

在shell中運行bochs打開bochs

7c90af8926722f1b8af29d48389ba6f7.jpe

選擇2. Read options from...,然后輸入自己剛才配置文件的位置,如我的就是/Volumes/ExtendsDisk/tmp/bochsrc.txt,加載配置文件成功后,選擇6. Begin simulation開始模擬器,因為bochs是一個模擬器,並且會開始時下斷點,我們在6后需要再次輸入命令c,也就是continue來運行系統,如果正常,就會顯示上面那張HelloWorld的圖了。給出Bochs調試命令集合:

-*- Debugger control -*-

help, q|quit|exit, set, instrument, show, trace, trace-reg,

trace-mem, u|disasm, ldsym, slist

-*- Execution control -*-

c|cont|continue, s|step, p|n|next, modebp, vmexitbp

-*- Breakpoint management -*-

vb|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,

bpe, bpd, d|del|delete, watch, unwatch

-*- CPU and memory contents -*-

x, xp, setpmem, writemem, crc, info,

r|reg|regs|registers, fp|fpu, mmx, sse, sreg, dreg, creg,

page, set, ptime, print-stack, ?|calc

-*- Working with bochs param tree -*-

show "param", restore

Bochs 調試命令

參考文獻

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值