博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ubuntu 12.04安装bochs 2.3.5
阅读量:5324 次
发布时间:2019-06-14

本文共 1593 字,大约阅读时间需要 5 分钟。

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

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

bochs 2.3.5源码编译

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

tar vxzf bochs-2.3.5.tar.gzcd bochs-2.3.5sudo ./configure --enable-debugger --enable-disasmsudo makesudo make install

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

sudo apt-get install build-essentialsudo 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,不知道怎么解决。

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

你可能感兴趣的文章
Hadoop Sentry 学习
查看>>
Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
查看>>
Swift3的闭包相关
查看>>
Codeforces 855B 简单DP
查看>>
mui前端框架下拉刷新分页加载数据
查看>>
正确使用事务提交数据并回滚
查看>>
Angular系列----AngularJS入门教程01:AngularJS模板 (转载)
查看>>
Ajax对数据的删除与查看
查看>>
201521123100 《Java程序设计》第3周学习总结
查看>>
try catch finally 用法
查看>>
js常用工具
查看>>
从数组中每次取一个不同的数组成员 getRandomItem(arr)
查看>>
搜索:圆排列的计数问题
查看>>
深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
查看>>
获取日期所属周一至周日时间点
查看>>
二叉查找树
查看>>
HDU 4045 Machine scheduling (第二类斯特林数+DP)
查看>>
杭电1002
查看>>
android开发相关资料整理【2011-10-20】
查看>>
Python基本格式化输出
查看>>