第二章 第一个小程序
第一部分 操作篇
第一个小程序运行起来没有书上说的那么顺利。几经周折才最终成功。问题出在
- Bochs安装
- Bochs运行时配置文件内容
环境:
ubuntu 10(运行于VMware下)
Bochs安装中的问题及解决方法
下载Bochs 2.4.5源码安装,但运行./configure --enable-debugger --enable-disasm时发现g++没有,运行
#sudo apt-get install g++
解决这个问题
但运行./configure又出现另一个错误:ERROR: X windows gui was selected, but X windows libraries were not found.
解决办法是安装 xorg-dev
#sudo aptitude install xorg-dev
Bochs运行时的问题
我的Bochs是使用make install默认安装的。运行时不能直接使用书中第二章光盘里的bochsrc文件启动。
原因是安装目录也差别,而且romimage和vagromimage选用需要变动一下(可能作者当时的版本比较老吧)
最终可以运行的Bochsrc文件内容为
###############################################################
# Configuration file for Bochs
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=a.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.
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map
需要注意的事项:
- 要在a.img所在的目录运行bochs,否则软件盘路径找不到(floppya: 1_44=a.img, status=inserted)(当然也可以把路径改成绝对路径)
如有问题可以自己参考Bochs的官网http://bochs.sourceforge.net/getcurrent.html
运行结果界面如
第二部分 操作改进
bochs也可以进行图形用户界面(GUI)地调试。要启动图形用户界面需要做两步工作
- 把图形用户界面调试功能编译进bochs里
- 在bochs启动配置文件里添加启动GUI的信息
编译
首先:
./configure /
--enable-debugger /
--enable-disasm /
--enable-debugger-gui /
然后: make
然后:make install
配置文件添加信息
在配置文件(比如bochsrc)里添加
display_library: x, options="gui_debug"
完成以上两步就会在启动虚拟机的时候启动GUI调试器。运行结果如下:
参考文献
[1]. Bochs安装一些错误的排除方法,http://hi.baidu.com/flikecn/blog/item/500f1efdbb133c0608244d3f.html
[2]. Bochs调试,http://linux.chinaunix.net/techdoc/develop/2008/09/01/1029237.shtml
[3]. Bochs调试官网文档,http://bochs.sourceforge.net/cgi-bin/topper.pl?name=New+Bochs+Documentation&url=http://bochs.sourceforge.net/doc/docbook/user/index.html