Mac OS X 中 Bochs的安装及使用

Linux 专栏收录该内容
2 篇文章 0 订阅

最近在看操作系统及内核的一些内容,找到一本书写自己的操作系统,顺手练习,但是Mac10.10系统安不上Bochs啊,找了半天在StackFlow上找到了答案。Bochs的下载地址

Mac10.10 Bochs的安装


0x01 安装SDL库

http://www.libsdl.org安装,或者使用Homebrew来进行安装。Homebrew的安装命令brew install sdl

0x02 Configure Bochs

简单的解压命令tar -xvf bochs-2.6.tar.gz后,Configure需要的参数:

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

其中,--disable-debugger-gui被加入的原因是,debugger GUI需要使用GTK+库,但是Mac OS X默认没有安装GTK+,所以就不启用debugger GUI了。

0x03 Building and Installing Bochs

Configure好以后,常规的安装。

make
make install

安装完成后,可以加入环境变量一些内容

export BXSHARE="$HOME/opt/bochs/share/bochs"
export PATH="$PATH:$HOME/opt/bochs/bin"

Bochs的使用


因为在上面禁用了debuger GUI,所以使用bochs只能通过shell来进行了。使用《自己动手写操作系统》笔记中生成的软盘镜像来做一个系统来启动,它会产生一个输出Hello, OS World!。结果如下图:

Bochs 运行结果

在bochs的安装目录下,有share/doc/bochs/bochsrc-sample.txt这个配置文件模板,可以拷贝出来修改,目前先做一个配置文件如下:

############################################################### 
# Configuration file for Bochs(Linux) 
###############################################################

# filename of ROM images 
romimage: file=$BXSHARE/BIOS-bochs-latest 

# VGAROMIMAGE
# You now need to load a VGA ROM BIOS into C0000.
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest

# what disk images will be used 
floppya: 1_44=YourIMGPath/TINIX.IMG, status=inserted

# choose the boot disk. 
boot: floppy

# where do we send log messages?  
log: bochsout.txt

# disable the mouse
mouse: enabled=0 

# enable key mapping, using US layout as default.  注意map的路径
keyboard_mapping: enabled=0, map=YourBochsPath/keymaps/x11-pc-us.map  

# how much memory the emulated machine will have
megs: 32

在shell中运行bochs打开bochs

Bochs开始界面

选择2. Read options from...,然后输入自己刚才配置文件的位置,如我的就是/Volumes/ExtendsDisk/tmp/bochsrc.txt,加载配置文件成功后,选择6. Begin simulation开始模拟器,因为bochs是一个模拟器,并且会开始时下断点,我们在6后需要再次输入命令c,也就是continue来运行系统,如果正常,就会显示上面那张HelloWorld的图了。给出Bochs调试命令集合:

-*- Debugger control -*-
    help, q|quit|exit, set, instrument, show, trace, trace-reg,
    trace-mem, u|disasm, ldsym, slist
-*- Execution control -*-
    c|cont|continue, s|step, p|n|next, modebp, vmexitbp
-*- Breakpoint management -*-
    vb|vbreak, lb|lbreak, pb|pbreak|b|break, sb, sba, blist,
    bpe, bpd, d|del|delete, watch, unwatch
-*- CPU and memory contents -*-
    x, xp, setpmem, writemem, crc, info,
    r|reg|regs|registers, fp|fpu, mmx, sse, sreg, dreg, creg,
    page, set, ptime, print-stack, ?|calc
-*- Working with bochs param tree -*-
    show "param", restore

Bochs 调试命令

参考文献


  1. Bochs 官网
  2. http://stackoverflow.com/questions/1677324/compiling-bochs-on-mac-os-x-snow-leopard
  3. http://blog.163.com/xuanmingzhiyou@yeah/blog/static/142477676201322853624567/
  4. http://www.cnblogs.com/hongzg1982/articles/2111254.html
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值