百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

自制操作系统之一:Centos7.9 安装 bochs

nanshan 2024-10-25 13:02 26 浏览 0 评论

自制操作系统第一步,就是搭建模拟环境,方便调试和运行。Bochs是一个x86硬件平台的开源模拟器。可以模拟各种硬件配置,包括CPU、内存、硬盘、显示器、以太网、BIOS等常见硬件以及整个PC平台,以下是bochs-2.6.8在Centos 7.9环境下的安装过程。

一、安装依赖

一次性安装好所需依赖,避免后续报错处理。

yum install gtk2 gtk2-devel libXt \
libXt-devel libXpm libXpm-devel SDL SDL-devel \
libXrandr-devel.x86_64 xorg-x11-server-devel \
glibc-headers gcc-c++ SDL SDL-devel

二、下载安装文件

下载bochs源码并解压

# 下载资源页: https://sourceforge.net/projects/bochs/files/bochs/2.6.8/
# 下载源码
wget "https://sourceforge.net/projects/bochs/files/bochs/2.6.8/bochs-2.6.8.tar.gz"

# 解压文件
tar -zxvf bochs-2.6.8.tar.gz

三、编译安装

3.1、运行环境配置

打开bochs-2.6.8目录下隐藏文件 .bochsrc,可以定制软件配置。一般使用默认配置,以下是一些关键参数,可以根据自己需要进行调整。

#相当于设置BIOS的启动项,此处为软盘启动。
boot:floppy
# 表示设置插入软盘的类型为容量1.44 MB的软盘,软盘镜像文件的文件名为boot.img,状态是已经插入,写保护开关置于关闭状态。
floppya:type=1_44,1_44="boot.img", status=inserted,write_protected=0
# cpu配置
cpu: model=core2_penryn_t9600, count=1, ips=50000000, reset_on_triple_fault=1, ignore_bad_msrs=1, msrs="msrs.def"
cpu: cpuid_limit_winnt=0
#cpuid配置
cpuid: x86_64=1, mmx=1, sep=1, simd=sse4_2, apic=xapic, aes=1, movbe=1, xsave=1
cpuid: family=6, model=0x1a, stepping=5
# 设置可用物理内存容量,以MB为单位,目前Bochs软件可用的内存上限是2048 MB
megs:2048
# 关闭声卡驱动,如果是ECS环境,没有安装声卡模块,可以关闭这个配置
# sound: driver=default, waveout=/dev/dsp. wavein=, midiout=

3.2、配置检查

进入安装目录,完成bonchs配置。如果配置过程中出现报错,可以参考 五、异常处理 模块解决。

cd bochs-2.6.8

./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

3.3、编译安装

执行编译安装,等待安装结束。如果安装过程中出现报错,常见的报错信息,也可以参考 五、异常处理 模块解决。

make install

3.4、验证安装结果

在安装目录执行 ./bochs 命令,出现以下结果,即为安装成功。

[root@centos7.9 bochs-2.6.8]# ./bochs
# 正常输出如下:
========================================================================
                       Bochs x86 Emulator 2.6.8
                Built from SVN snapshot on May 3, 2015
                  Compiled on Mar 23 2024 at 22:27:20
========================================================================
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 0x1878fb0
00000000000i[PLUGIN] loaded plugin libbx_unmapped.so
00000000000i[      ] lt_dlhandle is 0x1879a80
00000000000i[PLUGIN] loaded plugin libbx_biosdev.so
00000000000i[      ] lt_dlhandle is 0x187a430
00000000000i[PLUGIN] loaded plugin libbx_speaker.so
00000000000i[      ] lt_dlhandle is 0x187b290
00000000000i[PLUGIN] loaded plugin libbx_extfpuirq.so
00000000000i[      ] lt_dlhandle is 0x187bb00
00000000000i[PLUGIN] loaded plugin libbx_parallel.so
00000000000i[      ] lt_dlhandle is 0x187d6e0
00000000000i[PLUGIN] loaded plugin libbx_serial.so
00000000000i[      ] lt_dlhandle is 0x18819d0
00000000000i[PLUGIN] loaded plugin libbx_iodebug.so
00000000000i[      ] reading configuration from .bochsrc
00000000000e[      ] .bochsrc:714: ataX-master/slave CHS set to 0/0/0 - autodetection enabled
00000000000e[      ] .bochsrc:918: invalid choice 'sound' parameter 'mode'
00000000000e[PCSPK ] .bochsrc:918: unknown parameter for speaker ignored.
------------------------------
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]


四、配置环境变量

配置好环境变量,后续在系统即可直接使用,而不需要进入安装目录运行。

vim  ~/.bash_profile
export BXSHARE=/usr/local/share/bochs

source ~/.bash_profile

五、异常处理

5.1 配置报错

configure: error: in `/root/os_demo/bochs-2.6.2':
configure: error: C++ preprocessor "/lib/cpp" fails sanity check
  
# 解决方案: 安装 gcc-c++
yum install gcc-c++

5.2、找不到头文件

x.cpp:37:22: fatal error: X11/Xlib.h: No such file or directory 
或者
x.cpp:42:35: fatal error: X11/extensions/Xrandr.h: No such file or directory
  
# 解决方案: 安装 libX* 相关组件
yum install libX*

5.3、找不到 .cc 文件

make: *** 没有规则可以创建“misc/bximage.o”需要的目标“misc/bximage.cc”。 停止。

# 解决方案:缺少对应 .cc 文件, 复制以下 .cpp文件为 .cc 后缀文件即可
cp misc/bximage.cpp misc/bximage.cc
cp iodev/hdimage/hdimage.cpp iodev/hdimage/hdimage.cc
cp iodev/hdimage/vmware3.cpp iodev/hdimage/vmware3.cc
cp iodev/hdimage/vmware4.cpp iodev/hdimage/vmware4.cc
cp iodev/hdimage/vpc-img.cpp iodev/hdimage/vpc-img.cc
cp iodev/hdimage/vbox.cpp iodev/hdimage/vbox.cc

5.4、运行 ./bochs 报错

.bochsrc:907: Bochs is not compiled with lowlevel sound support

# 解决方案:缺少声音相关设备支持,打开 .bochsrc 文件,注释sound相关配置,再重新编译
vim .bochsrc 
# sound: driver=default, waveout=/dev/dsp. wavein=, midiout=


至此,已经安装好bochs模拟软件啦,待后续开发调试使用。

相关推荐

微软发布Win11/10 ISO镜像Defender更新,提升系统初始安全性

IT之家7月27日消息,除了Setup及WinRE更新外,NeoWin发现微软本周还针对Windows11/10/Server安装镜像发布了新的Defender安全智能...

微软革新Windows装机体验:内置应用全面升级,安全与便捷双提升

Windows内置应用迎来重大变革:更安全、更快速的初始体验如果您曾亲自安装过Windows11,或许注意到其内置应用并非开箱即用,而是一些占位程序,需要首次运行时从微软应用商店(Microsoft...

Hotpatch继续扩展 现在更多Windows PC在更新后无需重启

Windows11最近从其服务器版本中获得了一项非常重要的功能:Windows热补丁。该功能旨在通过允许操作系统在无需重启的情况下安装重要的安全更新来最大限度地减少停机时间和中断。最初,微软在...

微软承认Windows Server六月更新存在BUG:导致DHCP服务器故障

IT之家6月17日消息,科技媒体WindowsLatest今天(6月17日)发布博文,报道称微软承认6月WindowsServer更新存在BUG,可能导致DHCP服...

Windows Server2019安装Hyper-V的2个简单方法!

关于WindowsServer2019WindowsServer2019是微软发布的服务器操作系统,是WindowsServer2016的后续版本。它包含了许多新的特性和改进,适用于数据中心...

如何在不满足系统要求的旧计算机上安装 Windows 11 24H2

如果你想了解这个安装工具以及安装方法(老飞摄影微信公众号内提供安装包下载),请完整的看完后面的文字,以避免在安装过程当中出现问题。Windows11通常需要某些硬件功能,例如TPM和安全启动,...

第 137 期:微软表示 Windows 11 24H2 是迄今为止最稳定的版本

就在刚刚,微软“大言不惭”地声称,Windows1124H2是迄今为止最可靠的Windows版本。我们并不是说它很糟糕,因为我们每天的工作中也在使用它。上述言论只是一份微软的一份官方文件的一...

Windows 11 将推出带有“高级”选项的新设置页面

Windows11即将迎来一个包含一些高级功能的全新“设置”页面。严格来说,它并非全新功能。它更像是“开发者”栏目的重新设计,用户和开发者可以在其中调整各种附加功能。微软可能明白这些东西不仅对开发...

Windows server 2025 重复数据删除

一、概述windowsserver中的重复数据删除功能从windowsserver2012就开始支持了。Windowsserver中默认没有安装重复数据删除功能。在磁盘分区(卷)上启用重复...

Windows Server 2025预览版迎来更新,微软改善Insiders测试体验

在发布WindowsServer的build26040版本之际,微软公布了该产品的官方名称:WindowsServer2025。一同推出的,还有Windows11WindowsInsid...

升不升?Win11 24H2大范围推送了

微软在其官方支持文档中宣布,24H2版现在已经开始向运行Windows11原始版本、22H2和23H2版的合格设备推送。Windows11的24H2更新现已进入新的可用性阶段,这意味着更多符合条件...

微软发布Win11/10/Server安装镜像Defender更新

IT之家6月22日消息,继上个月为Lumma发布更新后,微软本月也为Windows11/10/Server安装镜像发布了新的Defender更新。此更新包很有必要,因为Wi...

第 81 期:微软最近的更新给 Windows Server 带来了 DHCP 问题

近日,微软确认,DHCP服务器服务可能会在WindowsServer安装2025年6月更新后停止响应或拒绝连接。DHCP问题会影响WindowsServer2025(KB50...

windws server 2012 R2 虚拟机windows server2019 经常断网事件

故障现象:在windowsserver2012R2的虚拟主机上面搭建一个Windowsserver2019的虚拟机系统用来做域控。安装完设置好防火墙和IP,经过测试是可以ping同正常访问...

微软扩展热补丁部署,现覆盖ARM架构Win11 24H2设备

IT之家7月9日消息,科技媒体NeoWin今天(7月9日)发布博文,报道称微软扩大热补丁(WindowsHotpatching)覆盖范围,在AMD和英特尔处理器设备外,现覆盖支...

取消回复欢迎 发表评论: