http://bochs.sourceforge.net/ bochs官网。关于bochs再也不累述。linux
我是在UBUNTU下用包管理软件apt-get装的bochs.命令ubuntu
apt-get install bochsapp
这是一个没有调试环境的安装,先感觉一下小成功的滋味。。呵呵框架
这样的安装后,在命令行下执行$bochs会跳出一个配置界面,表惧怕,这说安装成功啦。仔细阅读他的提示会发现是没有配置文件oop
(配置文件bochsrc,ROMIMAGE,VGAROMIMAGE。这些不解释。本身查)。你能够配置一个简单的bochsrc。内容以下:网站
1###############################################################
2 # Configuration file for Bochs
3 ###############################################################
4
5 # how much memory the emulated machine will have
6 megs: 64
7
8 # filename of ROM images
9 romimage: file=/usr/share/bochs/BIOS-bochs-latest
10
11 # what disk images will be used
12 floppya: 1_44=a.img, status=inserted
13
14 # choose the boot disk.
15 boot: floppy
16
17 # where do we send log messages?
18 # log: bochsout.txt
19
20 # disable the mouse
21 mouse: enabled=0
22
23 # enable key mapping, using US layout as default.google
这个文件至少可使bochs能共运行嘿嘿,由于网上高手都是安装后直接运行就行啦,但是小弟的就是没有。出现各类错误,,多是你的bochs没 找到配置文件,而你从网上复制的是比较长,专业,可是有的文件可能版本不一样,路径不一样,因此在启动时就会出现找不到的错误,这是个最简单的。不少都用的是 你安装软件的默认路径。关于配置文件的书写,最好的就是man bochsrc,标准教程.net
下面是一个启动文件,是《linux内核彻底剖析)第三章的例子,很简单的功能,命令行
*******************************************************************************************************************************************************debug
1!
2 !boot.s -- bootsect.s 的框架程序。用代码0x07替换msag中1字符,而后在屏幕第一行上显示
3 !
4
5 .globl begtext,begdata,begbss,endtext,enddata,endbss !全局标识符,供ld86连接使用
6 .text !正文段
7 begtext:
8 .data !数据段
9 begdata:
10 .bss !未初始化数据段
11 begbss:
12 .text !正文段开始
13 BOOTSEG = 0x7c0 !BIOS加载bootsect代码的原始段地址。
14
15
16 entry start !告知连接程序,程序从strat标号处开始执行
17
18 start:
19 jmpi go,BOOTSEG !段间跳转。BOOTSEG指出跳转段的地址,标号go是偏移地址
20 go: mov ax,cs !段寄存器cs值-->ax,用于初始化数据段寄存器ds和es
21 mov ds,ax
22 mov es,ax
23 mov [msg1+17],ah !0x07-->替换字符串1个点符号,喇叭会鸣一声
24 mov cx,#20 !共显示20个字符,包括回车换行符
25 mov dx,#0x1004 !字符串显示在屏幕第17行,第5列处
26 mov bx,#0x000c !字符显示属性(红色)
27 mov bp,#msg1 !指向要调用的字符串(中断调用要求)
28 mov ax,#0x1301 !写字符串并移动光标到串结尾处
29 int 0x10 !BIOS中断调用0x10,功能0x13,子功能01
30 loop0: jmp loop0 !死循环
31
32 msg1: .ascii "Loading system..." !调用BIOS中断显示的信息。共20个ASCII码字符。
33 .byte 13,10
34
35
36 .org 510 !表示之后语句从地址510(0x1FE)开始存放
37 .word 0xAA55 !有效引导扇区标志,供BIOS加载引导扇区使用。
38
39 .text
40 endtext:
41 .data
42 enddata:
43 .bss
44 endbss:
*************************************************************************************************************************************
编译过程:
$as86 -0 -a -o boot.o boot.s
$ld86 -0 -s -o boort boot.o
$dd bs=32 if =boot of=a.img skip=1
这样而后启动bochs能够看到屏幕上的“loading system"
程序的解释及编译过程下篇文章
¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
上面是简单的bochs安装与实验,安装成功很简单,可是不会带调试,要带调试要原码编译:
原本也不是多复杂
安装bochs:
而后到bochs官方网站下载源码包 bochs-2.4.6.tar.gz
解压此文件:
tar vxzf bochs-2.4.26tar.gz
cd bochs-2.4.2
./configure --enable-debugger --enable-disasm
make
sudo make install
但是ubuntu少装的东西真是很多(至少个人是)
sudo apt-get bulid-essional (若是之前安装过就免了)
sudo apt-get install xorg-dev
可是装着两个估计你看到的指望的场面的概率很小
个人还有一个gtk没有装等等。。。。
出现的调试错误直接把错误信息甩到google上。会找到答案。
望兄弟们一遍成功