|
Bochs使用手记(1): 入门
1.去网上下载一个最新的:
-进入Bochs网站http://bochs.sourceforge.net/
-发现最新版本Current Release: Bochs 2.0.2
-其中可执行包BOCHS BINARIES如下:
All binaries include Bochs plus a 10 mb disk image of DLX Linux to get you started.
(1) Windows Installer for x86 machines (2.8meg), includes bochsdbg.exe with debugger enabled
(2) ZIP containing Windows binaries for x86 machines (2.8meg). Use the installer if you can.
(3) RPM Binary for all RPM-based Linux x86 Distributions (3.3m)
(4) DMG file for MacOSX (2.6m)
(5) (coming soon) SIT file with binaries for MacOS 9
(6) (coming soon) PKG file for BeOS (x86)
-我的机器环境是Windows98,就下载上面的(1)和(2)吧,我也不知道这两个有什么不同:
(1) Bochs-2.0.2.exe
(2) bochs-2.0.2.win32-bin.zip
2.安装
-就用第(1)个安装吧,点击运行Bochs-2.0.2.exe,没什么障碍,NEXT搞定
-安装完后在“开始菜单”中有了[Bochs 2.0.2]程序项,其中有个可执行程序,名字也是Bochs 2.0.2,这就是我的模拟器了!
3.形成配置文件bochsrc.txt
-注:安装完后我是直接去运行Bochs 2.0.2,结果碰壁,发现还需要有配置文件bochsrc.txt才行
-打开Bochs 2.0.2的安装目录:C:\Program Files\Bochs-2.0.2, 发现有个bochsrc-sample.txt, 显然是样板文件,将它复制一份后改名为bochsrc.txt文件。
-打开bochsrc.txt看看,其中引用了几个BIOS文件:如romimage: file=bios/BIOS-bochs-latest, address=0xf0000等, 从安装目录看,BIOS-bochs-latest等文件都有,但并没有子目录bios,因此将bochsrc.txt中“bios/”去掉即可。
4.运行Bochs 2.0.2
-弹出一个DOS窗口,让我选[5]Begin simulation,好吧,回车,开始模拟
-弹出一个“Bochs for windows”窗口,应该就是模拟器的屏幕吧! 看上面的图标,有软盘、CDROM、Reset按钮、电源图标等,显然就是一台虚拟PC了,这就是所谓"机中机"哦.
--------------------------------------------------------------------------------
Bochs使用手记(2): 实验freOS boot 0.0.1a
by FreOS制作组:老兵, 2003.4.11
1.目的:
-想用刚装好的bochs玩点东西看看
-既然bochs是台虚拟机,我想用它的软盘启动,运行一个引导程序: freOS boot 0.0.1a
2.获得软盘引导代码并放到指定路径下
-附件中的laobing.com是freOS boot 0.0.1a的二进制码文件(源代码在http://free-os.cn.gs/,用nasm汇编后就是它了)
-在bochs安装目录C:\Program Files\Bochs-2.0.2下建一子目录freos, 将laobing.com放在freos下就可以了.
3.修改配置文件bochsrc.txt中的相关参数
-打开bochsrc.txt,注意看前面不带#的行就是了(带#的是注释掉的行)
-找到floppya: 1_44=/dev/fd0, status=inserted,这是对软盘A的描述,其中的路径/dev/fd0应该指向软盘映象文件,因此改为:floppya: 1_44=freos/laobing.com, status=inserted
-找到ata0-master: type=disk, path="30M.sample", cylinders=615, heads=6, spt=17,这是对硬盘的描述,其中30M.sample可能是硬盘映象,先不管它,把该行屏蔽掉,就是在前面加#号啦!
-继续,找到boot: disk,原来缺省引导是从硬盘开始的,使劲改为boot: floppy,我要从软盘引导!
-OK!
4.运行Bochs 2.0.2
-弹出一个DOS窗口,让我选[5]Begin simulation,好吧,回车,开始模拟
-弹出模拟器屏幕窗口,看看里面显示什么:五星红旗,汉字,欢迎进入freOS...
-OK!关电下机(注意是模拟器上的电源按钮哦!不至于去按...)
--------------------------------------------------------------------------------
Bochs使用手记(3): 实验freOS boot 0.0.2
by FreOS制作组:老兵, 2003.4.11
1. freOS boot 0.0.2简介:
-freOS boot 0.0.2包括一个boot引导程序、一个KERNEL内核程序,其中引导程序通过FAT12文件系统载入KERNEL程序文件并运行它,KERNEL程序则在屏幕上输出3个动态计数器以展示多任务功能.
-freOS boot 0.0.2源码在http://free-os.cn.gs/,包括bo ... 直接拷入软盘.
-这样制作好的软盘就是一个包含freOS boot 0.0.2的OS示例,用它引导机器可以看到3个不断计数的数值。现在我想做的是在bochs的软盘上引导执行!
2. 获得包含freOS boot 0.0.2的软盘映象文件:
-将做好的软盘内容写到一个软盘映象文件中,这需要一个工具,在bochs中有个写磁盘映象的东西bximage.exe,我用它总是失败,生成映象奇怪,好象根本没有读盘,而且生成的映象文件每次都不一样,第一扇区也不是BOOT.BIN代码。所以按Frank的推荐,我下载了winimage来做这事,结果表明winimage十分强大可靠。最后生成的软盘映象文件取名为boot002.ima
-如果不想这么麻烦,附件中直接包含有freOS boot 0.0.2的软盘映象文件:boot002.ima
3. 修改配置文件bochsrc.txt中的相关参数
-将获得的boot002.ima放到bochs安装目录的freos子目录下
-打开bochsrc.txt,找到floppya: 1_44=/freos/laobing.com, status=inserted,将其中的软盘映象文件改为freos/boot002.ima:floppya: 1_44=freos/boot002.ima, status=inserted
4.运行Bochs 2.0.2
-弹出一个DOS窗口,让我选[5]Begin simulation,好吧,回车,开始模拟
-弹出模拟器屏幕窗口,看看里面显示什么:
VGA BIOS - Version 2.40
Copyright (C) 1990-2000 Elpin Systems, Inc.
All rights reserved.
0170
~~~~只有这一个计数器在动态计数!可能是由于bochs是模拟器不支持多任务?没有3个计数器
Licensed for use with bochs, courtesy of MandrakeSoft.
For information on this or other VGA development products, contact
Elpin Systems at: (800) 723-9038 or http://www.elpin.com/
Bochs BIOS, 1 cpu, $Revision: 1.85.2.1 $ $Date: 2003/01/16 21:58:42 $
Booting from Floppy...
---------------------以下是freOS boot 0.0.2显示的引导信息
Welcome to Freos:
Loading Dir:
..............
Loading FAT:
..................
下面就是显示计数器,由于指定了显示位置坐标,加上没有清屏,所以就在上面了
-OK!关电下机(注意是模拟器上的电源按钮哦!不至于去按...)
--------------------------------------------------------------------------------
Bochs使用手记(4): 实战完整操作系统MS-DOS 7.0
by FreOS制作组:老兵, 2003.4.11
1. 简介:
-前面我们引导的软盘都是简单的OS实验代码,不是完整的OS.
-完整的OS至少要有包括一个Shell,这样用户可在其中输入命令.
-我们就用Window98的基础:MS-DOS 7.0作实验吧.
2. 获得包含MS-DOS 7.0的软盘映象文件:
-准备一个软盘,在Windows下格式化(我就用上次那个包含FreOS boot 0.0.2的软盘,能省则省)
-在Windows98的DOS窗口中执行命令:>sys a: ,将Windows98的基础系统拷到软盘上,这时可看到软盘上有以下文件:
C:\WINDOWS>dir a:/a
Volume in drive A has no label
Volume Serial Number is FFFF-FFFF
Directory of A:\
KERNEL BIN .....................471 04-07-03 12:11 kernel.bin
IO SYS ........................224,150 05-05-99 22:22 IO.SYS
DRVSPACE BIN ..........68,871 05-05-99 22:22 DRVSPACE.BIN
MSDOS SYS ..........................6 04-11-03 17:23 MSDOS.SYS
COMMAND COM ........94,292 05-05-99 22:22 COMMAND.COM
5 file(s) 387,790 bytes
0 dir(s) 1,068,544 bytes free
其中KERNEL.BIN是原来留在软盘上的,在这里没用,其余都是系统文件,这个软盘现在就是一个完整的OS系统盘了
-下面将做好的软盘内容写到一个软盘映象文件中,使用winimage来做这事吧,最后生成的软盘映象文件取名为win98.ima
-如果不想这么麻烦,附件中直接包含有MS-DOS 7.0的软盘映象文件:win98.ima
3. 修改配置文件bochsrc.txt中的相关参数
-将获得的win98.ima放到bochs安装目录的freos子目录下
-打开bochsrc.txt,找到floppya: 1_44=/freos/boot002.ima, status=inserted,将其中的软盘映象文件改为freos/boot002.ima:floppya: 1_44=freos/win98.ima, status=inserted
4.运行Bochs 2.0.2
-弹出一个DOS窗口,让我选[5]Begin simulation,好吧,回车,开始模拟
-弹出模拟器屏幕窗口,看看里面显示什么:
VGA BIOS - Version 2.40
Copyright (C) 1990-2000 Elpin Systems, Inc.
All rights reserved.
Licensed for use with bochs, courtesy of MandrakeSoft.
For information on this or other VGA development products, contact
Elpin Systems at: (800) 723-9038 or http://www.elpin.com/
Bochs BIOS, 1 cpu, $Revision: 1.85.2.1 $ $Date: 2003/01/16 21:58:42 $
Booting from Floppy...
---------------------------呵呵,下面就进入Windows98的基础系统MS-DOS 7.0了:
Starting Windows 98...
Microsoft(R) Windows 98
(C)Copyright Microsoft Corp 1981-1999.
A:\>
---------------------------下面可输入命令试试,跟真的没有什么差别啊
A:\>ver
Windows 98 [Version 4.10.2222]
A:\>dir/a
Volume in drive A has no label
Volume Serial Number is FFFF-FFFF
Directory of A:\
KERNEL BIN .....................471 04-07-03 12:11
IO SYS ........................224,150 05-05-99 22:22
DRVSPACE BIN ..........68,871 05-05-99 22:22
MSDOS SYS ..........................6 04-11-03 17:23
COMMAND COM .........94,292 05-05-99 22:22
5 file(s) 387,790 bytes
0 dir(s) 1,068,544 bytes free
A:\>
------------------看来bochs名不虚传,是个好东西,下面建个子目录看看
A:\>mkdir a
A:\>dir
Volume in drive A has no label
Volume Serial Number is FFFF-FFFF
Directory of A:\
KERNEL BIN ................471 04-07-03 12:11
COMMAND COM ....94,292 05-05-99 22:22
A <DIR> .................................04-11-03 19:06
2 file(s) 94,763 bytes
1 dir(s) 1,068,032 bytes free
A:\>
------------------将KERNEL.BIN复制到该子目录下去试试
A:\>copy kernel.bin a
1 file(s) copied
A:\>cd a
A:\A>dir
Volume in drive A has no label
Volume Serial Number is FFFF-FFFF
Directory of A:\A
. <DIR> .......................04-11-03 19:06
.. <DIR> ......................04-11-03 19:06
KERNEL BIN .....471 04-07-03 12:11
1 file(s) 471 bytes
2 dir(s) 1,067,520 bytes free
A:\A>
------------------不错不错, 下次我们放个程序上去执行一下看
-OK!关电下机(注意是模拟器上的电源按钮哦!不至于去按...)
-注意再次进入就会发现,刚刚建的子目录和复制的文件都在,说明所有操作都回写进了软盘映象文件,就正是所需要的哦,不过要是想从外面搞个文件进去恐怕只有通过重新打包映象文件了! |
|