BetterTs

鸢飞戾天者,望峰息心;经纶世务者,窥谷忘反

CentOS 7安装Bochs2.6.9

Bochs介绍

《CentOS 7安装Bochs2.6.9》

Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统。它包含了 Intel x86 CPU 仿真、常见设备仿真、以及定制 BIOS。Bochs 可以虚拟多种不同类型的 x86 CPU ,从早期的 386 到最新的 x86-64 Intel 和 AMD 处理器,甚至是市场上还没有销售的 CPU。

Bochs 会去解释从电源启动开始的每一条指令,以及所有 PC 标准外设:键盘、鼠标、VGA 卡/监视器、磁盘、网卡、定时器芯片 等等。由于 Bochs 模拟了所有的 PC 环境,因此所有的运行的系统,就如同运行在一台真实的机器中。这种方式使得 Bochs 可以运行各种软件。例如多种流行的 x86 操作系统:Windows 95/98/NT/2000/XP 和 Vista,所有的 Linux类型以及BSD类型的操作系统等等。

Bochs 使用 C++ 编写,被设计运行于多种主机平台,包括 x86、PPC、Alpha、Sun、MIPS。无论运行在什么平台 Bochs 都只能模拟 x86 硬件。换句话说,它不依赖于这些主机的本地 CPU 指令集。这种方式有它的优点,但也有缺点。这是它与其它的仿真软件(如:VirtualBox、Vmware 等等)不同之处。

Bochs安装

  1. 切换到root用户
    执行命令su,输入root的密码
  2. 下载并解压Bochs2.6.9
    wget https://nchc.dl.sourceforge.net/project/bochs/bochs/2.6.9/bochs-2.6.9.tar.gz
    tar -zxvf bochs-2.6.9.tar.gz
    cd bochs2.6.9
  3. 编译安装
    ./configure --with-x11 --with-wx --enable-debugger --enable-disasm --enable-all-optimizations --enable-readline --enable-long-phy-address --enable-ltdl-install --enable-idle-hack --enable-plugins --enable-a20-pin --enable-x86-64 --enable-smp --enable-cpu-level=6 --enable-large-ramfile --enable-repeat-speedups --enable-fast-function-calls --enable-handlers-chaining --enable-trace-linking --enable-configurable-msrs --enable-show-ips --enable-cpp --enable-debugger-gui --enable-iodebug --enable-logging --enable-assert-checks --enable-fpu --enable-vmx=2 --enable-svm --enable-3dnow --enable-alignment-check --enable-monitor-mwait --enable-avx --enable-evex --enable-x86-debugger --enable-pci --enable-usb --enable-voodoo
    make
    make install

    make install 会把bochs可执行文件拷贝到/usr/local/bin/目录下

  4. 可能会遇到的错误
    fatal error: X11/extensions/Xrandr.h: No such file or directory
    #include <X11/extensions/Xrandr.h>
    yum install libXrandr-devel

    没有规则可以创建“misc/bximage.o”需要的目标“misc/bximage.cc”
    cp misc/bximage.cpp misc/bximage.cc
    没有规则可以创建“misc/hdimage.o”需要的目标“iodev/hdimage/hdimage.cc”
    cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
    没有规则可以创建“misc/vmware3.o”需要的目标“iodev/hdimage/vmware3.cc”
    cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
    没有规则可以创建“misc/vmware4.o”需要的目标“iodev/hdimage/vmware4.cc”
    cp iodev/hdimage/vmware4.cpp iodev/hdimage//vmware4.cc
    没有规则可以创建“misc/vpc-img.o”需要的目标“iodev/hdimage/vpc-img.cc”
    cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
    没有规则可以创建“misc/vbox.o”需要的目标“iodev/hdimage/vbox.cc”
    cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc

此时安装好bochs,终端输入bochs回车后应显示如下内容

========================================================================
                       Bochs x86 Emulator 2.6.9
               Built from SVN snapshot on April 9, 2017
                  Compiled on Oct  3 2019 at 12:57:59
========================================================================
00000000000i[      ] LTDL_LIBRARY_PATH not set. using compile time default '/usr/local/lib/bochs/plugins'
00000000000i[      ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
00000000000i[      ] lt_dlhandle is 0x9f2170
00000000000i[PLUGIN] loaded plugin libbx_usb_common.so
00000000000i[      ] lt_dlhandle is 0x9f2ac0
00000000000i[PLUGIN] loaded plugin libbx_unmapped.so
00000000000i[      ] lt_dlhandle is 0x9f32b0
00000000000i[PLUGIN] loaded plugin libbx_biosdev.so
00000000000i[      ] lt_dlhandle is 0x9f3c00
00000000000i[PLUGIN] loaded plugin libbx_speaker.so
00000000000i[      ] lt_dlhandle is 0x9f49e0
00000000000i[PLUGIN] loaded plugin libbx_extfpuirq.so
00000000000i[      ] lt_dlhandle is 0x9f5230
00000000000i[PLUGIN] loaded plugin libbx_parallel.so
00000000000i[      ] lt_dlhandle is 0x9f6e00
00000000000i[PLUGIN] loaded plugin libbx_serial.so
00000000000i[      ] lt_dlhandle is 0x9fb170
00000000000i[PLUGIN] loaded plugin libbx_iodebug.so
00000000000i[      ] reading configuration from bochsrc
00000000000i[      ] Ignoring magic break points
------------------------------
Bochs Configuration: Main Menu
------------------------------

This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate.  Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found.  When you are satisfied with the configuration, go
ahead and start the simulation.

You can also start bochs with the -q option to skip these menus.

1. Restore factory default configuration
2. Read options from...
3. Edit options
4. Save options to...
5. Restore the Bochs state from...
6. Begin simulation
7. Quit now

Please choose one: [6] 

Bochs配置虚拟环境

编译安装好Bochs后,还需要为即将运行的操作系统创建虚拟硬件环境。这个环境在Bochs中是通过系统默认的配置文件.bochsrc来描述的。在bochsrc中大多数的设置任然使用默认设置,需要关注的有以下几项:

  1. boot:floppy :相当于设置BIOS的启动项
  2. floppya:type=1_44,1_44="boot.img",status=inserted,write_protected=0 :设置插入软盘的类型,容量为1.44M,镜像文件名为“boot.img”,状态是已插入,写保护开关处于关闭状态。
  3. cpu与cpuid:这两项描述了和CPU相关的信息
  4. megs:2048:设置虚拟平台的可用物理内存,以MB为单位。
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注