使用开源技术让 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 软件来维修豪华的迈凯伦 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 允许你在 Linux(和其他 Unix,如 BSD)上运行 Windows 程序,方法是将 Windows 调用转换为 Unix 调用。 例如,他们的目标不是在 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 发行版(在 Wikipedia 上称为“0.1”,但实际上这更恰当地称为 FreeDOS Beta 1 “奥兰多”发行版)。 原始的 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 版本仍然适用于英特尔或英特尔兼容的 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 终端用于 SSH 连接到我的个人服务器和 FreeDOS 网站;RhythmBox 用于听音乐。

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

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

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

7 条评论

在我的系统管理员时代,我使用 FreeDOS 更新戴尔 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本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.