本文主要是介绍【操作系统真象还原】01 Ubuntu环境下配置bochs和nasm,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
开始学习《操作系统真象还原》这本书,记录一下学习过程。
配置 nasm
nasm 简介
nasm 是一个年轻、开源、免费的汇编器。
安装 nasm
sudo apt install nasm
配置 bochs
选择自行编译 bochs 源码来进行安装。
下载 bochs 源码
下载链接: bochs下载链接
选择下载压缩包: bochs-2.6.1.tar.gz
解压
tar zxvf bochs-2.6.1.tar.gz
生成 MakeFile
bochs有不同的调试方式,可编译成不同的版本。
下面两个任选一个版本安装。
书上推荐使用的是 gdb调试版。但介绍 bochs 调试方法时,用的却是 bochs 提供的debugger。所以我两个版本都有安装。
注意:下面的命令中 --prefix
参数中的 path
需要更换为你想要的安装路径。
生成使用 bochs 提供的debugger的版本
cd bochs-2.6.1
./configure --prefix=path/bochsTwo --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11
生成使用 gdb 进行调试的版本
cd bochs-2.6.1
./configure --prefix=path/bochsTwo --enable-gdb-stub --enable-disasm --enable-iodebug --enable-x86-debugger --with-x --with-x11
编译
在终端中输入 make
,回车。
可以看见开始编译。
可能会发生的错误
① 缺少头文件 <gtk/gtk.h>
解决方法:sudo apt-get install libgtk2.0-dev
② 缺少 pthread
引用
解决方法:在生成的MakeFile文件中的大概93行,LIBS=...
最后加上-lpthread
。
安装
make install
编写 bochs 配置文件
我的配置 (path需要替换)
:
# bochs配置文件
# bochsrc.diskmegs: 32romimage: file=path/bochs/share/bochs/BIOS-bochs-latest
vgaromimage: file=path/bochs/share/bochs/VGABIOS-lgpl-latestboot: disklog: bochs.outmouse: enabled=0
keyboard_mapping: enabled=1, map=path/bochs/share/bochs/keymaps/x11-pc-us.map
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
# 若使用 gdb 调试,则取消下一行的注释
#gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0
将配置文件放入 path/bochs/bin
目录中。
制作镜像
cd bochs/bin
./bximage -hd -mode="flat" -size=60 -q hd60M.img
将箭头所指输出添加到你的配置文件中。
开始模拟
cd bochs/bin
./bochs -f bochsrc.disk
选择默认选项 6 开始模拟。因为还没有编写MBR,所以会出现以下界面:
这篇关于【操作系统真象还原】01 Ubuntu环境下配置bochs和nasm的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!