Ubuntu环境下安装Bochs

本文详细介绍了在Ubuntu 14.04系统中安装Bochs模拟器的过程,并解决了安装过程中可能出现的各种错误。此外,还提供了使用Bochs运行Linux 0.11内核的具体步骤。

首先说一下我的Ubuntu版本,敲命令
sudo lsb_release -a
就可以看到
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.3 LTS
Release: 14.04
Codename: trusty
所以,我的Ubuntu版本是14.04
也可以用
cat /etc/issue
查看版本号。

怎样查看系统是32位还是64位呢?
用命令 uname -m
然后显示:x86_64,这就说明是64位。

安装:

1.去http://bochs.sourceforge.net/下载最新版本。
下文以bochs-2.4.5.tar.gz为例说明。

2.解压下载的源代码:
sudo tar zxvf bochs-2.4.5.tar.gz

3.进入bochs-2.4.5目录,运行configure脚本:
sudo ./configure -enable-debugger -enable-disasm

(-enable-debugger和 -enable-disasm 表示开启调试和反汇编功能)

4.第3步正确运行后,会产生一个Makefile文件,于是可以编译:
sudo make

5.安装:
sudo make install
至此,bochs安装已经结束。

但是你也许不会成功。不要着急,下面是编译安装过程中可能出现的一些问题及解决方法:

【错误1】
error: C++ preprocessor “/lib/cpp” fails sanity check

因为Bochs是用C++写的,所以这里要安装GNU g++编译器。

解决方法:
sudo apt-get install build-essential
sudo apt-get install g++

【错误2】
checking for default gui on this platform… x11
ERROR: X windows gui was selected, but X windows libraries were not found.

解决方法:
sudo apt-get install xorg-dev

【错误3】
ERROR: pkg-config was not found, or unable to access the gtk+-2.0 package.

解决方法:
sudo apt-get install libgtk2.0-dev

【错误4】

make的时候提示 /usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined
reference to symbol pthread_create@@GLIBC_2.1 //
lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing
from command line collect2: error: ld r

解决方法:
在makefile的“LIBS = ”这一行的最后面添加如下内容 :
-lz -lrt -lm -lpthread
于是变成了:
LIBS = -lm -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft 2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontcon fig -lgobject-2.0 -lglib-2.0 -lfreetype -lz -lrt -lm -lpthread

【2017-3-12,我在ubuntu 16.04上安装bochs2.6.8,在make的时候出现了以下错误。罗列如下】

【错误5】
X11/Xlib.h: 没有那个文件或目录
解决方法:
sudo apt-get install libx11-dev

【错误6】
X11/extensions/Xrandr.h:没有那个文件或目录
sudo apt-get install libxrandr-dev

【错误7】
undefined reference to symbol ‘XSetForeground’
解决方法:
./configure –enable-debugger LDFLAGS=’-pthread’
如果没有报错,再次
sudo make


如果已经安装成功,那么我们肯定迫不及待地想用起来。
怎么用呢?这里举一个例子。

1.下载linux0.11的镜像文件
下载地址是:
http://www.oldlinux.org/Linux.old/images/bootroot-0.11

2.写一个简单的Bochs配置文件

#注意'#'后面为注内容

megs:128
#模拟器的内存  

romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
#这个是BIOS-bochs-latest的路径,自己慢慢找,不一定和我的一样

vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest  
#这个是VGABIOS-lgpl-latest的路径,自己慢慢找

floppya:1_44=bootroot-0.11,status=inserted 
#这个是启动软盘,就是我们下载的那个,就在当前目录下,如果不在当前目录,需要指明路径  

boot:floppy  
#表示从软盘启动

log:bochsout.txt  
#日志输出文件

#选项还有很多,想了解更多可以参照原始的.bochsrc(在bochs-2.4.5/目录下)

=================小贴士==============
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest

以上这两行的路径如何找?

一个方法是:点击左侧的文件图标,再点击计算机,再点击搜索。
如何查看路径

在搜索栏输入“bochs”,如下图
如何查看路径2

找到BIOS-bochs-latest, 右键查看属性,即可找到位置。一般情况下,VGABIOS-lgpl-latest 也在这个路径下.

另外,floppya:1_44=bootroot-0.11,一定要注意bootroot-0.11的路径。
请确认bootroot-0.11在你运行bochs的当前路径下。
举例来说,如果你是在/home/Tom/Downloads/路径下启动的bochs,那么bootroot-0.11一定要在/home/Tom/Downloads/路径下。

否则会出现如下提示:
没有启动设备

还有一点要说明,在配置文件中不要出现~(表示家目录),假如用户名是Tom, 那么请用/home/Tom代替~。否则也会出现上面的提示。

                                    ——2017-3-12 补充

=========================================

假设我们保存为bochs_cfg.txt

3.启动Bochs
我们敲命令:
bochs -f bochs_cfg.txt
(-f 选项表示指定配置文件)
然后我们就看到:
启动Bochs后
输入6,回车
然后看到:

咦?怎么是一片漆黑呢?
注意到了吗?屏幕底端显示:
[0xfffffff0] f000:fff0 (unk. ctxt): jmp far f000:e05b
处理器在加电启动时,CS=0xF000; IP=0xFFF0,也就是说地址线的低20位是0xFFFF0,且其他地址线被强制为高电平,所以方括号中的地址就是0xfffffff0,此处是一条跳转指令jmp far f000:e05b ,这个地址指向了ROM-BIOS.
此时,Bochs停了下来,在等我们的调试命令。
我们输入c(表示continue),回车
注意看Bochs的窗口,可以看到Linux-0.11启动了!最后的画面是:
Linux-0.11启动后
哈哈,是不是很惊喜?!
今天的学习就到这里,下回见:)

### 安装 Bochs 模拟器 为了在 Ubuntu 系统上成功安装并配置 Bochs 模拟器,需遵循一系列指令来确保所有必要的组件被正确设置。 #### 更新软件包列表 确保系统的软件源是最新的非常重要。这可以通过执行命令 `sudo apt update` 来实现[^2]。 #### 安装 Bochs 及其依赖项 通过终端输入如下命令可完成 Bochs安装: ```bash sudo apt-get install bochs ``` 此操作会自动处理所有的依赖关系,并下载最新的稳定版 Bochs 到系统中。 对于希望拥有图形界面体验的用户来说,还需额外安装 Bochs SDL 库支持 GUI 功能: ```bash sudo apt-get install bochs-sdl ``` 上述步骤能够使 Bochs 在带有 X Window System 的环境中正常工作,因为 Bochs 要求在一个已安装了 X Window 系统的操作系统里运行[^1]。 #### 创建虚拟磁盘映像 利用工具 `bximage` 可以为即将模拟的操作系统准备一个存储设备。具体做法是打开终端窗口并通过下面这条命令启动该程序: ```bash bximage ``` 按照提示进行操作即可创建所需的虚拟软盘或硬盘文件。 #### 验证操作系统版本兼容性 考虑到不同版本间的差异,在开始之前确认当前使用的 Ubuntu 版本是有益的做法。可通过以下两个命令获取相关信息: 显示架构类型: ```bash uname -m ``` 查询详细的发行版描述: ```bash sudo lsb_release -a ``` 如果结果显示为类似于 “Distributor ID: Ubuntu Description: Ubuntu 18.04.x LTS”,则表明正在使用的是长期支持版本之一,适合用于此类实验环境构建[^3]。 #### 安装其他必要工具 除了 Bochs 外,对于打算从事操作系统开发工作的开发者而言,还应考虑安装 GCC 编译器以及 NASM 组合语言编译器等辅助工具。这些工具可以帮助编写和测试自定义内核代码片段[^4]。 ```bash sudo apt-get install gcc nasm ``` 以上就是关于如何在 Ubuntu 上部署 Bochs 模拟器及相关开发资源的方法概述。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值