首先要安装X11,检查X11是否安装的最简单方式就是SpotLight里面输入X11,如果没有安装会提示安装。

装完后可能需要重启一下,否则等会启动虚拟机的时候可能出现can not connect to x display的错误。

编译

安装完成后下载Bochs的源码,我这边下的是2.6.8: 下载地址:http://mac.softpedia.com/get/System-Utilities/Bochs.shtml

下载完成后解压,然后bash切换到bochs源码的目录,依次运行:

./configure --with-x11
make
make install

这样就安装完成了。

装载

那么怎样去装载磁盘运行呢?还是在当前目录下,输入:

bximage

进入下图后,输入1为虚拟机创建一个软盘:
Image

输入fd Image

软盘的大小默认就好,回车 Image

软盘名字默认叫做a盘就行,回车 Image

到此完成软盘的创建和装载。

刻录

这时候把我们的引导程序写入到a.img,运行

dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc

boot.bin是我生成的引导程序。

Image

配置虚拟机的基础参数

在当前目录新建bochsrc文件,输入如下内容:

megs: 32
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=a.img, status=inserted
boot: floppy
log:bochsout.txt
mouse:enabled=0
keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map
display_library: x

我这边安装完后的bochsrc的文件在/usr/local/share/bochs下,然后相关的文档在/usr/local/share/doc下(此目录下有个默认的配置文件,如果运行错误,请参考此配置文件)

Image

运行

输入:

bochs -f bochsrc

以当前而配置文件运行。

Image

选择6开始模拟器。

Image

引导文件源码

    org 07c00h                      ;告诉编译器程序加载到7c00处
    mov ax, cs                      
    mov ds, ax
    mov es, ax
    call DispStr                    ;调用显示字符串例程
    jmp $
DispStr:
    mov ax, BootMessage
    mov bp, ax                      ;ES:BP=串地址
    mov cx, 16                      ;CX=串长度
    mov ax, 01301h                  ;AH=13,AL=01h
    mov bx, 000ch                   ;页号为0(BH=0)黑底红字(BL=0ch,高亮)
    mov dl, 0
    int 10h                         ;10h号中断
    ret

BootMessage: db "Hello,_OS_World"
times 510-($-$$) db 0                ;填充剩下的空间,使生成二进制代码恰好为512字节
dw 0xaa55                           ;结束标志

我这边用的是nasm编译器编译的。