百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

30年后的今天 FreeDOS仍在延续命令提示符的梦想

ztj100 2025-01-23 22:34 13 浏览 0 评论

1994 年 6 月,基于文本的磁盘操作系统领域发生了两件大事。首先是微软发布了 MS-DOS 6.22 版,这是其长期运行的操作系统作为独立产品销售给消费者的最后一个版本。在此之后的几年中,MS-DOS 仍在继续发展,但只是作为 Windows 越来越隐蔽的加载机制。

第二件事是,一位名叫吉姆-霍尔(Jim Hall)的开发人员写了一篇文章,宣布了一个名为"PD-DOS"的系统。霍尔对 Windows 3.x 不满意,对我们后来熟知的 Windows 95 项目也不感兴趣,他想开发一个新的"公共领域"版本的 DOS,在全球大多数人都将传统的命令行界面抛在脑后,转而使用更友好但资源密集的图形用户界面时,这个版本仍能保持传统命令行界面的活力。

PD-DOS 很快更名为 FreeDOS,30 年后的今天,它已成为最后一个仍在积极开发中的 MS-DOS 兼容操作系统。

尽管在互联网时代,DOS 并不能作为一个独立的现代操作系统使用--除其他原因外,DOS 并没有真正意识到"互联网"这一概念--但它在当今的计算机领域仍然占有重要地位。对于需要在现代系统上运行传统应用程序的用户来说,无论是在虚拟机中运行,还是直接在硬件上运行,它都能满足他们的需求;同时,它也是在传统硬件上运行经过积极维护的 DOS 分支的最佳方式,最早可以追溯到最初的 IBM PC 及其英特尔 8088 CPU。

为了纪念2014 年 FreeDOS 诞生 20 周年,我们与霍尔和其他 FreeDOS 维护者讨论了它的持续相关性、DOS 的遗产,以及开发者已经放弃的添加雄心勃勃的现代功能(如多任务处理和内置网络支持)的计划(我们还认真地尝试了仅使用 FreeDOS 进行现代工作,但成功与否参半)。与 MS-DOS 兼容的操作系统世界发展缓慢,因此这些信息大多仍然适用;FreeDOS 在 2014 年的版本为 1.1,而现在的版本为 1.3。

在 FreeDOS 30 周年之际,我们再次采访了霍尔,了解 FreeDOS 项目在过去十多年中的发展情况,为什么它仍然重要,以及它如何继续吸引新用户加入。此外,我们还讨论了这个固有的落后操作系统的未来,虽然看起来有些奇怪。

FreeDOS 仍在运行,即使硬件发展超越了它

在 FreeDOS 中运行与 Lotus 1-2-3 兼容的电子表格程序 AsEasyAs 吉姆-霍尔

霍尔说,如果说过去十年没有迎来"桌面上的 FreeDOS 年",那么自 2014 年以来,人们对该操作系统的兴趣和使用率一直保持在相当高的水平。不同的是,随着时间的推移,越来越多的用户将 FreeDOS 作为他们的第一个 DOS 兼容操作系统,而不是微软和 IBM 上世纪八九十年代尘封软件的更新版本。

霍尔在接受 Ars 的电子邮件采访时说:"与 10 年前相比,我认为人们对 FreeDOS 的兴趣程度差不多。从人们发给我的提问邮件,或者我在 freedos-user 或 freedos-devel 邮件列表上看到的新用户提问,或者在 Facebook 群组和其他论坛上谈论 FreeDOS 的人来看,我认为以某种方式参与 FreeDOS 社区的人数还是差不多的。"

"我在 9 月和 10 月左右收到很多人的问题,基本上都是问'我安装了 FreeDOS,但不知道如何使用它。我该怎么办?我想这些人是在大学的计算机科学课程中了解到 FreeDOS 的,并想进一步了解它;或者他们已经在某个地方工作了,他们读到了一篇关于 FreeDOS 的文章,以前从未听说过这个"DOS"东西,并想尝试一下。无论如何,我认为用户社区中更多的人在了解 FreeDOS 的同时也在了解DOS。"

尽管人们仍在下载和使用 FreeDOS,但 PC 硬件的变化使得在新 PC 上直接安装和运行 FreeDOS(称为"裸机"安装,以区分直接安装在 PC 上的操作系统和通过某种模拟器或虚拟机在其他操作系统上运行的操作系统)变得更加困难。这不仅仅是指采用基于 Arm 处理器的系统(FreeDOS 不懂这些芯片的语言)在慢慢兴起。

其中一个问题是用于启动现代 PC 的 UEFI 固件。UEFI 在 2000 年代末期开始取代传统的 PC BIOS,如今已成为启动 Windows、macOS 和 Linux 的默认机制,尽管从技术上讲,Windows 和 Linux 仍然可以在非 UEFI 系统上启动。

长期以来,采用 UEFI 固件的新电脑仍包含某种传统兼容模式,以支持像 FreeDOS 这样只能在 BIOS 模式下启动的操作系统。许多电脑仍然如此,尤其是那些主板为用户提供大量配置选项的家用台式电脑(主板可能将 BIOS 支持称为"CSM",即"兼容性支持模块")。但很多新电脑只能使用 UEFI 启动,这对直接在硬件上运行 FreeDOS 是个问题。

尽管 FreeDOS 团队曾经有过更雄心勃勃的计划,但 FreeDOS 存在的主要原因还是为了运行经典的 DOS 程序和游戏,如Commander Keen。

霍尔告诉 Ars:"人们问是否有可能重写或更新 FreeDOS 内核,以使用 UEFI 代替 BIOS。也许可以替换内核中使用 BIOS 的部分,但大量的 DOS 应用程序和游戏都是直接调用 BIOS 的。DOS 并不像更现代的操作系统那样使用硬件抽象层(Hardware Abstraction Layer 或 HAL),即应用程序与 HAL 对话,HAL 与硬件对话。DOS 程序通常直接与硬件交互"。

换句话说,开发人员可以编写一个可以在 UEFI 系统上启动的 FreeDOS 版本,甚至可以编写一个可以在 Arm 系统上启动的 FreeDOS 版本。但无论哪种改变,都会破坏绝大多数现有的 DOS 应用程序,而运行这些旧程序正是 FreeDOS 存在的主要原因。

霍尔说:"这就是我们建议在虚拟机中运行 FreeDOS 的原因之一。虚拟机提供了 BIOS。不过,从实用的角度来看,我认为大多数人都没有兴趣尝试在新台式机或笔记本电脑的裸硬件上运行 FreeDOS,这些硬件包括 16 核英特尔酷睿 Ultra CPU、32GB 内存、512GB 固态硬盘和 Wi-Fi。如果你要运行 FreeDOS,你可能是在寻找'复古'的计算体验,所以无论如何,你更有可能在老式 PC 上安装 FreeDOS。"

怪异的复古 PC 是体验 FreeDOS 的绝佳方式

Book 8088 是一款非常奇特的机器,但它让现代人更容易接受复古计算的某些方面。

说到复古电脑,其实在过去几年里,它们变得更容易找到和使用了。这在一定程度上要归功于像Book 8088、Hand 386 和Pocket 386这样的奇特 AliExpress 硬件的兴起。虽然这些硬件充其量只是存在于道德的灰色地带--我们使用的 Book 8088 在出厂时就附带了各种老旧但仍受版权保护的软件,另外还有一个从开源社区盗取的 BIOS,没有注明出处--但与真正的老旧 IBM PC 或手提箱大小的康柏 Deskpro 相比,它们更容易购买,也更容易腾出空间。

这些便携式系统混合使用了真正的复古部件和较新的复制品,在很大程度上忠实地复制了使用复古 PC 的体验。现代的屏幕和电池技术以及固态存储让它们比正品用起来更顺手,但与在完全现代的系统上运行 86Box 这样的模拟器相比,还是更接近原始体验。

霍尔认为这些老系统"非常棒",他一直在使用在 Pocket 386 上运行的 FreeDOS 运行复古游戏和应用程序。这台 PC 配备了 40 MHz 的 386SX 处理器和 8MB 内存,在 FreeDOS 于 90 年代中期问世时,这台 PC 已被认为有点过时,但它仍然代表了当时在任何计算机实验室、办公室或家庭房间里可能发现的那种正在慢慢老化的系统。

霍尔还称赞 Pocket 386 是一款复古的文字处理器和电子表格机;即使在 8088 上也能很好地运行这类 DOS 生产率应用程序,因此 386 带来的体验会更令人愉悦。

很多人会选择在这些系统上运行真正的 MS-DOS 或 IBM PC-DOS,而 MS-DOS 也是制造商提供给他们的。但 FreeDOS 持续发展的好处是,它可以支持一些现代设施,使复古计算机体验更加愉悦。

当被问及如何扩展 FreeDOS 的功能时,霍尔说:"我们在'用户空间'中提供了很多扩展功能。FreeDOS 内核必须是相当经典的 DOS 内核,但我们可以添加几乎任何我们需要的独立实用程序和工具。因此,我们提供了额外的归档程序,如 7z 和 zip/unzip,甚至 gzip 和 tar。我们还提供额外的设备驱动程序,如 CD-ROM 缓存(cdrcache)、DOS 长文件名支持(doslfnlfndos),以及 UDMA 硬盘和固态硬盘的缓存驱动程序(uhdd)。当然,还有大量的开发工具,包括编译器、汇编器、调试器和编辑器,让你可以创建自己的程序。我还没提到游戏呢"。

FreeDOS 1.4 中可能出现的内容

当前版本的 FreeDOS 无法像 MS-DOS 和 PC-DOS 一样作为 Windows 3.x 的加载器。下一个版本可能会改变这种状况。

自 2006 年 9 月推出 1.0 版以来,该项目平均每四到六年进行一次重大编号更新。不太可能对 DOS 做很多事情,却又不试图把它变成一个不是它的东西;升级往往是渐进的,而且范围很窄。但霍尔说,FreeDOS 1.4 的更新工作肯定正在进行中。

"我们的发行版协调人杰罗姆-希德尔(Jerome Shidel)创建了一个月度测试发行版,用于测试 FreeDOS 程序的最新版本。我们的计划是,有朝一日,该测试版本将成为下一个发行版的基础,"霍尔告诉 Ars。"测试版本目前有很多很酷的更新,其中大部分都提供了修复功能,比如新的fdisk提供了解决 Book8088 BIOS bug 的方法,新的zoo归档器修复了集群大小超过 32 kB 的问题,更新的edlin编辑器启动更安静。

理论上 FreeDOS 1.4 可能会有的另一项新功能是什么?Windows 支持。

尽管 FreeDOS 与绝大多数经典 DOS 软件保持兼容,但当前版本不能作为 3.1 或 3.11 for Workgroups 等旧版本 Windows 的引导程序--至少,它不能以功能齐全的"386 增强"模式运行这些操作系统。虽然 FreeDOS 是霍尔等人为了远离 Windows 而开发的,但霍尔表示,支持旧版本的 Windows 是用户的普遍要求。

霍尔说:"也许当内核准备就绪时,我们可以将测试版本分离出来,成为新的"1.4"发行版。但这只是我的想法,我不想抢在社区前面。我们会在freedos-devel邮件列表中讨论一切,然后再做决定。"

相关推荐

电脑装系统用GHOST好,还是原装版本好?老司机都是这么装的

Hello大家好,我是兼容机之家的咖啡。安装Windows系统是原版ISO好还是ghost好呢?针对这个的问题,我们先来科普一下什么是ghost系统,和原版ISO镜像两者之间有哪些优缺点。如果是很了解...

苹果 iOS 14.5.1/iPadOS 14.5.1 正式版发布

IT之家5月4日消息今日凌晨,苹果发布了iOS14.5.1与iPadOS14.5.1正式版更新。这一更新距iOS14.5正式版发布过去了一周时间。IT之家了解到,苹果表示,...

iOS 13.1.3 正式版发布 包含错误修复和改进

苹果今天发布了iOS13.1.3和iPadOS13.1.3,这是iOS13发布之后第四个升级补丁。iOS13.1.2两周前发布。iOS13.1.3主要包括针对iPad和...

还不理解 Error 和 Exception 吗,看这篇就够了

在Java中的基本理念是结构不佳的代码不能运行,发现错误的理想时期是在编译期间,因为你不用运行程序,只是凭借着对Java基本理念的理解就能发现问题。但是编译期并不能找出所有的问题,有一些N...

Linux 开发人员发现了导致 MacBook“无法启动”的 macOS 错误

“多个严重”错误影响配备ProMotion显示屏的MacBookPro。...

启动系统时无法正常启动提示\windows\system32\winload.efi

启动系统时无法正常启动提示\windows\system32\winload.efi。该怎么解决?  最近有用户遇到了开机遇到的问题,是Windows未能启动。原因可能是最近更改了硬件或软件。虽然提...

离线部署之两种构建Ragflow镜像的方式,dify同理

在实际项目交付过程中,经常遇到要离线部署的问题,生产服务器无法连接外网,这时就需要先构建好ragflow镜像,然后再拷到U盘或刻盘,下面介绍两种构建ragflow镜像的方式。性能测试(网络情况好的情况...

Go语言 error 类型详解(go语言 异常)

Go语言的error类型是用于处理程序运行中错误情况的核心机制。它通过显式的返回值(而非异常抛出)来管理错误,强调代码的可控性和清晰性。以下是详细说明及示例:一、error类型的基本概念内置接口...

Mac上“闪烁的问号”错误提示如何修复?

现在Mac电脑的用户越来越多,Mac电脑在使用过程中也会出现系统故障。当苹果电脑无法找到系统软件时,Mac会给出一个“闪烁的问号”的标志。很多用户受到过闪烁问号这一常见的错误提示的影响,如何解决这个问...

python散装笔记——177 sys 模块(python sys模块详解)

sys模块提供了访问程序运行时环境的函数和值,例如命令行参数...

30天自制操作系统:第一天(30天自制操作系统电子书)

因为咱们的目的是为了研究操作系统的组成,所以直接从系统启动的第二阶段的主引导记录开始。前提是将编译工具放在该文件目录的同级目录下,该工具为日本人川合秀实自制的编译程序,优化过的nasm编译工具。...

五大原因建议您现在不要升级iOS 13或iPadOS

今天苹果放出了iPadOS和iOS13的公测版本,任何对新版功能感兴趣的用户都可以下载安装参与测试。除非你想要率先体验Dark模式,以及使用AppleID来登陆Facebook等服务,那么外媒CN...

Python安装包总报错?这篇解决指南让你告别pip烦恼!

在Python开发中,...

苹果提供了在M1 Mac上修复macOS重装错误的方案

#AppleM1芯片#在苹果新的M1Mac推出后不久,我们看到有报道称,在这些机器上恢复和重新安装macOS,可能会导致安装错误,使你的Mac无法使用。具体来说,错误信息如下:"An...

黑苹果卡代码篇三:常见卡代码问题,满满的干货

前言...

取消回复欢迎 发表评论: