Mac安装bochs,编译helloword操作系统

本文详细介绍了如何安装Bochs 2.6.8模拟器,包括下载、配置、编译及解决可能遇到的问题。随后,指导读者安装nasm汇编器,并配置bochsrc以从软盘镜像启动,涉及关键步骤如修改代码和环境变量设置。适合对模拟器和汇编感兴趣的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装 bochs 2.6.8

先下载下来

wget https://nchc.dl.sourceforge.net/project/bochs/bochs/2.6.8/bochs-2.6.8.tar.gz

解压

tar -zxvf bochs-2.6.8.tar.gz

cd bochs-2.6.8 进入文件,进行配置

./configure --enable-ne2000 \
           --enable-all-optimizations \
           --enable-cpu-level=6 \
           --enable-x86-64 \
           --enable-vmx=2 \
           --enable-pci \
           --enable-usb \
           --enable-usb-ohci \
           --enable-e1000 \
           --enable-debugger \
           --enable-disasm \
           --disable-debugger-gui \
           --with-sdl \
           --prefix=$HOME/opt/bochs;

然后进行编译安装

make
make install

这个地方可能会报错(感谢网上其他博主的资料)
在这里插入图片描述
vi ./iodev/hdimage/cdrom_osx.cc
在194行 进行替换代码

if ((devname = strrchr(devpath, '/')) != NULL) {
改为:
if ((devname = (char *) strrchr(devpath, '/')) != NULL) {
make和make install成功

在这里插入图片描述

二、安装nasm 汇编器

brew install nasm

查看是否安装成功

nasm -v

在这里插入图片描述

三、执行bochs

拷贝 ~/opt/bochs/share/doc/bochs/bochsrc-sample.txt bochsrc 进行备份。
对配置文件并作修改,此配置为从软盘镜像启动。

romimage: file=$BXSHARE/BIOS-bochs-latest 

vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

# 1.44=磁盘镜像位置
floppya: 1_44=a.img, status=inserted

# 从软盘启动
boot: floppy

log: bochsout.txt

# 置鼠标不可用
mouse: enabled=0

keyboard: keymap=#$BXSHARE/keymaps/x11-pc-us.map

megs: 32




找到以下代码,进行注释
sound: driver=default, waveout=/dev/dsp. wavein=, midiout=
...
ata0-master: type=disk, mode=flat, path="30M.sample"

vim ~/.bash_profile

在环境中添加
export BXSHARE="$HOME/opt/bochs/share/bochs"
export PATH="$PATH:$HOME/opt/bochs/bin"

然后进行重新编译

source ~/.bash_profile

创建一个
touch boot.asm
进行填充代码

    org 0x7c00
    jmp entry
    db 0x90
entry:
    mov ax,0
    mov ss,ax
    mov sp,0x7c00
    mov ds,ax
    mov es,ax
    mov si,msg
putloop:
    mov al,[si]
    add si,1
    cmp al,0
    je fin
    mov ah,0x0e
    mov bx,15
    int 0x10
    jmp putloop
fin:
    hlt
    jmp fin
msg:
    db 0x0a,0x0a
    db "hello world!"
    db 0x0a
    db 0
    times 510 - ($-$$) db 0
    dw 0xaa55
编译
nasm boot.asm -o boot.bin
将引导程序写进软盘镜像

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
启动bochs
bochs -f 配置文件位置

bochs -f bochsrc-sample.txt

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值