Orange作者在书中有详细的介绍linux下环境如何搭建的文章,但是照着那个来也有可能不能够成功。可能版本也是对的,命令也是对的,但是虚拟机就是木有正常的打印界面出现啊,很伤感的。还是在windows下搭建一下吧,不过步骤和原理都是一样的。感谢小逸同学的大力支持和指导。
一、安装环境
1、安装bochs
下载Bochs 2.5.1.exe,安装。到安装目录下,如C:\Program Files\Bochs-2.5.1,寻找配置文件bochsrc.bxrc,将其修改成如下:(推断也可以使用其他的正确的不同命名的配置文件,然后启动bochs的时候自行load进来)
###############################################################
# 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
vgaromimage: file=VGABIOS-lgpl-latest
# what disk images will be used
floppya: 1_44=freedos.img, status=inserted
floppyb: 1_44=pm.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: a
# default config interface is textconfig.
#config_interface: textconfig
#config_interface: wx
#display_library: x
# other choices: win32 sdl wx carbon amigaos beos macintosh nogui rfb term svga
# where do we send log messages?
log: bochsout.txt
# disable the mouse, since DLX is text only
mouse: enabled=0
# enable key mapping, using US layout as default.
#
# NOTE: In Bochs 1.4, keyboard mapping is only 100% implemented on X windows.
# However, the key mapping tables are used in the paste function, so
# in the DLX Linux example I'm enabling keyboard_mapping so that paste
# will work. Cut&Paste is currently implemented on win32 and X windows only.
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-us.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-fr.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-de.map
#keyboard_mapping: enabled=1, map=$BXSHARE/keymaps/x11-pc-es.map
点击start,运行,会提示没有启动文件,下面准备启动文件(freedos.img)。
2、下载freedos.img
不过比较简单的是直接使用作者光盘里面的freedos.img 。然后将相应的源码文件制成的.com文件内容复制到freedos.img内。
3、安装编译器nasm
下载了一个win下面的基于命令行的nasm。进入相应目录,运行nasm pmtest1.asm -o pmtest1.com
成功之后会看到目录下生成.com文件。
4、安装winImage
有点困惑,linux下使用dd命令,直接在把东西写入img文件,即可。但是windows下如何呢?经小逸提醒,下载了一个winimage,运行了下,嘿,不错。
使用步骤:
选择文件--打开--选择freedos.img
然后直接将相应的文件pmtest1.com拖进来(一开始小逸说直接拖进来还纳闷,因为我没打开freedos.img,囧)。
成功写入之后的img文件内容如下:
二、运行
将freedos.img放入bochs的安装目录。
Ok,可以启动bochs了。
运行pmtest1.com 会看到屏幕的右边打印出一个字符令人激动的 “P”。
![](https://img-my.csdn.net/uploads/201301/13/1358076013_9874.png)