以下是在 macOS 上完整安装 Bochs(3.0 版本)、NASM 及配置运行环境的详细步骤,涵盖所有依赖工具和配置细节。

说明:因为尝试编译bochs和nasm源文件,各种错误层出不穷,搞了三天都不成功,所以放弃,改为直接安装官方提供的预编译版本。心累啊;如有成功的,请分享链接。谢谢。

一、准备工作:安装必要工具

1. 安装 Xcode 命令行工具(系统编译环境)

Bochs 和 NASM 的编译 / 运行依赖系统基础工具,执行以下命令安装:

bash

xcode-select --install

弹出安装窗口后,点击 “安装” 并同意许可协议,等待完成。

如果原先已安装完整的xcode,这步应该可省略。

2. 安装 Homebrew(包管理工具)

Homebrew 用于 macOS 上的包管理器,用于快速安装 Bochs 等软件:

bash

# 安装Homebrew(国内用户推荐使用中科大源加速)
/bin/bash -c "$(curl -fsSL https://mirrors.ustc.edu.cn/misc/brew-install.sh)"

# 验证安装成功
brew --version  # 输出Homebrew版本号即成功

二、安装 Bochs(3.0 版本,预编译版)

1. 安装 Bochs 及依赖

通过 Homebrew 直接安装兼容 macOS 的 Bochs 3.0 版本,自动解决 SDL2 等依赖:

说明:本来想安装网上最热的2.6.11版本,但homebrew应该是没有收录这个版本,所以放弃。

bash

brew install bochs

安装完成后,验证版本:

bash

bochs --version  # 输出"Bochs x86 Emulator 3.0"即成功
2. 确认 Bochs 安装路径(后续配置需要)

Homebrew 默认安装路径:

  • 主程序:/usr/local/bin/bochs
  • 配置文件模板及 BIOS:/usr/local/Cellar/bochs/3.0/share/bochs/

三、安装 NASM(汇编编译器)

NASM 用于编译汇编代码生成 Bochs 可识别的镜像文件,采用手动安装避开网络限制:

1. 下载 NASM 预编译包
2. 解压并安装

bash

# 进入下载目录(默认是~/Downloads)
cd ~/Downloads

# 解压文件
unzip nasm-2.16.01-macosx.zip

# 将nasm可执行文件移动到系统路径(全局可用)
sudo mv nasm-2.16.01-macosx/nasm /usr/local/bin/

# 验证安装
nasm -v  # 输出"NASM version 2.16.01"即成功

四、配置 Bochs 运行环境

1. 创建工作目录

说明:下面目录仅为示例,请按您自己的目录修改相关命令。

bash

# 创建存放Bochs镜像和配置文件的文件夹
mkdir -p ~/bochs/vm
cd ~/bochs/vm
2. 生成磁盘镜像(以 60MB 为例)

使用dd命令创建空白硬盘镜像,供 Bochs 模拟使用:

说明:也可用bximage命令,生成镜像文件。

bash

dd if=/dev/zero of=hd60M.img bs=1M count=60
  • hd60M.img:镜像文件名(后续配置会用到)
  • 60:镜像大小为 60MB(可根据需求调整)
3. 编写 Bochs 配置文件(bochsrc.txt

~/bochs/vm目录下创建配置文件,内容如下(适配 Bochs 3.0):

ini

# 系统内存设置(32MB)
megs: 32

# 启动方式(从磁盘启动)
boot: disk

# BIOS和VGA BIOS路径(Homebrew安装的默认路径)
romimage: file=/usr/local/Cellar/bochs/3.0/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/local/Cellar/bochs/3.0/share/bochs/VGABIOS-lgpl-latest.bin

# 禁用鼠标(避免macOS光标冲突)
mouse: enabled=0

# 键盘设置
keyboard: type=mf, serial_delay=250, paste_delay=100000

# 硬盘配置(关联前面创建的镜像)
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd60M.img", mode=flat

# 显示设置(使用SDL2库,兼容macOS)
display_library: sdl2

# 日志输出文件
log: bochsout.txt

五、启动 Bochs 并验证

1. 启动 Bochs

~/bochs/vm目录下执行:

bash

bochs -f bochsrc.txt
2. 首次启动操作
  • 启动后会进入 Bochs 命令行界面,输入 c(continue 的缩写)并回车,开始运行。
  • 若看到 “Boot failed: could not read the boot disk” 等提示,属于正常现象(因为镜像中尚无操作系统),说明 Bochs 已成功启动。

六、常见问题解决

  1. 显示库错误(如sdl2 not available:重新安装 SDL2 依赖:brew install sdl2,并确保配置文件中display_library: sdl2

  2. BIOS 文件找不到:检查配置文件中romimagevgaromimage的路径是否正确,Homebrew 安装的 Bochs 3.0 BIOS 路径为/usr/local/Cellar/bochs/3.0/share/bochs/,且 VGA BIOS 文件名带.bin后缀(如VGABIOS-lgpl-latest.bin)。

  3. 镜像文件路径错误:确保ata0-masterpath指定的镜像文件(如hd60M.img)与配置文件在同一目录,或使用绝对路径(如path="/Users/你的用户名/bochs/vm/hd60M.img")。

通过以上步骤,即可在 macOS 上完成 Bochs 和 NASM 的安装配置,后续可通过 NASM 编译汇编代码生成镜像,再用 Bochs 加载运行。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐