本人一年前刚学linux系统的时候花了两天时间安装bochs,完全没头绪,后来半年前尝试安装还是失败,幸运的是b站过去几个月出了一些安装视频,所以我结合之前踩过的坑为大家带来详细的安装步骤,废话不多说,开始:

我的bochs是2.7版本,不过版本不重要了,其它版本安装流程基本都一样

首先,我把安装目录放在家目录下Downloads文件夹下面,即:
在这里插入图片描述

如果新手对于路径的问题还是比较迷茫的话,可以和我安装在同一路径,完全按照我的步骤来

这里对于新手说明一下,切换到家目录的三种方式
1.在终端输入cd
2.在终端输入cd ~
3.在终端输入cd $HOME
$HOME的路径即 /home/你创建ubuntu时用到的用户名
4.直接点击左边的文件,进入我上图所示的界面,类似windows操作文件方式

然后接下来在终端中输入

cd Downloads/ //如果你是中文或者是其它语言或者其它单词,按照你系统中的输入

之后在终端输入ls,会看到:
在这里插入图片描述
那么这个就是我们bochs安装包所在的路径
接下来在终端输入:

tar zxvf bochs-2.7.tar.gz //同样,如果你是其他版本,按照你的安装包名输入

之后在Downloads目录下会看到:
在这里插入图片描述

这里的bochs-2.7就是我们的安装包
接下来,在终端输入

cd bochs2.7/

进入到bochs2.7文件夹下

接下来在命令行窗口中输入:

./configure \
# 这里把bochs放在目录"$HOME/Downloads"--prefix=$HOME/Downloadsbochs \      
--enable-debugger \
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11

即:
在这里插入图片描述

注意事项!!!!我前两次安装的时候,看的是《操作系统真象还原》这本书,就是在这个地方卡住了,即在哪里输入?后面的 \ 符号是什么意思?也没有回答来解释,还是看视频才会的

1.上面的是在终端输入的!!!每行输入上面所对应的一行

2.#是注释,就不要输入了

3.每一行和 \ 之间有空格,同时 \ 也需要输入!因为在linux系统中,最后加入\,就表示可以换行输入命令,不然你输入一行直接按回车的话就会直接完成命令的输入,下面的就无法一起输入了!

4.第二行,即prefix那一行,表示你想把安装后的bochs放在哪里,我这里放在家目录下Downloads里面,即和bochs2.7安装包放在一起。

5.最后那一行就不需要加 空格\ 了

在上面安装的时候可能有如下问题:
fatal error: X11/Xlib.h: No such file or directory
Ubuntu 编译提示 configure: error: no acceptable C compiler found in $PATH
按照上面的步骤安装即可

之后输入

make

即:
在这里插入图片描述

这个过程会有点慢
完成之后,看是否有错误,没有就输入:

//因为我是用户账号来输入的,没有切换到root账号,所以需要sudo来以管理员
//的权限运行
sudo make install 

即:
在这里插入图片描述
这个过程就比较快了

之后切换到上一级目录,输入ls,会发现多了两个bin文件和share文件夹,
这两个文件夹就是我们配置bochs所需要的了
在这里插入图片描述
当我们进入到bin目录下会看到bximage和bochs两个文件,其中bximage是
我们配置启动盘时的核心
在这里插入图片描述

当我们进入到share目录下会看到bochs doc man三个文件夹,其中bochs文件夹中有两个文件极其重要,即我下图中画圈的两个文件
在这里插入图片描述
好,接下来就开始配置吧。
首先,我先切换到bin目录
在这里插入图片描述
输入

sudo gedic bochsrc.disk

在文件中写入:

# 设置bochs在运行中能够使用的内存,我这里设置32MB
mes: 32

# 设置真实机器所对应的BIOS和VGA BIOS
# 这里的路径是按照我上面讲的那两个重要文件的路径来的
# 如果你和我路径不一样,不要直接抄我的!
roimage: file=/home/你的用户名/Downloads/share/bochs/BIOS-bochs-latest
vgaromimage: file=/home/你的用户名/Downloads/share/bochs/VGABIOS-lgpl-latest


# 选择启动磁盘,我这里是选择以硬盘启动
# 如果你想按照软盘启动的话则boot: floppy
boot: disk


# 设置日志文件输出路径
log: bochsout.txt


# 关闭鼠标
mouse: enabled=0


# 磁盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14


# 启动盘信息hd60M.img,下面的hd60M.img为我们启动硬盘
# 我们之后创建的启动硬盘必须放在该路径下且必须同名
# 下面的path也可以写成path="hd60M.img",不过要求你的hd60M.img在bin文件夹下
ata0-master: type=disk, path="/home/你的用户名/Downloads/bin/./hd60M.img", mode=flat, cylinders=121, heads=16, spt=63

在终端输入ls会看到:
在这里插入图片描述
成功创建了bochsrc.disk文件

然后我们输入bochs,会看到如下界面:
在这里插入图片描述
说明安装成功,上面的BXSHARE not set. using…那一行说明我们并未使用配置文件,稍后使用

我们再输入6,会看到:
在这里插入图片描述
再输入c,会看到:
在这里插入图片描述
出现这个错误,表明我们并未创建启动盘。

下面,我们的思路是创建一个测试文件,后缀名为asm,然后经过nasm编译,生成后缀名为bin的二进制文件。然后创建一个硬盘,通过bin目录下的bximage来创建,再把刚才生成的.bin文件写入硬盘中,最后启动bochs测试。

创建硬盘命令:

/bochs/bin/bximage -hd -mode="flat" -size=60 -q hd60M.img

编译命令:

nasm test.asm -o test.bin

文件写入硬盘命令

dd if=test.bin of=/home/你的用户名/Downloads/bin/hd60M.img bs=512 count=1 conv=notrunc

一般来说,我们可以把这三个命令放入到一个后缀名为sh的脚本文件中,然后执行该脚本文件。但是我执行这个脚本文件时,会发现终端中提示:

Unknown option: -hd

原因是我的系统无法通过配置文件来执行创建磁盘的命令,所以需要在命令行通过bximage来创建,输入

sudo bximage

如下图所示,按照我的图片所示来输入:
在这里插入图片描述
再在终端输入ls,会发现成功创建了hd60M.img磁盘映像文件
在这里插入图片描述
接下来就是创建一个汇编文件来进行测试了,我们测试的汇编代码如下:

	org	07c00h			; 告诉编译器程序加载到7c00处
	mov	ax, cs
	mov	ds, ax
	mov	es, ax
	call	DispStr			; 调用显示字符串例程
	jmp	$			; 无限循环
DispStr:
	mov	ax, BootMessage
	mov	bp, ax			; ES:BP = 串地址
	mov	cx, 16			; CX = 串长度
	mov	ax, 01301h		; AH = 13,  AL = 01h
	mov	bx, 000ch		; 页号为0(BH = 0) 黑底红字(BL = 0Ch,高亮)
	mov	dl, 0
	int	10h			; 10h 号中断
	ret
BootMessage:		db	"Hello, OS world!"
times 	510-($-$$)	db	0	; 填充剩下的空间,使生成的二进制代码恰好为512字节
dw 	0xaa55				; 结束标志

然后就创建汇编文件吧,我们用的文件名为test.asm,在终端中输入

sudo gedit test.asm

之后复制上面的内容,然后保存。

再输入ls,发现成功创建了test.asm文件
在这里插入图片描述
接下来就可以对test.asm文件进行汇编了,在终端输入:

sudo nasm test.asm -o test.bin

再在终端输入ls,会看到test.bin文件成功被创建
在这里插入图片描述
最后把test.bin文件写入hd60M.img硬盘中

# 下面path也可以这么写 path=hd60M.img 不过要求你的hd60M.img在bin目录下
dd if=test.bin of=/home/你的用户名/Downloads/bin/./hd60M.img bs=512 count=1 conv=notrunc

如下图:
在这里插入图片描述
然后我们创建一个run.sh脚本文件,来通过执行该脚本文件的方式,通过以bochsrc配置文件来打开bochs
创建文件:

sudo gedit run.sh

在文件中输入:

/home/你的用户名/Downloads/bin/bochs -f bochsrc.disk

在这里插入图片描述
发现成功创建了run.sh文件,执行该文件,会发现:

在这里插入图片描述

最后执行该文件,发现成功了
在这里插入图片描述
同时,上面的BXSHARE not set. using…那一行下面有:
在这里插入图片描述
可以看到,是按照配置文件来打开的。

最后,我们成功地安装了bochs,并测试成功,以后如果你想把其它编译好的文件挂载到磁盘中,让bochs运行的话,就和上面的步骤一样,用dd if=…那条命令即可。

总结,bochs安装最重要的四步:

一、配置bochsrc.disk文件

二、创建硬盘(或软盘,看你想以硬盘启动还是软盘启动了)

三、创建一个bin文件

四、把bin文件放到创建好的硬盘中,写一个run脚本来启动bochs即可

这个bochs安装费了我很长时间,我把我了解到的安装过程教给大家,希望大家少走弯路!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐