Sunday, January 11, 2009

bochs运行Linux 0.11

看赵垠博士的源码分析的书,知道了bochs。但他的书介绍的bochs安装全都是基于
Windows的,这看起来很怪异,分析Linux源码的工具,但主要介绍的平台还是
Windows,不过,可能是学生们更多使用Windows吧。
下载了源码,编译。
下载了linux0.11的开发版。http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-060625.zip.解压后,目录中有几个后缀为bxrc的文件,这些文件
在Windows中运行良好,但在Liinux中无法正常运行了。不过好在原理是一样的。
进入该目录,参考其bochs-hd.bxrc,修改了一个bochsrc。
然后在该目录运行bochs,看起来没有什么问题。但没有结果出来,而是一个类似
gdb的界面,没办法,只有按"n"意思是"next",单步运行了几百步,Linux0.11才算运行起来了
。下面是修改后的bochsrc文件
///////////////////////////////////////////////////////////
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
cpu: count=1, ips=10000000, reset_on_triple_fault=1
megs: 32
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
vga: extension=vbe
floppya: 1_44="bootimage-0.11-hd", status=inserted
floppyb: 1_44=diskb.img, status=inserted
ata0-master: type=disk, mode=flat, path="hdc-0.11.img", cylinders=121, heads=16, spt=63
boot: a
floppy_bootsig_check: disabled=0
log: bochsout.txt
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
debugger_log: -
parport1: enabled=1, file="parport.out"
vga_update_interval: 300000
keyboard_serial_delay: 250
keyboard_paste_delay: 100000
mouse: enabled=0
private_colormap: enabled=0
keyboard_mapping: enabled=0, map=
////////////////////////////////////////
下面是编译方法
///////////////////////////////////
在ubuntu 8.10下安装成功,分为以下四步:
一、准备工作
bochs是由C++编写的,我们要安装相应的编译环境
sudo apt-get install build-essential

如果要图形界面,
sudo apt-get install xorg-dev

安装bison,
sudo apt-get install bison
到bochs官方网站下载源码包bochs-2.3.7.tar.gz
解压产生文件夹bochs-2.3.7,生成目录/home/ubuntu/Desktop/bochs-2.3.7

二、configure
在目录/home/ubuntu/Desktop/bochs-2.3.7/下执行
./configure --with-x11 --enable-debugger --enable-disasm --enable-pci --enable-pcidev --enable-plugins --enable-ne2000 --enable-pnic
configure后的选项作为参考,你可以用./configure --help查看全部选项,bochs官方网站上有详细说明。

三、make
在运行make之前需要修改两个文件
第一个文件是/home/ubuntu/Desktop/bochs-2.3.7/bx_debug/symbols.cc
在97行之后加入代码如下,
using namespace std;

#ifdef __GNUC__ //修改
using namespace __gnu_cxx; //修改

1 comment:

  1. 呵呵,应该会赵炯博士,受王垠影响太大了。

    ReplyDelete