调试操作系统-bochs使用入门

调试操作系统-bochs使用入门

1.安装bochs

安装bochs之前的准备:

sudo apt-get install build-essential
sudo apt-get install libgtk2.0-dev

sudo apt-get install libc6-dev

命令行安装

sudo apt-get install vgabios bochs bochs-x bximage

可直接安装bochs、vgabios、boch-x、bximage,但这个版本的bochs并没有调试功能,更好的方法还是通过bochs源码安装。

下载最新版本的bochs源码

http://bochs.sourceforge.net/

找到bochs的SourceForge下载页面并进入。

Windows用户选择win32或win64的zip压缩包或exe文件,LInux用户选择.tar.gz文件。

 

若下载的版本是bochs-2.6.9.tar.gz,安装过程大致如下:

$ tar zxvf bochs-2.6.9.tar.gz 解压缩
$ cd bochs-2.6.9 打开文件夹
$ ./configure --enable-debugger --enable-disasm 开启调试功能
$ make 此步骤需要等待数十秒
$ sudo make install

make过程中可能遇到的错误

  1. 出现文件未找到的情况,请确保电脑上已安装了本文开始提到的软件。

  2. 遇到“usr/bin/ld: gui/libgui.a(gtk_enh_dbg_osdep.o): undefined reference to symbol 'pthread_create@@GLIBC_2.1'
    //lib/i386-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line”  类似的提示,只需要在bochs-2.6.9文件夹中的Makefile中的LIBS后面添加-lpthread,然后重新make即可。

  3. 遇到“/usr/bin/ld: gui/libgui.a(x.o): undefined reference to symbol 'XSetForeground'
    /usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status”  类似的提示,可以考虑在执行configure时添加参数LIBS='-lX11',即

./configure --enable-debugger --enable-disasm --enable-readline LIBS='-lX11'

sudo make install过程中可能遇到的错误

  1. 在此再次强调,遇到问题请首先检查本文开始提到的软件是否已经安装,不少错误都是由此导致的。

  2. 遇到“install: 无法获取"./bochsdbg" 的文件状态(stat): 没有该文件或目录”,需要在make后,将bochs拷贝一份,命名为bochsdbg。在bochs-2.6.9文件夹下打开命令行,键入cp bochs bochsdbg即可。

2.配置文件

bochs需要配置文件描述硬件信息,配置文件的命名是任意的,bochs默认的配置文件名为bochsrc.txt。

 

# 虚拟机内存大小

msg:32

 

# 对应真实机器的BIOS和VGA BIOS
romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/bochs/VGABIOS-lgpl-latest

 

# 设置bochs使用的磁盘:软盘使用关键字floppya,硬盘使用disk
# 若有多个软盘,可写floppya,floppyb;例如:
floppya: 1_44=a.img, status=inserted

 

#设定启动磁盘

boot:floppy

# 或者是 boot:disk

 

#目录信息地址

log:/tmp/bochsout.txt

 

#鼠标是否可用

mouse:enabled=0

 

#键盘快捷键是否可用,使用美国键盘布局(US layout)作为默认值
keyboard_mapping:enable=1,map=/usr/share/bochs/keymaps/x11-pc-us.map

 

ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14

#这一句是根据bximage生成的,后面会解释。
ata0-master: type=disk, path="/home/dante/workspace/os/hd60M.img", mode=flat, cylinders=121, heads=16, spt=63

3.制作虚拟磁盘

使用bximage可制作虚拟硬盘。不用一次键入一整条语句。可直接在命令行中键入“bximage”,然后根据bximage程序的提示制作镜像。

 

在命令行中的bximage命令的第一个参数:hd或fd

hd 硬盘镜像

fd 软盘镜像

 

如果选择硬盘镜像:

第二个参数:flat、sparse或growing,默认flat

第三个参数键入硬盘大小(MB)

第四个参数键入镜像文件名称

 

如果选择软盘镜像:

第二个参数选择软盘尺寸(英寸),默认1.44

第三个参数键入镜像文件名称

4.程序写入磁盘

if是输入文件,由代码汇编生成的二进制文件;of是输出文件,即上一步生成的虚拟磁盘。

如果只有bootsect一个程序,键入以下这行代码即可。

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

5.启动虚拟机

bochsrc.txt是bochs默认的配置文件名称。

命令行键入

$ bochs -f bochsrc.txt

即可启动。

参考文献

http://blog.csdn.net/zhaodedong/article/details/51082128

http://blog.csdn.net/trochiluses/article/details/8970874

http://www.voidcn.com/blog/cloudblaze/article/p-6227296.html

https://my.oschina.net/unclegeek/blog/56095

https://www.cnblogs.com/JohnShao/archive/2011/10/23/2221565.html

 


你可能感兴趣的:(操作系统)