出处:http://qbar.tech.qq.com/spunkmars/226.htm
你在windows中开一个窗口,安装和使用linux,dos系统。这就是虚拟机。
windowsxp下bochs+freedos运行游戏截图
虚拟机有哪些?
商业的有VMware和虚拟pc,免费的有qume,bochs,虚拟完整大型的系统时使用VMware的速度会快一点,但如果你只想试一些只有几兆几十兆的小系统,bochs显然很方便。
bochs是什么?
bochs是一个可以虚拟物理计算机的软件,类似虚拟PC,不过它是自由软件。据说很不错,很多人用它来测试操作系统,是制作操作系统的常用软件,个人也可以用它来实现在一台电脑上实现多系统同时运行,比如在Windows上开一个窗口运行linux操作系统。
下载安装bochs?
bochs x86 emulator0.2.6:http://software.lupaworld.com/search.php?keyword=bochs
我在一台WindowsXP上下载了bochs的windows版本,安装时可以选择是否安装用于演示的一个小型的linux操作系统,只有10M,我选择了安装。
使用bochs自带的linux系统
安装好后,桌面上生成了名为“Linux Demo in Bochs 2.2.6”的快捷方式,点击它就可以直接在bochs中运行附带安装的linux操作系统。
这个小系统叫DLX linux demo,只有10M,不知道有什么样的功能。
很快就启动了,提示登录dlx login:,键入:
root
出现dlx:~#
就登陆进了DLX,现在可以试试一些简单有趣的功能了。
ls
目录下什么也没有,可以先建几个目录和文件试试。
mkdir personal
现在ls一下,就可以看到目录下有个名为personal的目录了,并且它还给目录加了/。
cat >test
this is a test!
按Ctrl+D结束输入,就在目录下建了一个名为test的文件,内容为"this is a test!"
现在ls一下,就可以看到一个personal目录和一个test文件了。
这个小东西还有vi编辑器,可以使用命令:
vi
进入编辑器,不过可能它是一个真正的vi,不是vim,因为我用vim命令,提示bash找不到命令。
其它很多实用程序都是可用的,如sort,grep等,可以用来在windows学习unix/linux,更可以安装一个完整的系统试试。
配置实例
文件介绍:
安装后进入目录,可以看到如下以几重要的文件:
bochs.exe:主程序,模拟器;
bochsdbg.exe:调试器;
bximage.exe:用于创建虚拟文件,如虚拟硬盘,虚拟软盘。
bochsrc-sample.txt:配置bochsrc.txt的示例文件,带#号的是注释掉的行。
配置文件实例:
打开主程序,会有一个文字的配置向导,但是手工去编辑一下配置文件和路径,或许会更方便好用。
你如果用过VMware,可以回忆一下,它在创建虚拟机时都需要创建哪些东西?如果你没用过,也可以试想一下,安装一个操作系统,需要哪些东西。是的,内存,硬盘等等,这些是必需的,需要在配置文件里表现出来。
目录下有个bochsrc-sample.txt文件,这相当于一篇教程,你也可以通过修改它来创建配置文件。不过太长了,如果你不愿意看,可以跟我来dlxlinux目录下,这是bochs自带的已经配置好的虚拟机,并安装了操作系统。
dlxlinux目录下有个bochsrc.bxrc(bochsrc)文件,双击它可以运行dlxlinux操作系统,当然是在一个窗口下运行。你可以右击编辑它,看看它里面的内容,这可是一篇完整的配置文件。
###############################################################
# bochsrc.txt file for DLX Linux disk image.
###############################################################
# how much memory the emulated machine will have
megs: 32
# filename of ROM images
romimage: file=../BIOS-bochs-latest, address=0xf0000
vgaromimage: file=../VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17
# choose the boot disk.
boot: c
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since DLX is text only
mouse: enabled=0
以上就是该文件的部分内容,其它部分都是加了#号注释的,可以忽略不计。我们就对上面的内容作分析:
# how much memory the emulated machine will have
megs: 32
从#后的注释可以看出megs:32是指给虚拟机分配32M的内存,你可以很容易的修改它,比如改为16,128等。
# filename of ROM images
romimage: file=../BIOS-bochs-latest, address=0xf0000
vgaromimage: file=../VGABIOS-lgpl-latest
这里设置了模拟bios文件的位置,../表示父目录,即是bochs安装目录下。
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
这是设置要使用的软盘驱动器。
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="hd10meg.img", cylinders=306, heads=4, spt=17
上面设置了硬盘。
硬盘怎么来的?bochs自带了创建虚拟硬盘的工具bximage.exe,在安装目录下,可以双击运行它,用它创建一个虚拟硬盘,分配一定的空间给虚 拟机。会问你几个问题,方括号里给了默认值,你可以更改,注意最后一步要分配多少空间给它,默认只有10M,可能一般的操作系统都装不下的,你可以根据需 要配置。
配置好之后,它会有一段代码生成,如ata0-master: type=disk, path="hd10meg.img",
cylinders=306, heads=4, spt=17
已经自动复制了,你只要把它加到配置文件里就行了,现在我们的虚拟机就有了硬盘。
# choose the boot disk.
boot: c
这是选择启动盘,c表示从“硬盘”启动,这个可是指我们的虚拟硬盘。
# where do we send log messages?
log: bochsout.txt
这个可以不要,是日志文件。
# disable the mouse, since DLX is text only
mouse: enabled=0
是否要鼠标。
修改配置实例,安装自己的系统
这是对于一个已经安装好的系统的配置文件,如何配置让bochs能够安装操作系统呢?
只要稍微修改一下上面的配置就可以了。先在安装目录下建一个文件夹,并将配置文件和虚拟硬盘和下载的操作系统(iso文件等)等文件放在里面。
修改配置文件,加入光驱和从光驱启动:
添加:ata0-slave: type=cdrom, path="操作系统文件名.iso", status=inserted
修改:boot: cdrom
最后一点,如果你用文本编辑器创建配置文件,那么编辑好之后,你要把它另存为.bxrc,然后双击你的配置文件就可以运行虚拟机了。
现在就可以从iso文件安装操作系统到虚拟硬盘了。
上面是我在bochs从iso启动freedos的画面:
bochs+freedos+dos游戏
bochs在上篇介绍过了,这是我安装freedos时的配置:
在bochs安装目录下新建文件夹Freedos,建一个虚拟硬盘fd.img,将它与配置文件和freedos安装镜像文件放在Freedos文件夹下,配置文件如下
# how much memory the emulated machine will have
megs: 16
# what disk images will be used
floppya: 1_44=floppya.img, status=inserted
floppyb: 1_44=floppyb.img, status=inserted
ata0-slave: type=cdrom, path="fdbasecd.iso", status=inserted
# filename of ROM images
romimage: file=../BIOS-bochs-latest, address=0xf0000
vgaromimage: file=../VGABIOS-lgpl-latest
# hard disk
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path="fd.img", mode=flat, cylinders=101, heads=16, spt=63
# choose the boot disk.
boot: cdrom
# where do we send log messages?
log: bochsout.txt
mouse: enabled=0
安装完成后将boot:cdrom改成boot:c.
游戏:
到了dos下才发现原来linux那么强,有那么多好用的命令和实用程序,现在突然面对dos的黑屏,手足无措。试试Edit,真是很简陋的编辑器,也不喜欢难看的绿色。还是试试游戏吧。
首先遇到的麻烦是,怎么样将游戏文件“弄到”bochs的虚拟硬盘中去,bochs虚拟的硬盘是一个img文件,是不能直接向里面加东西的,在bochs+freedos中也貌似无法访问windowsxp的硬盘。
这里我们使用winimage软件,一般用它制作软盘镜像的,也可以用来编辑img文件。
我去下载好《轩辕剑1》游戏(因为体积比较小),先进入bochs freedos,新建一个文件夹用于放置游戏文件:md swd
打开winimage软件,编辑fd.img文件,就是freedos用的硬盘镜像文件,注意,打开时要关闭freedos。然后用inject按钮将下载的游戏文件全部导入到swd目录下,保存后退出。
现在重开bochs freedos:
cd swd
play
下面是我的截图,还不错吧。