写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

时间:2024-05-19 07:02:40

最近在啃CSAPP的时候开了《操作系统真象还原》这本书,看着还挺有意思的,准备试着自己写一个操作系统。

我用的开发环境是  5.4.0-kali3-amd64 #1 SMP Debian 5.4.13-1kali1 (2020-01-20) x86_64 GNU/Linux

所以我的安装过程都是遵循的真象还原这本书来的,只是有几个错误提示需要记录一下。

 

首先bochs的下载与安装:

官方的下载地址是:https://sourceforge.net/projects/bochs/files/bochs/

选择自己喜欢的版本然后下载tar.gz文件 我下载的是 2.6.11版本

解压包 tar -zxvf bochs-2.6.11.tar.gz

然后进入到解压好的目录里设定好配置

./configure --prefix=/PATH/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11

这里的PATH要是一个绝对目录,同时也是bochs的安装目录

之后make install

这样安装就完成了,我中间没有遇到问题,所有有问题的就自行百度吧,哈哈,不过一般应该只是缺少几个依赖项

比如说 fatal error:x11/x11lib.h: no such file or directory 需要 sudo apt-get install libx11-dev

可能需要的依赖项:build-essential nasm, libx11-dev, xorg-dev, libgtk2.0-dev, bison

 

bochs的配置:

安装好之后,我们需要对它做一点配置,相当与我们要告诉它要模拟一个什么样的机器

配置文件在安装目录下的share/doc/bochs文件夹里有个样例,先把他拷贝出来然后做一些修改就行了

(后面BOCHSPATH均表示安装目录的路径)

cp BOCHSPATH/share/doc/bochs/bochsrc-sample.txt BOCHSPATH/bin/bochsrc.disk

这里配置文件的命名没有特殊要求,随便一个名字就好

这里我遇到了一个小坑,就是我一开始直接把bochsrc.txt放到了安装目录下,这样启动bochs之后要选择[2] read options from 当你写入bochsrc.txt之后会有一个错误

 

>>PANIC<< reading from bochsrc.disk failed

我猜测这是因为bochs是从bin这个目录下开始找起的,所以放在上层文件夹就找不到了。解决方法就是把配置文件放到bin目录下就好了,或者是运行./bochs -f PATH/bochsrc.disk 在启动的时候直接用参数把路径传进去就可以了

这样把配置文件复制到我们需要的地方之后,就要开始修改了

因为真象还原这本书上要求的是从硬盘启动,所以就把软盘给禁用了

需要修改的地方有

#设置bochs在运行的时候能使用的内存,单位是MB

megs: 32

#设置对应真实机器的BIOS和VGA BIOS

这里我保持了样例里的默认设置

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

因为不需要软盘,所以将其注销掉,不过这个默认好像也是注销的,如果没有自己手动注掉就好

大约是在这个位置

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

然后选择启动盘符

#boot: floppy #不需要软盘启动

boot: disk #从硬盘启动

设置日志文件的输出(输出位置在安装目录的bin下)

log: bochs.out

开启关闭某些功能

mouse: enable=0 #关闭鼠标

keyboard: keymap=BOCHSPATH/share/bochs/kemaps/x11-pc-us.map

这个地方树上写的是用keyboard_mapping: enable =1 map=...来做的,但是这样之后运行的时候也会有报错,上述写法没有,可能是版本迭代的问题

>>PANIC<< bochsrc.disk:495: keyboard directive malformed.#错误信息

之后 硬盘我也是用的默认设置

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

还有一个针对sound的报错

>>PANIC<< bochsrc.disk:928: Bochs is not compiled with lowlevel sound support

解决方法是吧配置文件的sound和speaker选项前面用#注释掉(虽然总觉得这样做不对,不过先运行起来再说吧不是吗,逃~)

还遇到了一个CPU相关的错误

>>PANIC<< .bochsrc:186: cpu directive malformed.

这个是因为配置文件中的cpu类型与实际机子上的类型不符合?(其实我也不是很清楚,再逃~)

结局方法是运行 ./bochs -help cpu 得到支持的型号

然后去配置文件里找到最接近的对应,然后修改一下就可以了

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

比如说我的是I7 8700 我就选了core_duo_t2400

(可能是指令集的问题?我还是不清楚....逃~)

修改如下

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

这样之后我就没有遇到其他的问题了,尝试运行一下

写一个自己的操作系统(0)-bochs的安装与配置以及常见的错误提示

好了没有问题了,后面应该是开始创建硬盘镜像了。

逃~