QEMU和FreeDOS使在Linux中运行旧的DOS程序变得容易传统的DOS操作系统支持许多优秀的应用程序:文字处理、电子表格、游戏和其他程序。但仅仅因为应用程序太旧并不意味着它没用。现在运行旧的DOS应用程序有很多原因。也许是从遗留的业务应用程序中提取报告,或者想玩经典的DOS游戏,或者只是因为您对“传统计算机”感到好奇。您不需要双引导系统来运行DOS程序。相反,您可以借助PC模拟器和FreeDOS在Linux中正确运行它们。FreeDOS是一个完整的、免费的、与DOS兼容的操作系统,您可以使用它来玩经典游戏、运行旧版商业软件或开发嵌入式系统。任何在MS-DOS中运行的程序也将在FreeDOS中运行。在那些“过去”的日子里,你把DOS作为计算机上的专属操作系统安装。然而,今天,它可以很容易地安装到运行在Linux上的虚拟机中。QEMU(QuickEMUlator的缩写)是一种开源虚拟机软件,可以在Linux中将DOS作为“来宾”操作系统运行。许多流行的Linux系统默认包含QEMU。通过以下四个步骤,可以很容易地使用QEMU和FreeDOS在Linux下运行一个老的DOS程序。第1步:设置虚拟磁盘您需要在QEMU中安装FreeDOS的位置,为此您需要一个虚拟C:驱动器。在DOS中,字母A:和B:分配给第一和第二个软盘驱动器,而C:是第一个硬盘驱动器。其他媒体,包括其他硬盘驱动器和CD-ROM驱动器,被指定为D:、E:等。在QEMU中,虚拟磁盘是一个映像文件。要初始化一个文件用作虚拟C:驱动器,请使用qemu-img命令。要创建大约200MB的图像文件,请键入:qemu-imgcreatedos.img200M200MB与现代计算机相比似乎很小,但在20世纪90年代,200MB已经非常大了。安装和运行DOS就足够了。第二步:QEMU选项不同于PC仿真系统VMware或VirtualBox,你需要通过QEMU命令添加每个虚拟机的组件来“构建”你的虚拟系统。尽管这看起来工作量很大,但实际上并不难。这些是我们在QEMU中用来引导FreeDOS的参数:<如果没有显示,请向左或向右滑动>qemu-system-i386QEMU可以模拟几个不同的系统,但是要引导到DOS,我们需要一个Intel兼容的CPU。为此,使用i386命令启动QEMU。-m16我喜欢定义一个使用16MB内存的虚拟机。它看起来很小,但在DOS下工作并不需要很多内存。在DOS时代,计算机使用16MB或8MB的内存是非常普遍的。-ken-us从技术上讲,不需要-k选项,因为QEMU将设置虚拟键盘以匹配您的真实键盘(在我的例子中,它是具有标准美国布局的英语键盘)。但我还是喜欢指定它。-rtcbase=localtime每个传统PC设备都有一个实时时钟(RTC),以便系统可以跟踪时间。我发现这是设置虚拟RTC以匹配您当地时间的最简单方法。-soundhwsb16,adlib,pcspk如果你需要声音,尤其是游戏,我更喜欢定义QEMU对SoundBlaster16声音硬件和AdLib音乐的支持。SoundBlaster16和AdLib是DOS时代非常常见的声音硬件。一些较旧的程序可能会使用PC扬声器发出声音;QEMU也可以模拟这一点。-devicecirrus-vga要使用图形,我喜欢模拟一个简单的VGA视频卡。CirrusVGA卡是当时比较常见的显卡,QEMU可以模拟。-displaygtk对于虚拟显示,我将QEMU设置为使用GTK工具包,它将虚拟系统放在自己的窗口中,并提供一个简单的菜单来控制虚拟机。-bootorder=你可以告诉QEMU从多个引导源引导虚拟机。要从软盘驱动器(在DOS机器上通常为A:)引导,请指定order=a。要从第一个硬盘驱动器(通常称为C:)引导,请使用order=c。或者使用order=d从CD-ROM驱动器(在DOS中通常指定为D:)。可以使用字母组合来指定特定的启动顺序,如order=dc表示先使用光驱,如果光驱中没有启动介质则使用硬盘。第3步:引导和安装FreeDOS现在QEMU已设置为运行虚拟机,我们需要一个DOS系统来在该虚拟机中安装和引导。FreeDOS很容易做到这一点。其最新版本是FreeDOS1.2,于2016年12月发布。从FreeDOS网站下载FreeDOS1.2发行版。FreeDOS1.2CD-ROM“标准”安装程序(FD12CD.iso)可以很好地与QEMU配合使用,因此我推荐使用该版本。安装FreeDOS很容易。首先,告诉QEMU使用CD-ROM映像并从中启动。请记住,第一个硬盘驱动器是C:驱动器,因此CD-ROM将显示为D:驱动器。qemu-system-i386-m16-ken-us-rtcbase=localtime-soundhwsb16,adlib-devicecirrus-vga-displaygtk-hdados.img-cdromFD12CD.iso-bootorder=d如下所示,您将在几分钟内安装好FreeDOS。开始FreeDOS安装选择键盘布局选择要安装的包安装后重新启动安装完成后,关闭窗口并退出QEMU。第4步:安装并运行DOS应用程序安装FreeDOS后,您可以在QEMU中运行各种DOS应用程序。您可以通过各种档案或其他站点在线找到旧的DOS程序。QEMU提供了一种在Linux上访问本地文件的简单方法。例如,想与QEMU共享dosfiles/文件夹。只需使用-drive选项告诉QEMU使用此文件夹作为虚拟FAT驱动器。QEMU会像访问硬盘一样访问这个文件夹。-drivefile=fat:rw:dosfiles/现在,您可以使用适当的选项启动QEMU,外加一个外部虚拟FAT驱动器:qemu-system-i386-m16-ken-us-rtcbase=localtime-soundhwsb16,adlib-devicecirrus-vga-displaygtk-hdados.img-drivefile=fat:rw:dosfiles/-bootorder=c一旦您启动到FreeDOS,您保存在D:驱动器上的任何文件都将保存到Linux上的dosfiles/文件夹中。这个文件可以很容易地直接从Linux读取;但是,必须注意,在启动QEMU后,不能从Linux中更改dosfiles/文件夹。当您启动QEMU时,QEMU会一次性建立一个虚拟FAT表,如果您在启动QEMU后在dosfiles/文件夹中添加或删除文件,模拟器可能会变得混乱。我使用QEMU来运行一些我最喜欢的DOS程序,比如As-Easy-As电子表格程序。这是1980年代和90年代非常流行的电子表格程序,它与今天的MicrosoftExcel和LibreOfficeCalc或更昂贵的旧式Lotus1-2-3电子表格程序做同样的工作。As-Easy-As和Lotus1-2-3都将数据保存为WKS文件,最新版本的MicrosoftExcel无法读取该文件,但根据兼容性,LibreOfficeCalc可以支持它。As-Easy-AsSpreadsheetProgram我也喜欢在QEMU中启动FreeDOS来玩一些最喜欢的DOS游戏,比如最初的Doom。这些老的DOS游戏玩起来还是很好玩的,现在在QEMU上运行的也很好。JungleCommander的DoomHereticJillKeenQEMU和FreeDOS使得在Linux上运行旧的DOS程序变得容易。将QEMU设置为虚拟机模拟器并安装FreeDOS后,您将能够在Linux上运行您最喜欢的经典DOS程序。所有图像均由FreeDOS.org提供。
