zoukankan      html  css  js  c++  java
  • 《操作系统真象还原》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 $@ `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'继续运行(默默地吐槽一句,这是书上没有提示做的)

      结果如下图:

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

      

      

  • 相关阅读:
    [Cogs727] [网络流24题#2] 太空飞行计划 [网络流,最小割]
    [Cogs14] [网络流24题#1] 飞行员分配方案 [网络流,最大流,二分图匹配]
    [Poj2112][USACO2003 US OPEN] Optimal Milking [网络流,最大流][Dinic+当前弧优化]
    基本高精度模板
    Dinic模板
    [poj1698]Alice's Chance[网络流]
    [cf 599D] Spongebob and Squares
    [cf 599C] Day at the Beach
    [BZOJ1004]Cards
    [BZOJ1007]水平可见直线
  • 原文地址:https://www.cnblogs.com/thougr/p/9716192.html
Copyright © 2011-2022 走看看