Bochs下载安装
在完成了linux发行版的安装后,现在到了安装bochs的环节,这是我们的操作系统最终的宿主机。
由于我的工作是运维,所以练就了任何软件包都要从源码安装的“陋习”,从来不信任任何软件包。因为只有从源码安装的版本才会在其配置和编译过程中根据所在的平台的特性去优化,这些是其它形式的软件包不可比拟的。举个例子,将别人的windows系统直接ghost到自己的机器上和从光盘安装windows比,哪个装的windows系统用的更稳定,哪个安装方法能让windows坚持到半年才重装一次……我不能再说了,我做为linux粉丝的事实已表露无遗。虽然我个人偏爱linux,但绝对不能否认,是windows把我带入计算机世界的,既然有母校一说,它就相当于是我的母操作系统…没有人呕吐吧?抱歉我没有考虑您的感受^_^。这个世界若没有windows将暗淡70%的光芒。其实原先我写的是90%,我怕有人问我这个数是怎么来的,其实这是我一拍脑门随口说出来的,所以我稳妥起见,改为了70%,总之不能无视windows的伟大功绩,从这么谨慎的一点大家可以看出,我是个公正的人…哈哈,不要打扰鄙视我的同学,咱们继续。
bochs的安装相对要麻烦一些,不光是装上去就行了,还需要配置一下。废话不多说,安装走起。
等等,出大事了,软件包得传到虚拟机上才能安装到虚拟机里,如何传上去呢。下面建议3个方案:
- 1.给虚拟机装个ftp,通过ftp上传。
- 2.让虚拟机连网,直接下载。
- 3.虚拟机支持usb,通过u盘上传软件包。
第1个方案需要配置下ftp服务器,我用的是proftpd,相对来说有点麻烦,也是需要单独配置的。而且默认linux的iptables会有一些规则,需要手动将其关闭。
第2个方案较简单,在您的宿主系统可以连网的情况下,需要您自己配置一下virtualBox的网卡,将网卡部分改为NAT可以通过宿主系统连网,将网卡改为桥接可以直接连网。由于大家的版本不统一,虽然不知道界面是否接近,但菜单名称总该是一样的。我用的是mac版virtualBox,给大家截个图看看。见图1-1。
图1-1 virtual box
将网卡模式改为NAT后,虚拟机就可以连网了。
第3个方式最方便了,大家自己试下吧。
好了,下面就假设大家能够把安装包上传到虚拟机中,安装走起。
- 1.下载bochs
官方地址是http://sourceforge.net/projects/bochs/files/bochs/,我安装的版本是2.6.2,下载后的文件是bochs-2.6.2.tar.gz。
- 2.解压压缩包 tar zxvf bochs-2.6.2.tar.gz
- 3.编译
先进入到目录cd bochs-2.6.2,开始configure、make、make install三步曲:
./configure
--prefix=/your_path/bochs
--enable-debugger
--enable-disasm
--enable-iodebug
--enable-x86-debugger
--with-x
--with-x11
注意各行结尾的’’字符前面有个空格。下面简要说明一下configure的参数:
--prefix=/your_path/bochs是用来指定bochs的安装目录,根据个人实际情况将your_path替换为自己待安装的路径。
--enable-debugger 打开bochs自己的调试器
--enable-disasm使bochs支持反汇编
--enable-iodebug 启用io接口调试器
--enable-x86-debugger 支持x86调试器
--with-x 使用x windows
--with-x11 使用x11图形用户接口
上面的编译参数是不支持gdb远程调试的,如果想用gdb调试,就要将参数--enable-debugger替换为--enable-gdb-stub。
--enable-gdb-stub是用来打开对gdb的支持,这样我们就可以用gdb来远程调试了。
不过,需要注意的是,不能同时打开这两个开关,否则bochs会报错:configure: error: --enable-debugger and --enable-gdb-stub are mutually exclusive。
也就是说,bochs本身是支持调试的,要么用本身的调试功能,要么用gdb的调试功能,鱼和熊掌在一台模拟器上不可兼得。我说的是一台模拟器上不可兼得,所以,如果您愿意的话,可以用这两个参数各编译一版,只要--prefix指向不同的路径就行了,想用哪个就启用哪个。
不过我在开发过程中,只用过不超过5次的gdb调试,还是习惯bochs自己的调试功能,个人觉得它更强大,调试粒度更细微,反而更灵活。个人建议,直接用给出的configure参数就行,不要打开--enable-gdb-stub。
configure之后,会生成Makefile,可以开始编译了。
make
若编译时没有问题,就直接执行下面这句:
make install
完成安装
补充一下,我在编译用bochs自己调试功能的版本时(用--enable-debugger),曾经安装失败过,如果您也在安装过程中失败了,恰好出现类似下面的报错:
undefined reference to 'pthread_create'
undefined reference to 'pthread_join'
您可以按照下面的方法解决。如果不是这个报错,亲,您可能要辛苦一下自行解决啦。
上面报错的原因:
pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthread.a,所以在使用pthread_create()创建线程,以及调用 pthread_atfork()函数建立fork处理程序时,需要链接该库。
解决方案:
在编译中要加 -lpthread参数。用vim编译makefile,vim是linux下功能最为强大的文本编辑器。vim Makefile回车:
编辑第92行,将thread库加入,将其放在行末尾就行了。
IBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0 –lpthread
重新编译,make 回车,看问题是否解决,成功解决后直接make install回车。
【再续】