《操作系统真象还原》bochs安装

Posted thougr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《操作系统真象还原》bochs安装相关的知识,希望对你有一定的参考价值。

  在安装bochs之前,我们先需要安装虚拟机和linux发行版,也可以安装双系统,总之有个linux操作系统就好。

  我是在ubuntu14.04系统下安装bochs的。

安装Bochs

  以下为安装步骤

  1. 下载bochs。官方地址是http://sourceforge.net/projects/bochs/files/bochs/,安装的版本是2.6.2,下载后的文件是bochs-2.6.2.tar.gz。
  2. 解压压缩包 tar zxvf bochs-2.6.2.tar.gz
  3. 编译。先进入到目录 cd bochs-2.6.2,开始configure、 make、 make install三步曲
./configure --prefix=/your_path/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11 LDFLAGS=‘-pthread‘ LIBS=‘-lX11‘

  注意各行结尾‘‘字符前有个空格,/your_path/要修改为你想要安装的路径,相比与原书的配置,我在上面增加了两行(红色)的配置,这对后面的编译有帮助,会减少一些问题的出现。

  configure之后,会生成Makefile,可以编译了。

make

  make的过程中可能遇到各种问题,我在下面罗列一下我遇到的。

  ① 由于g++没有安装,出现C++ preprocessor "/lib/cpp" fail sanity check。

技术分享图片

  解决办法:安装g++

sudo apt-get install g++

  ② fatal error: gtk/gtk.h: No such file or directory

  技术分享图片

  解决办法:输入下面的命令行

sudo apt-get install libgtk2.0-dev

    如果还不行,尝试在bochs/gui下的makefile 第104后面增加`pkg-config --cflags --libs gtk+-2.0`(注意是  `  ),有可能这也解决不了,那么可以尝试根据出错信息定位所在的目录,修改该目录下的makefile,在相应位置加入`pkg-config --cflags --libs gtk+-2.0`

$(CXX) -c  $(CXXFLAGS) $(LOCAL_CXXFLAGS) $< -o [email protected] `pkg-config --cflags --libs gtk+-2.0`

 ③ undefined reference to symbol ’XSetForeground‘

  解决办法:输入下面命令行

sudo apt-get install xorg-dev

  如果上面configure时,没有设置LIBS=‘lX11‘,也会出现这个问题。

    ④ undefined reference to ‘pthread_create‘

  解决办法: configure时加入LDFLAGS=‘-pthread‘。

 

  最后make install

make install

  至此,无错误信息,bochs安装成功。

运行bochs

  安装bochs的工作已经完成了,如果还出现其他问题,尝试一下在bing、google、baidu等等搜索解决问题,想当初在网上做操作系统JOS实验时,我可是花了大量时间在安装bochs上,那时都快崩溃了,总之很多因素都会导致配置过程中失败,请坚持下去,因为很多人像我一样在安装过程中挣扎着,匍匐前行,如果你安装成功了,也祝贺你,这等于成功了一大半!!

  下面开始准备运行bochs:

     我们先试试运行下bochs,先进入我们上面配置时制定的bochs地址,然后输入下面的命令:

bin/bochs

  正常来说会出现以下界面:

技术分享图片

  如果不是,尝试根据错误信息解决。

  之后我打算省略书上的一些细节,直接描述应该做些什么。

  首先,我们创建一个虚拟硬盘,输入以下命令:

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

  然后,我们在当前目录创建一个bochsrc文件了,这是用来配置bochs的,文件名为bochsrc.disk,文件内容为:

#Bochs运行中使用的内存,设置为32M
megs: 32

#设置真实机器的Bios和VGA BIOS #修改成你们对应的地址 romimage: file=/home/thougr/Desktop/mybochs/bochs/share/bochs/BIOS-bochs-latest vgaromimage: file=/home/thougr/Desktop/mybochs/bochs/share/bochs/VGABIOS-lgpl-latest
#设置Bochs所使用的磁盘
#设置启动盘符 boot: disk
#设置日志文件的输出 log: bochs.
out
#开启或关闭某些功能,修改成你们对应的地址 mouse: enabled
=0 keyboard_mapping: enabled=1, map=/home/thougr/Desktop/mybochs/bochs/share/bochs/keymaps/x11-pc-us.map
#硬盘设置 ata0: enabled
=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0-master: type=disk, path="hd60M.img", mode=flat, cylinders=121, heads=16, spt=63
#增加bochs对gdb的支持,我们在这里不使用,所以注释掉了 #gdbstub: enabled
=1, port=1234, text_base=0, data_base=0, bss_base=0

  执行下列命令运行bochs:

bin/bochs -f bochsrc.disk

  结果如图下:

技术分享图片

  输入‘c‘继续运行(默默地吐槽一句,这是书上没有提示做的)

  结果如下图:

技术分享图片

  显示这个错误时正常的,因为我们还没有设置启动盘,不要桑心,这个问题之后会解决的,做到这里已经很成功了!!!

 

 

 

  

 

  










以上是关于《操作系统真象还原》bochs安装的主要内容,如果未能解决你的问题,请参考以下文章

操作系统真象还原《二》启动流程

操作系统真象还原 文件系统的建立

操作系统真象还原 内存管理

Cannot Connect to X display真象还原 | 天坑解决

从零开始编写操作系统——bochs

操作系统实现1_bochs 和 nasm 安装