实验内容
1.安装vmware虚拟机(建议安装15.1+版本),并在虚拟机中安装ubuntu系统
2.下载bochs源码,编译并安装bochs环境
3.使用bochs自带工具bximage创建虚拟软驱
4.在ubuntu中下载nasm
5.阅读、编译boot.asm,并反汇编阅读
6.修改bochsrc,运行并调试第一个程序
注意事项
1.bochs下载:http://bochs.sourceforge.net/getcurrent.html 2.bochs编译注意事项:
可能需要安装build-essential等,可在编译过程中发现
3.修改bochsrc中部分内容:
修改romimage 和vgaromimage对应的文件位置,以实际安装位置为准,注释掉keyboard_mapping一行
步骤
1.在VMware上安装Ubuntu开发环境
2.把bochs的源码移到安装好的Ubuntu虚拟机中,并在Ubuntu里编译安装bochs环境
3.使用bochs自带的bximage工具生成虚拟软盘:输入fd后生成软盘映像a.img
4.在Ubuntu中下载nasm
5.使用nasm将汇编程序boot.asm编译:
nasm boot.asm -o boot.bin
6.使用dd命令将引导扇区写进软盘:
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
7.编写bochscr文件
8.启动
bochs -f bochsrc
9.调试
具体实现
编译并安装bochs环境
1.将bochs源码复制到ubuntu后解压:
tar zxvf bochs-2.6.9.tar.gz
2.进入bochs-2.6.9目录,运行configure脚本:
./configure –enable-debugger –enable-disasm
(–enable-debugger和 –enable-disasm 表示开启调试和反汇编功能)
3.第2步正确运行后,会产生一个Makefile文件,于是可以编译:
make
4.安装:
sudo make install
这一步出现了两个错误:
无法获取“./bochsdbg”的文件状态(stat):没有那个文件或目录
make;[install_bin] 错误1(忽略)
解决方法:在make之后将bochs拷贝一份,命名为bochsdbgmkdir: 无法创建目录”/usr/local/share/bochs/keymaps”: 文件已存在
解决方法:以超级用户进入/usr/local/share/bochs/,执行rm -r keymaps命令
安装成功:
使用bochs
1.在Ubuntu中下载nasm:
sudo apt-get install nasm
2.使用bochs自带的bximage工具生成虚拟软盘;
3.使用nasm将汇编程序boot.asm编译:
nasm boot.asm -o boot.bin
4.使用dd命令将引导扇区写进软盘:
dd if=boot.bin of=a.img bs=512 count=1 conv=notrunc
如果不用参数“conv=notrunc”,软盘映像文件“a.img”就会被截断。
5.编写bochscr配置文件,其中”romimage”和”vgaromimage”指定的文件对应真实机器的BIOS和VDA BIOS.
6.启动
bochs -f bochsrc
7.调试