Bochs 2.2.6安装

最近看<<自己动手写操作系统>>,不想在xp下装vm实验,于是在linux上搞了个bochs玩玩……


开始用的是mandriva的软件源安装的2.2.0,搞了一会明白了怎么回事,把书上第一个程序用nasm编译做成img实验了一下,运行一切正常。
不过到后来看到调试的时候才发现这个安装的bochs没有bochsdbg这个书中提到的程序,按惯例开始google,发现bochsdbg这个好像是win32下的,linux的本身bochs就可以作调试,但是要在编译的时候加上–enable-debugger这个选项(似乎还有别的),看了一下urpmi源上的bochs包说明,似乎没有加这个调试选项,于是全部卸掉,去sf的bochs页下了最新2.2.6的源码,准备自己compile!
PS:搜索的时候还搜到了博文的论坛,看到上面有人骂作者抄袭,还有作者的回复,挺有意思,呵呵。
第一次compile直接用的默认configure,编译似乎还算顺利,不过到了最后一个(好像是文档)的时候好像会出问题,最后考虑到是文档不是什么重要的东西,就自己修改了一下Makefile,把文档的编译和安装给去掉了,这次似乎ok,make install以后运行还算正常,不过看到configure的好多选项,于是慢慢的读了一下sf上的document,发现原来有好多有用的选项都没加上呢,包括调试的、mmx、sse、3dnow的模拟等等,于是dist-clean,再次编译(忘了一点,想当初看人家自己编译firefox时的针对CPU的优化选项这次也自己加上了,march那个,针对了自己的p4m,嘿嘿,虽然不知道能有多大用处-_-!! )。
这次界面用了–with-wx,(还去下了wxgtk2.6的开发包和运行库,有时候urpmi也是很方便的),然后把学要得option都enable了,编译,出错!观察出错的位置,是在编译plugin进gui目录的make plugins时出的错误,好象是和GTK有关的gdk的一个头文件没有找到,导致一些宏定义出错,想想前段时间学过gtk的开发,好像是include和lib目录的问题,于是翻了一下以前的gtk教程,又改了一下gui目录下的Makefile,加上了LOCAL_CXXFLAGS = `pkg-config –cflags –libs gtk+-2.0`这样在编译wx.cc的时候就不会因为找不到头文件而报错了。重新clean,configure,compile,ok了,install了以后又运行了一下,发现用了wx的界面果然好多了,什么都是图形的了,包括配置,调试等等,终于摆脱以前的console了(以前在console下的时候为了方便调试还找了个叫bfe的东西,也是sf上的os项目,bochs的调试图形界面,发现用起来不是很方便,这回的debug也是图形的了,自然省了很多麻烦),终于可以开始os devel了,不容易啊,一个虚拟机都搞成这样,-_-!
最后把configure用的脚本记下(改自随src包里的.conf.linux,其中的Wall项因为总有类定义的一个警告看着很烦,就给去掉了):
#!/bin/sh
#
# .conf.linux
#
#which_config=normal
which_config=plugins
CC=”gcc”
CXX=”c++”
CFLAGS=”-O3 -fomit-frame-pointer -pipe -march=pentium4m” # for speed
#CFLAGS=”-Wall -g -pipe” # for development
CXXFLAGS=”$CFLAGS”
export CC
export CXX
export CFLAGS
export CXXFLAGS
case $which_config in
normal)
#######################################################################
# configuration 1 for release binary RPMs
# Include a few standard options, speed optimizations, X11 only.
#######################################################################
./configure –enable-cdrom \
–enable-sb16 \
–enable-ne2000 \
–enable-vbe \
–enable-all-optimizations \
–enable-cpu-level=6 \
–enable-sse=1 \
–enable-pci \
–enable-clgd54xx \
–enable-usb \
${CONFIGURE_ARGS}
;;
plugins)
#######################################################################
# configuration 2 for release binary RPMs
# Include plugins, every possible gui.
#######################################################################
./configure –enable-cdrom \
–enable-debugger \
–enable-disasm \
–disable-readline \
–enable-sb16 \
–enable-ne2000 \
–enable-vbe \
–enable-all-optimizations \
–enable-cpu-level=6 \
–enable-sse=2 \
–enable-3dnow \
–enable-vme \
–enable-sep \
–enable-x86-debugger \
–enable-pci \
–enable-pcidev \
–enable-clgd54xx \
–enable-usb \
–enable-plugins \
–with-wx \
–prefix=$HOME/bochs \
${CONFIGURE_ARGS}
;;
esac

博主友情提示:

如在您的评论中需要提及如QQ号、微信号、电子邮件地址或其他隐私敏感信息,欢迎通过>>博主专用加密工具<<加密后发布,原文只有博主可以看到。