Ubuntu 12.04安装bochs 2.3.5

本文详细介绍了Bochs操作系统模拟器的安装、编译、配置及使用方法,包括解决编译过程中遇到的Xwindows相关问题,设置引导盘及在debug模式下运行。同时讨论了64位机器支持的难题及未知VEG错误的解决策略。

一直对操作系统本身抱有一定的崇拜心理,可是长久以来都没有好好专研下这本书。趁着工作之前的最后一个寒假,希望能顺利完成这本书,对操作系统的认识有一个新的认识。

工欲善其事,必先利其器 首先,我们先要配置出书本中模拟实验的环境,即虚拟机bochs的配置。众所周知,bochs的安装包版本是不带有调试功能的,只有通过编译bochs源码,才能启用debug模式。

bochs 2.3.5源码编译

网上编译bochs的资料非常多,基本的问题都有解决方案,我重点讲不常见的问题。 基本安装步骤

tar vxzf bochs-2.3.5.tar.gz
cd bochs-2.3.5
sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install

bochs是c++实现的,因此其依赖环境会有build-esstianl g++ devlib等,需事先安装环境

sudo apt-get install build-essential
sudo apt-get install xorg-dev //GUI界面
sudo apt-get install bison

在执行./configure时,出现apt-get orgx-dev后依旧出现仍然提示ERROR: X windows gui was selected, but X windows libraries were not found 采用解决办法:

只要编译的时候连接了 -lX11这个库就可以了,所以可以让configure阶段出错的地方不退出,并且在make的时候link X11这个库,编辑configure, 将退出的地方注释掉

echo ERROR: X windows gui was selected, but X windows libraries were not found.
    #exit 1
configure命令后加 LDFLAGS="-L/usr/lib/i386-linux-gnu -lX该问题不能用--with-nogui解决,否则无法输出hello os,因为需要使用gui

make之前需要修改一份文件bx_debug/symbol.cc

在97行之后加入代码如下,
using namespace std;

#ifdef __GNUC__ //修改
using namespace __gnu_cxx; //修改
#endif //修改

struct symbol_entry_t

keymap若提示找不到,注释掉即可。

bochsrc

bochsrc是bochs启动时读取配置的文件,其中关键的是romimage和vgaromimage的路径设置。关于rom,install vagbios后,/usr/share/bochs路径存在,romimage路径在ubuntu下:/usr/local/share/bochs,修改下即可

制作引导盘

用bximage制作软盘映像 bximage 按提示制作 将引导扇区写入软盘dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

启动bochs

终端中输入bochs,按提示输入,在debug模式下,需要输入c让程序运行。若一切顺利,能看到屏幕上输出hello os的字符。

关于64位机子的问题

在configure时,enable-long-phy-address不存在,无法顺利支持64位寻址,需进一步研究确认。

诡异问题

依旧还有unknow VEG error,不知道怎么解决。

http://whbzju.github.com/blog/2013/02/04/bochs-config/

转载于:https://www.cnblogs.com/whb-zwj/archive/2013/03/01/2938837.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值