1)概述:bochs是模拟x86环境的开源项目,能够模拟x86cpu的所有指令,以及大部分设备,并且具有完善的
调试功能,因此非常适合操作系统内核的调试开发。
bochs主页地址:http://bochs.sourceforge.net/。
本文主要描述在xubuntu7.10下安装bochs2.3.5时遇到的一些问题和解决方法,以及基本使用方法。
2)步骤:
a,首先到bochs主页下载一个版本。最新的发布版本是2.3.5,下载包包括window环境、
unix/linux和macos环境下已经编译好的大包,以及平台独立的源码包。已编译大包的安装很容易,这里不
描述,下面主要描述平台独立的源码在linux(xubuntu)下的安装和使用过程。
b,下载完源码后解压缩:tar zxvf bochs-2.3.5.tar.gz,进入解压后的源码目录进行
configure。configure时加上debug选项:--enable-debugger --enable-disasm,make
出来的bochs就具有了debug的功能(相当于windows下的bochsdbg程序)。configure后生成
Makefile,执行make就开始编译生成可执行文件,如果顺利(一般不会那么顺利,这也是很多人更愿意使用
windows的原因)就可以执行make install,记得使用sudo make install否则没有创建目录的权限。
到此,bochs就安装到你的系统了,执行文件在/usr/local/bin中,另一些bios程序在
/usr/local/share中。如果上面三步都没有出错,在shell下键入bochs就可以启动bochs。
3)问题及解决方法:
正如通常会遇到的情况一样,2)b中描述的3步都不会那么顺利configure时会出现库缺失等错误、
make时会出现编译错误、make install时经常遇到权限问题以及安装文件找不到等情况。虽然如此,但是请
保持冷静(don't panic, every problem has a solution)。对于大多数问题,只要我们冷静的
思考,分析一下错误信息基本上能解决。
在xubuntu7.10中,./configure时遇到的问题可能会有:g++没有安装,x lib找不到等等,
因此在configure前最好使用sudo apt-get buil-dep bochs检查一下bochs的依赖关系,这条命令应该
会解决大部分依赖包的问题,但是即使下载了一堆东西还是可能出现找不到xlib库的错误,这时再安装几个
xorg的开发包就能解决问题:sudo aptitude install xorg-dev和sudo aptitude install
xserver-xorg-dev及 sudo aptitude-install libx11-dev。安装完这些包configure应该就
没有问题了。configure具体命令:./configure --enable-debugger --enable-disasm (这两个
用于调试)
--enable-ne2000(网卡) --enable-vbe(Vga显示)这两个不必要,--with-svga这个选项镇用:
如果打开这个选项编译出来的bochs在启动后会进入全屏,不知如何退出只有断电重启(见笑了),
--enable-gdb-stub和--enable-debugger是互斥的,开启gdb-stub后可以使用gdb连接bochs从而
在gdb中远程调试bochs中的操作系统。
configure成功后基本上make不会有问题,但是如果在configure时选了太多的选项则可能会出现
编译问题,因此建议如无必要,不要开太多选项。
make成功后就可以make install了。使用sudo make install,期间会出现bochsdbg
install出错的情况,不用管它bochsdbg是windows用的,可能make install的规则有点问题。
到这一步bochs就可以使用了。
4)使用初步:
bochs的使用基本概念:bochs-》读.bxrc配置文件,该文件用于描述被模拟的机器的参数
-》调用bios程序-》读操作系统boot程序,进行系统自举。
对于debug版的bochs在加电启动cpu执行到bios程序起始地址后就会停住,这时你就可以打断点,
进行系统内核调试了。
如果bochs不能正常启动,问题多半在配置文件.bxrc中。如果程序在bios时出错则可能是配置的
bios地址不对,bios起始地址是0xf0000或0xe0000,这主要取决于bios的大小(这部分我也还不很清楚)。
5)在bochs中调试linux0。11内核:
linux0。11内核下载地址:www.oldlinux.org。解压后修改.bxrc中的bios地址为:
0xe0000。在shell中键入bochs -f bochsrc-hd.bxrc就可以进入linux内核启动全过程。
bochs具体调试命令参见user guide。
调试功能,因此非常适合操作系统内核的调试开发。
bochs主页地址:http://bochs.sourceforge.net/。
本文主要描述在xubuntu7.10下安装bochs2.3.5时遇到的一些问题和解决方法,以及基本使用方法。
2)步骤:
a,首先到bochs主页下载一个版本。最新的发布版本是2.3.5,下载包包括window环境、
unix/linux和macos环境下已经编译好的大包,以及平台独立的源码包。已编译大包的安装很容易,这里不
描述,下面主要描述平台独立的源码在linux(xubuntu)下的安装和使用过程。
b,下载完源码后解压缩:tar zxvf bochs-2.3.5.tar.gz,进入解压后的源码目录进行
configure。configure时加上debug选项:--enable-debugger --enable-disasm,make
出来的bochs就具有了debug的功能(相当于windows下的bochsdbg程序)。configure后生成
Makefile,执行make就开始编译生成可执行文件,如果顺利(一般不会那么顺利,这也是很多人更愿意使用
windows的原因)就可以执行make install,记得使用sudo make install否则没有创建目录的权限。
到此,bochs就安装到你的系统了,执行文件在/usr/local/bin中,另一些bios程序在
/usr/local/share中。如果上面三步都没有出错,在shell下键入bochs就可以启动bochs。
3)问题及解决方法:
正如通常会遇到的情况一样,2)b中描述的3步都不会那么顺利configure时会出现库缺失等错误、
make时会出现编译错误、make install时经常遇到权限问题以及安装文件找不到等情况。虽然如此,但是请
保持冷静(don't panic, every problem has a solution)。对于大多数问题,只要我们冷静的
思考,分析一下错误信息基本上能解决。
在xubuntu7.10中,./configure时遇到的问题可能会有:g++没有安装,x lib找不到等等,
因此在configure前最好使用sudo apt-get buil-dep bochs检查一下bochs的依赖关系,这条命令应该
会解决大部分依赖包的问题,但是即使下载了一堆东西还是可能出现找不到xlib库的错误,这时再安装几个
xorg的开发包就能解决问题:sudo aptitude install xorg-dev和sudo aptitude install
xserver-xorg-dev及 sudo aptitude-install libx11-dev。安装完这些包configure应该就
没有问题了。configure具体命令:./configure --enable-debugger --enable-disasm (这两个
用于调试)
--enable-ne2000(网卡) --enable-vbe(Vga显示)这两个不必要,--with-svga这个选项镇用:
如果打开这个选项编译出来的bochs在启动后会进入全屏,不知如何退出只有断电重启(见笑了),
--enable-gdb-stub和--enable-debugger是互斥的,开启gdb-stub后可以使用gdb连接bochs从而
在gdb中远程调试bochs中的操作系统。
configure成功后基本上make不会有问题,但是如果在configure时选了太多的选项则可能会出现
编译问题,因此建议如无必要,不要开太多选项。
make成功后就可以make install了。使用sudo make install,期间会出现bochsdbg
install出错的情况,不用管它bochsdbg是windows用的,可能make install的规则有点问题。
到这一步bochs就可以使用了。
4)使用初步:
bochs的使用基本概念:bochs-》读.bxrc配置文件,该文件用于描述被模拟的机器的参数
-》调用bios程序-》读操作系统boot程序,进行系统自举。
对于debug版的bochs在加电启动cpu执行到bios程序起始地址后就会停住,这时你就可以打断点,
进行系统内核调试了。
如果bochs不能正常启动,问题多半在配置文件.bxrc中。如果程序在bios时出错则可能是配置的
bios地址不对,bios起始地址是0xf0000或0xe0000,这主要取决于bios的大小(这部分我也还不很清楚)。
5)在bochs中调试linux0。11内核:
linux0。11内核下载地址:www.oldlinux.org。解压后修改.bxrc中的bios地址为:
0xe0000。在shell中键入bochs -f bochsrc-hd.bxrc就可以进入linux内核启动全过程。
bochs具体调试命令参见user guide。
浙公网安备 33010602011771号