Ubuntu 10.10下Bochs的安装及问题解决


要在Linux(Ubuntu 10.10)搭建环境来进行简单操作系统编写基本会用到以下几个东西:

nasm汇编代码编译器,

虚拟机Bochs,

编辑器(系统已自带vim),

检查依赖关系、编译生成结果代码的Make(系统自带有),

C代码编译器gcc(系统自带有)。

所以这个环境的搭建主要就差安装nasm和虚拟机了。

nasm可以用sudo apt-get install nasm很方便地安装,至于虚拟机Bochs,当然也可通过apt-get安装,只是这样的话会按默认的配置安装,《一个操作系统的实现》一书说的可能没有调试功能,所以还是决定去www.bkjia.com官网下源码来编译安装。

如果顺利的话,所有过程如下:

1、下载bochs源码,下的是2.4.5版本

2、解压源码压缩包:tar vxzf bochs-2.4.5.tar.gz

3、进入bochs的解压目录bochs-2.4.5:cd bochs-2.3.5

4、配置,使能调试和反汇编功能:./configure --enable-debugger --enable-disasm

5、编译:make

6、安装:sudo make install

我说“如果顺利的话”,说明我不顺利,原因可能是不同版本的Linux程序包有所缺少,以下是问题及解决:

问题1:./configure后出现Error: C++ preprocessor “/lib/cpp” fails sanity 。

问题在于c++编译器的相关的包没有安装,试了N多命令下载包都不行,都找不到这些package。最后装g++ gdb这个包才貌似解决了,

sudo apt-get install g++ gdb,然而。。。

问题2:执行./configure后又出现ERROR: X windows gui was selected, but X windows libraries were not found.

又是缺包,网上搜得这个包xorg-dev,于是sudo apt-get install xorg-dev(网上有说必须用sudo aptitude install xorg-dev才行,我刚好相反,用这个命令不行,先不管了,赶紧把环境搭建起来才正事,过后再研究。)。还没完呢。。。

问题3:再次执行./configure后又出现新的

ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.Install pkg-config and the gtk+ development package,or disable the gui debugger, or the wxWidgets display library (whichever is being used).

不管是缺配置还缺包,直接下包,sudo apt-get install libgtk2.0-dev。

之后再编译安装一次./configure>make>sudo make install,就一路顺风了,这样七七八八、效率低下的基本上算装好了。

PS:接下来碰到了一个非常愚蠢的问题:

执行dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc,老是提示boot.bin文件不存在,心想既然缺了,不管里面需要什么内容,先创建个空白的文件来保证虚拟光盘制作的顺利进行,但又不清楚能否像创建其他普通二进制文件那样,用例如touch之类命令来创建,对boot.bin文件不了解,于是先查了boot.bin文件的相关资料,无果,又拼命检查bochs安装时是否所哪个配置歌者依赖的包,一无所获,加上这几天有事,搁置了。

。。。。。。

等到今天,翻书翻到前面,原来boot.bin文件需要先写个asm文件再汇编出来的,哇了个去!挡住去路的,往往不是参天大树,而是小藤,还有盲目!探索阶段,尽量按步就班来,少跳着走,当然这个过程还会发现自己很多Linux环境例如Vim这编辑器还远远没熟练掌握,在写boot.asm(或者说是Copy源码到asm文件中)都还是出现问题无法汇编。。。

相关内容