您的位置首页>企业动态>

如何在 Linux 中运行 DOS 程序!

导读 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解如何在 Linux 中运行 DOS 程序!问题。传统的DOS操作系统支持很多优秀的应用:

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解如何在 Linux 中运行 DOS 程序!问题。

传统的DOS操作系统支持很多优秀的应用:文字处理、电子表格、游戏等程序。但是应用程序太旧并不意味着它没有用。

今天运行一个旧的DOS应用程序有很多原因。也许是从遗留的业务应用中提取报表,或者是玩一个经典的DOS游戏,或者只是因为对“传统电脑”好奇。运行DOS程序不需要双引导系统。相反,你可以在电脑模拟器和自由操作系统的帮助下,在Linux中正确运行它们。

FreeDOS是一个完整、免费且兼容DOS的操作系统。你可以用它来玩经典游戏,运行旧的商业软件或者开发嵌入式系统。任何在MS-DOS下工作的程序也可以在FreeDOS下运行。

在那些“过去的时代”,你在电脑上安装了DOS作为专属操作系统。如今,它可以很容易地安装在运行在Linux上的虚拟机中。QEMU(Quick EMUlator的缩写)是一个开源的虚拟机软件,可以在Linux中用“来宾”操作系统运行DOS。默认情况下,许多流行的Linux系统都包含QEMU。

通过以下四个步骤,使用QEMU和FreeDOS很容易在Linux下运行一个旧的DOS程序。

步骤1:设置虚拟磁盘

你需要一个在QEMU中安装FreeDOS的地方,所以你需要一个虚拟的C:驱动。在DOS下,字母A:和B:被分配给第一个和第二个软盘驱动器,而C:是第一个硬盘驱动器。其他介质,包括其他硬盘和光驱,依次分配D:E:等。

在QEMU中,虚拟磁盘是一个镜像文件。要初始化用作虚拟C:驱动器的文件,请使用qemu-img命令。要创建大约200 MB的图像文件,您可以键入:

qemu-img create dos.img 200M

与现代计算机相比,200MB看起来很小,但早在20世纪90年代,200MB就已经很大了。安装运行DOS就够了。

步骤2: QEMU选项

与PC模拟系统VMware或VirtualBox不同,您需要通过QEMU命令添加每个虚拟机的组件来“构建”您的虚拟系统。虽然这看起来很费力,但实际上并不难。这些是我们在QEMU中用来引导FreeDOS的参数:

Qemu-system-i386QEMU可以模拟几个不同的系统,但是要引导到DOS,我们需要一个英特尔兼容的CPU。为此,使用i386命令启动QEMU。-m 16我喜欢定义一个使用16MB内存的虚拟机。它看起来很小,但DOS不需要太多内存就能工作。在DOS时代,电脑使用16MB或8MB内存的情况非常普遍。-k en-US从技术上来说,这个-k选项是不必要的,因为QEMU会设置一个虚拟键盘来匹配你的真实键盘(在我的情况下,是标准US布局的英文键盘)。但我还是喜欢指定。-rtc base=localtime每个传统的PC设备都有一个实时时钟(rtc),以便系统可以跟踪时间。我发现设置虚拟RTC以匹配您的本地时间是最简单的方法。-soundhw sb16,adlib,pcspk如果你需要声音,尤其是玩游戏,我更喜欢定义QEMU来支持SoundBlaster 16声音硬件和AdLib音乐。SoundBlaster 16和AdLib是DOS时代非常常见的声音硬件。一些旧程序可能使用电脑扬声器发出声音;QEMU也可以模拟这一点。-设备卷云-vga使用图像,我喜欢模拟一个简单的vga显卡。卷云VGA卡是当时比较常见的显卡,QEMU可以模拟。-display gtk对于虚拟显示,我设置QEMU使用gtk工具包,可以将虚拟系统放在自己的窗口中,并提供简单的菜单来控制虚拟机。-引导顺序=您可以告诉QEMU从多个引导源引导虚拟机。从软盘驱动器引导(一般是DOS机中的A:

)指定order=a。 从第一个硬盘驱动器引导(一般称为 C:) 使用 order=c。 或者去从一个 CD-ROM 驱动器(在 DOS 中经常分配为 D: ) 使用 order=d。 你可以使用组合字母去指定一个特定的引导顺序, 比如 order=dc 去第一个使用 CD-ROM 驱动器,如果 CD-ROM 驱动器中没有引导介质,然后使用硬盘驱动器。

第 3 步: 引导和安装 FreeDOS

现在 QEMU 已经设置好运行虚拟机,我们需要一个 DOS 系统来在那台虚拟机中安装和引导。 FreeDOS 做这个很容易。它的最新版本是 FreeDOS 1.2, 发行于 2016 年 12 月。

从 FreeDOS 网站上下载 FreeDOS 1.2 的发行版。 FreeDOS 1.2 CD-ROM “standard” 安装器 (FD12CD.iso) 可以很好地在 QEMU 上运行,因此,我推荐使用这个版本。

安装 FreeDOS 很简单。首先,告诉 QEMU 使用 CD-ROM 镜像并从其引导。 记住,第一个硬盘驱动器是 C: 驱动器,因此, CD-ROM 将以 D: 驱动器出现。

qemu-system-i386 -m 16 -k en-us -rtc base=localTIme -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -cdrom FD12CD.iso -boot order=d

正如下面的提示,你将在几分钟内安装完成 FreeDOS 。

StarTIng FreeDOS installaTIon

Select your keyboard layout

SelecTIng which packages to install

Rebooting after installation

在你安装完成之后,关闭窗口退出 QEMU。

第 4 步:安装并运行你的 DOS 应用程序

一旦安装完 FreeDOS,你可以在 QEMU 中运行各种 DOS 应用程序。你可以在线上通过各种档案文件或其它网站找到老的 DOS 程序。

QEMU 提供了一个在 Linux 上访问本地文件的简单方法。比如说,想去用 QEMU 共享 dosfiles/ 文件夹。 通过使用 -drive 选项,简单地告诉 QEMU 去使用这个文件夹作为虚拟的 FAT 驱动器。 QEMU 将像一个硬盘驱动器一样访问这个文件夹。

-drive file=fat:rw:dosfiles/

现在,你可以使用合适的选项去启动 QEMU,加上一个外部的虚拟 FAT 驱动器:

qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -drive file=fat:rw:dosfiles/ -boot order=c

一旦你引导进入 FreeDOS,你保存在 D: 驱动器中的任何文件将被保存到 Linux 上的 dosfiles/ 文件夹中。可以从 Linux 上很容易地直接去读取该文件;然而,必须注意的是,启动 QEMU 后,不能从 Linux 中去改变 dosfiles/ 这个文件夹。 当你启动 QEMU 时,QEMU 一次性构建一个虚拟的 FAT 表,如果你在启动 QEMU 之后,在 dosfiles/ 文件夹中增加或删除文件,仿真程序可能会很困惑。

我使用 QEMU 像这样运行一些我收藏的 DOS 程序, 比如 As-Easy-As 电子表格程序。这是一个在上世纪八九十年代非常流行的电子表格程序,它和现在的 Microsoft Excel 和 LibreOffice Calc 或和以前更昂贵的 Lotus 1-2-3 电子表格程序完成的工作是一样的。 As-Easy-As 和 Lotus 1-2-3 都保存数据为 WKS 文件,最新版本的 Microsoft Excel 不能读取它,但是,根据兼容性, LibreOffice Calc 可以支持它。

As-Easy-As 电子表格程序

我也喜欢在 QEMU中引导 FreeDOS 去玩一些收藏的 DOS 游戏,比如原版的 Doom。这些老的 DOS 游戏玩起来仍然非常有趣, 并且它们现在在 QEMU 上运行的非常好。

Doom

Heretic

Jill of the Jungle

Commander Keen

QEMU 和 FreeDOS 使得在 Linux 上运行老的 DOS 程序变得很容易。你一旦设置好了 QEMU 作为虚拟机仿真程序并安装了 FreeDOS,你将可以在 Linux 上运行你收藏的经典的 DOS 程序。

所有图片要致谢 FreeDOS.org。

作者简介:

Jim Hall 是一位开源软件的开发者和支持者,可能最广为人知的是他是 FreeDOS 的创始人和项目协调者。 Jim 也非常活跃于开源软件适用性领域,作为 GNOME Outreachy 适用性测试的导师,同时也作为一名兼职教授,教授一些开源软件适用性的课程,从 2016 到 2017, Jim 在 GNOME 基金会的董事会担任董事,在工作中, Jim 是本地政府部门的 CIO。

 

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。