使用开源技术让 DOS 保持活力

6 位读者喜欢这篇文章。
FreeDOS

Opensource.com

DOS:磁盘操作系统。对于我们许多在 80 年代和 90 年代经历计算机启蒙故事的人来说,我们或喜爱或不喜爱地记得它,它是我们进入计算机的门户。但在某个时候,DOS 让位于图形环境,我们中的一些人选择转向开源替代方案。

 

但在自由软件世界中,DOS 仍然以 FreeDOS 的形式活跃着,这是一个由 Jim Hall 和一群敬业的开发人员维护的开源操作系统,他们正在将 DOS 的遗产延续到二十一世纪。FreeDOS 不仅仅是一个现有的代码库,它仍在积极开发中,并在不久的将来(根据 Jim 的说法,“准备就绪时”)即将发布新版本。FreeDOS 已被证明是许多为关键系统提供动力的遗留应用程序的重要工具,这些系统从未迁移到更现代的操作系统。

 

我采访了 Jim,以了解更多关于 FreeDOS 项目及其未来发展方向。

Interview

现在是 2016 年。谁还在使用 DOS?

几年前我们做了一项调查,发现今天有三种人使用 FreeDOS

  1. 玩经典 DOS 游戏的人。 当然,你可以在像 DOSBox 这样的程序中玩 DOS 游戏,一些经典游戏已经被移植到 Linux (例如 DOOM),但我们中仍然有很多人喜欢在 DOS 系统上玩 DOS 游戏。这通常是我玩一些我喜欢的旧 DOS 游戏的方式。
     
  2. 运行遗留业务应用程序的人。 2016 年可能没有那么多人了,但他们仍然存在!我们不知道这些人使用的是 FreeDOS 还是其他 DOS,但有一家汽车公司使用一台 旧 Compaq 笔记本电脑 运行 DOS 软件来维修豪华的 McLaren F1 汽车南澳大利亚州政府仍在 DOS 系统上运行他们的 电子健康记录 。 我最喜欢的例子可能是作家乔治·R·R·马丁(《权力的游戏》系列作者)在他的 DOS 电脑上写下了他所有的书籍和手稿, 运行 WordStar 文字处理器

    多年来,我从其他一些人那里听说,他们在工作中使用 FreeDOS 来启动一个旧的 DOS 程序,以便从旧的数据文件中获取数据。事实上,我们在我之前在明尼苏达大学莫里斯分校的工作中也做过这件事。我们的一位教员有一张 3.5 英寸的软盘,上面有一些旧的研究数据,而现代的 Windows 程序无法读取它。我们在电脑上安装了 FreeDOS,并下载了一个 1990 年代的 DOS 共享软件程序,它可以读取那种文件,并且能够将数据导出到文本文件中。


     
  3. 开发嵌入式系统的人。 DOS 曾经是一个非常流行的运行嵌入式系统的平台。因此,如果您支持较旧的嵌入式系统,您可能正在运行 DOS。FreeDOS 可以很好地适应。至少有一位开发人员几年前联系我说,他为其编写的嵌入式系统正在 FreeDOS 上运行。我认为这太棒了!

FreeDOS 如何融入其他项目(如 DOSBox 和 Wine)的生态系统,以使用户能够运行遗留程序?

当然有很多人选择使用 DOSBox 来玩经典的 DOS 游戏。这很好。但 DOSBox 实际上是为玩游戏而设计的;它在处理许多业务应用程序方面做得不太好。对于这些,您需要一个实际的 DOS 系统,要么在像 DOSEmu、QEMU、VMWare 等虚拟机中运行,要么在实际硬件上运行。这取决于您需要什么。

DOSBox 在支持 DOS 游戏方面取得了很大的进展,但仍然有一些游戏在 DOSBox 上运行不佳或根本无法运行(目前)。如果您无法在 DOSBox 中玩游戏,您可以尝试在 FreeDOS 上玩。

Wine 当然是另一回事。Wine 允许您通过将 Windows 调用转换为 Unix 调用,在 Linux(和其他 Unix,如 BSD)上运行 Windows 程序。例如,他们的目标不是在 Linux 上运行 DOS 程序。

您已经在这个项目上工作了二十多年。您如何避免倦怠并吸引新的贡献者加入该项目?

有人向我指出,我从事 FreeDOS 工作的时间比 MS-DOS 存在的时间还长。这可能是我第一次意识到我们从事 FreeDOS 工作有多久了。

我们中的很多人都非常喜欢编程,我们喜欢在 DOS 上工作,因为它是一个很棒的小系统,人们仍然用它来做事情。就我个人而言,我需要时不时地从项目中休息一下,这样我就不会感到倦怠。你真的需要从任何事情中度假。但对我来说,“休息一下”实际上就是一周不关注电子邮件,然后我通常会立即回到工作中。

多年来,我在 FreeDOS 中的动手工作也发生了变化。一开始,我编写了很多代码。我编写了大多数原始的 FreeDOS 文件实用程序。对于其他实用程序,如果我没有编写第一个版本,我也可能以某种方式为代码做出了贡献。我编写了很多库,例如 Cats 库(现在称为“Kitten”),它是 Unix catgets(目录获取字符串)函数家族的 DOS 版本。这使得 FreeDOS 仅通过更改 DOS 环境变量即可支持多种语言。我编写了第一个 FreeDOS 安装程序,我们在 FreeDOS 1.1 发行版中使用了它(并进行了其他人的更新)。

如今,我做的编码工作很少。我管理网站,维护维基,回复电子邮件,做我们的社交媒体,诸如此类的事情。我可能没有编写 DOS 代码,但我正在编写 PHP 或 Bash 或其他脚本语言来保持幕后运行。我正在做开源软件项目中需要做的所有其他事情,以保持事情的运转。

所以我想我对你的第一个问题的回答是:我通过去我想去的地方来避免倦怠。

对于吸引新的开发人员,今天基本上和 1994 年一样。只要有机会,我就会谈论 FreeDOS,我展示我们的开发人员正在做的事情,我强调人们正在使用 FreeDOS 做的很酷的事情。人们只会对正在维护、人们活跃且贡献者得到认可的开源软件项目感兴趣。你不需要成为开发人员才能为 FreeDOS 做出贡献(但现在,大多数贡献者都是开发人员)。

与前代版本相比,人们可以对 FreeDOS 1.2 有什么期望?

我们进行了一系列关于“FreeDOS 1.1”之后的下一个版本应该是什么样子的讨论。有一段时间,我认为下一个版本应该是“2.0”,我们应该改变很多东西,思考 2016 年的 DOS 应该是什么样子。我认为 FreeDOS 应该变得更加“现代化”,并包含更多类似 Unix 的功能。我认为这种交叉对于新的开发人员来说会很有趣,并使 FreeDOS 成为新的事物。

但过了一段时间,其他人说服了我,这会使 FreeDOS 走得太远。FreeDOS 的美妙之处在于它只是 DOS,而 DOS 本来就不应该那么复杂。DOS 应该很简单。DOS 过去和现在一直都应该是一个简单的操作系统。DOS 并没有那么复杂。这就是 DOS 如此吸引人的原因;开销很小,很容易弄清楚,而且设置和运行速度很快。

因此,其他 FreeDOS 开发人员说服我放弃了“现代 DOS”的想法。他们是对的。下一个 FreeDOS 需要简单,并且需要保持“DOS”。

我们决定下一个版本应该是“1.2”,并且主要包括更新。将此版本称为“1.2”意味着我们只是在制作 FreeDOS 的更新版本。没有大的变化。没有什么戏剧性的。我们在有意义的地方删除或添加了软件包,但您在 FreeDOS 1.2 中看到的大部分内容都与您在 FreeDOS 1.1 中看到的内容相同。

但是,您将在 FreeDOS 1.2 中看到的一项新功能是更新的安装程序。

我在 1997 年和 1998 年编写了最初的 FreeDOS 安装程序,以创建 FreeDOS Beta 1 发行版(在维基百科上称为“0.1”,但实际上这更恰当地称为 FreeDOS Beta 1 “Orlando”发行版)。最初的 FreeDOS 安装程序非常简单,可以选择软件包(如 CHOICE、PAUSE 等)和软件包“集”(如 BASE,仅用于提供与 MS-DOS 相同功能的软件包,EDIT 用于额外的编辑器,DEVEL 用于开发工具包等等)。随着时间的推移,我们更新了 FreeDOS 安装程序以提供不同的选项或使其更灵活。但安装程序的核心并没有太大变化。

当我们开始 FreeDOS 1.2 的工作时,我非常坚持要更新安装程序。我意识到旧的安装程序变得太复杂了。但是 DOS 并没有那么复杂;安装程序应该非常简单明了。我希望新的安装程序只提供几个提示,例如您是否要安装所有内容或仅安装基本的“DOS”部分,或者您是否要安装源代码,安装程序将从那里开始。为了做到这一点,我们不需要编译的安装程序。我们可以很容易地使用一些聪明的 DOS 强大工具来编写脚本,例如用于提示用户输入等的实用程序。Jerome Shidel 自愿编写了更新的 FreeDOS 安装程序,他做得非常出色!新的安装程序非常简单,对于新用户和老用户来说都是如此。如果您长期使用 DOS,安装程序会感到非常熟悉。如果这是您第一次安装 FreeDOS,您会很容易上手,只需回答几个提示即可。

FreeDOS 1.2 之后的下一个版本会是什么样子?

我们尚未决定 1.2 之后的下一个版本是 1.3 还是 2.0。我认为,如果我们继续包含我们今天包含的实用程序,并在相同的软件包集中(BASE、EDIT 等),则下一个版本将是 1.3。如果我们决定更改我们组织事物的方式,或更改我们包含的实用程序的种类,那么下一个版本可能是 2.0。

但未来的 FreeDOS 版本仍然适用于 Intel 或 Intel 兼容的 PC。我们不打算添加多任务处理或 32 位支持或任何类似的功能。FreeDOS 只是 DOS,并将保持这种状态。

运行 FreeDOS 如何影响了您的职业生涯?多年来从事开源“副项目”与能够全职从事开源工作有何不同?

从事开源软件项目与我的日常工作以有趣的方式交叉。

自从大约 1993 年以来,我一直在使用并贡献开源软件,已经有 23 年了。几年前,我决定攻读硕士学位。作为该计划的一部分,我研究了可用性测试。我将“开源软件”作为我的 可用性项目 的重点,专门研究了 Firefox、Nautilus 和 Gedit。

研究开源软件的可用性激发了我新的兴趣,我将我的硕士学位论文重点放在开源软件的可用性上。我的毕业设计项目包括对几个 GNOME 应用程序 的可用性测试:Gedit、Web、Nautilus、Software 和 Notes。

今天,我将这种兴趣转变为一个关于 开源软件和可用性 的博客。

在 Outreachy(以前称为 GNOME Outreach Program for Women)的几个周期中,我指导实习生在 GNOME 中进行可用性测试。然后我工作的大学要求我教一门关于可用性的课程。我教了!(明尼苏达大学莫里斯分校的 CSCI 4609 流程、编程和语言:开源软件的可用性。)所以我终于让我的日常工作的一部分变成了在开源软件中工作。即使我已经转到政府部门的新职位,大学最近还是要求我再次教这门课。我很乐意再次教这门课。

我的日常工作是领导 IT(今天我是 CIO),我想说我在开源软件方面的背景使我更容易接受企业中的开源软件。这可以追溯到我的职业生涯的早期,甚至在我还是第一份工作中的年轻 Unix 系统管理员时。我在我工作过的每个组织中都实施了开源软件。最重要的是,我曾经将一个支持超过 65,000 名学生的网络注册系统从三节点 IBM 超级计算机迁移到由十个 Linux 服务器组成的集群。我们获得了更好的系统可靠性和性能,并且节省了近一百万美元!

今天的 IT 领导者需要拥抱开源软件。你不能仅仅因为你在 Windows 上度过了舒适的职业生涯就对开源软件说不。未来是开源的,IT 领导者需要去那里。

我假设您不会全职将 FreeDOS 作为您的主要操作系统运行。您使用哪些现代工具,这如何影响您在 FreeDOS 上的工作?

不,我没有将 FreeDOS 作为我的主要系统运行。那真的令人印象深刻!

我在家运行 Linux。我的笔记本电脑是联想 X1 Carbon(第一代),运行 Fedora 24 和 GNOME 3。

我每天使用的工具包括:Google Chrome、Firefox 和 GNOMEWeb 用于浏览网页;Gedit 用于编辑文本或简单代码(例如 Bash);GNU Emacs 用于编辑程序代码(我更喜欢 C);GNOME Terminal 用于 SSH 连接到我的个人服务器和 FreeDOS 网站;RhythmBox 用于听音乐。

我在虚拟机中运行 FreeDOS。如果我正在编写 FreeDOS 代码,我使用 DOSEmu,这样我就可以在 Linux 上使用 GNU Emacs 编写代码,并通过 DOSEmu 立即在 FreeDOS 中编译它。这非常方便,因为 DOSEmu 将您主目录中的文件夹映射为 C: 盘。

如果我需要像在硬件上运行一样运行 FreeDOS,例如测试即将发布的 FreeDOS 1.2 版本,我使用 qemu。

标签
Jason Baker
前 Red Hatter。现在是一名顾问和有抱负的企业家。地图爱好者、创客和开源桌面及自托管软件的热情安装者。

7 条评论

在我的系统管理员时代,我使用 FreeDOS 更新 Dell BIOS 固件。我的可启动 USB 包含 FreeDOS、Knoppix 和 RHEL 救援映像。我有一些仍然喜欢玩的旧 DOS 游戏,我一直使用 DOSBox,但我应该尝试使用 FreeDOS,看看是否可以消除我有时遇到的一些烦人的小故障。

我同意,但我们最近在尝试使用 64 位系统时遇到了 scsi/sata 障碍。
我试图将一个修改过的 freedos 救援盘与 spinrite 等(我将所有我的 pascal 工具放在一个映像中)放在一起,但我无法让 himem 或 cdrom 访问工作。因此,作为救援盘或 bios 更新盘,它几乎毫无用处。
你可以启动一个虚拟化的软盘。

根据开发人员的说法

qemu 不像你想象的那样模拟真实硬件,尤其是较新的硬件。使用 qemu 与 vbox,您可以模拟您的真实硬件——甚至将其专用于 qemu,但其他系统硬件组件只是不匹配。您正在使用过时的规格,就像在过时的硬件上使用 freedos 一样。

——这很好。
但它对于拥有较新、最近硬件的人来说毫无用处,正如您所说——很可能运行 fedora。

还有
(虽然这是一个扩展)
我们需要对 dpmi 和 32 位提供支持,但如果核心不想为此开发,那也没关系。

当涉及到 dpmi 等时,我的 x86 汇编器已经生疏了。我必须打开一本书。

回复 作者: bcotton

致敬 640K、Config.sys 和 Autoexec.bat。我从未尝试过 FreeDOS。很高兴听到它的消息,也许有机会将其虚拟化。很棒的文章。

我已经使用 freeDOS 进行仅 DOS 的 BIOS 更新,并且我不再使用 MS 产品(GNU/Linux 和一些其他操作系统的测试)

我想要一个 freeDOS 容器版本,它可以写入和读取 GNU/Linux 文件系统,这样您就可以像实际的 Chrome OS 用户可以使用 Android 应用程序一样使用它。并且由于实际 RAM 容量非常大,尤其是游戏玩家,在最大化我们使用 QEMM 等程序获得的东西时遇到了很多麻烦,因此默认情况下 RAM 最大化,以便能够运行任何旧的 DOS 游戏而没有任何 RAM 容量问题。并且由于 Dosbox 具有前端数据库,因此需要一个好的游戏前端,以便让年轻人可以享受那些古老但仍然足够好的游戏。

DR DOS 本应成为 DOS 的未来,但微软非法阻止了它的发生。它在某种程度上是 DOS 发展的自然过程,具有多任务处理和高内存访问能力。也许 FreeDOS 人员应该重新考虑一下。我使用 Novell DOS 有一段时间了,它是 DR DOS 的重新品牌。它的多任务处理能力帮助我解决了当时的一些问题。

Digital Research 还创建了一个名为 GEM 的桌面环境,它影响了 Atari、Apple 和 Windows 3.1。GEM 非常容易学习和使用。我希望今天 Linux 上也能有类似的软件,以帮助没有经验的用户。

谢谢,很棒的阅读。你启发了我,我已经安装了一个免费的 DOS 虚拟机来玩旧游戏。谢谢。

未来版本的 FreeDOS 是否会包含通用的 16 位音频驱动程序,以便在某些/大多数系统上运行?硬件制造商已停止制造 DOS 音频驱动程序,并且现在甚至拒绝这样做,即使这非常简单。他们服从微软,并且可能只向 linux 开发人员提供规范,因为它被广泛使用。

我很想拥有一台仅限 DOS 的计算机用于某些事情,但缺少音频使这变得不可行。是的,人们可以搜寻二手硬件商店寻找 Soundblaster 卡,或者从中国购买廉价的 SB16 兼容卡,但这些需要一个塔式机箱才能插入。对于那些出于各种原因(即便携性、空间等)不得不使用带有声卡的笔记本电脑的人来说,这不是一个选择。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.