OS篇-Bochs在Ubuntu下的安装教程
最近在看《操作系统真相还原》这本书,打算跟着做一个微型操作系统,就有了这篇教程
环境准备
安装软件
- 下载
wget https://udomain.dl.sourceforge.net/project/bochs/bochs/2.6.2/bochs-2.6.2.tar.gz
- 解压
tar -zxvf bochs-2.6.2.tar.gz
- 配置
./configure \
--prefix=/your_path/bochs \
--enable-debugger\
--enable-disasm \
--enable-iodebug \
--enable-x86-debugger \
--with-x \
--with-x11
解释
–prefix=/your_path/bochs 是用来指定 bochs 的安装目录,根据个人实际情况将 your_path 替换为自己待安装的路径。
–enable-debugger 打开 bochs 自己的调试器。
–enable-disasm 使 bochs 支持反汇编。
–enable-iodebug 启用 io 接口调试器。
–enable-x86-debugger 支持 x86 调试器。
–with-x 使用 x windows。
–with-x11 使用 x11 图形用户接口。
- make install
make install报错
x.cc:37:10: fatal error: X11/Xlib.h: No such file or directory #include <X11/Xlib.h> ^~~~~~~~~~~~
还报错
x.cc:42:10: fatal error: X11/extensions/Xrandr.h: No such file or directory #include <X11/extensions/Xrandr.h> ^~~~~~~~~~~~~~~~~~~~~~~~~
解决方法
sudo apt-get install libx11-dev ................. for X11/Xlib.h
sudo apt-get install mesa-common-dev........ for GL/glx.h
sudo apt-get install libglu1-mesa-dev ..... for GL/glu.h
sudo apt-get install libxrandr-dev ........... for X11/extensions/Xrandr.h
sudo apt-get install libxi-dev ................... for X11/extensions/XInput.h
配置软件
将安装目录下的配置文件bochs/share/doc/bochs/bochsrc-sample.txt
复制到当前目录
mv /home/mikey/bochs/share/doc/bochs/bochsrc-sample.txt ./bochsrc
查看配置文件
[work@localhost bochs]$ cat bochsrc
###############################################
# Configuration file for Bochs
###############################################
# 第一步,首先设置 Bochs 在运行过程中能够使用的内存,本例为 32MB。
# 关键字为:megs
megs: 32
# 第二步,设置对应真实机器的 BIOS 和 VGA BIOS。
# 对应两个关键字为:romimage 和 vgaromimage
romimage: file=/实际路径/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=/实际路径/bochs/share/bochs/VGABIOS-lgpl-latest
# 第三步,设置 Bochs 所使用的磁盘,软盘的关键字为 floppy。
# 若只有一个软盘,则使用 floppya 即可,若有多个,则为 floppya,floppyb...
#floppya: 1_44=a.img, status=inserted
# 第四步,选择启动盘符。
#boot: floppy
#默认从软盘启动,将其注释
boot: disk
#改为从硬盘启动。我们的任何代码都将直接写在硬盘上,所以不会再有读写软盘的操作。
# 第五步,设置日志文件的输出。
log: bochs.out
# 第六步,开启或关闭某些功能。
# 下面是关闭鼠标,并打开键盘。
mouse: enabled=0
keyboard_mapping: enabled=1,
map=/实际路径/bochs/share/bochs/keymaps/x11-pc-us.map
# 硬盘设置
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 下面的是增加的 bochs 对 gdb 的支持,这样 gdb 便可以远程连接到此机器的 1234 端口调试了
gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
###################配置文件结束#####################
测试开机
mikey@mikey:~/bochs/bin$ ./bochs
========================================================================
Bochs x86 Emulator 2.6.2
Built from SVN snapshot on May 26, 2013
Compiled on Feb 26 2021 at 11:34:31
========================