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

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

ztj100 2025-01-23 22:34 17 浏览 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邮件列表中讨论一切,然后再做决定。"

相关推荐

使用Python编写Ping监测程序(python 测验)

Ping是一种常用的网络诊断工具,它可以测试两台计算机之间的连通性;如果您需要监测某个IP地址的连通情况,可以使用Python编写一个Ping监测程序;本文将介绍如何使用Python编写Ping监测程...

批量ping!有了这个小工具,python再也香不了一点

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友。在咱们网工的日常工作中,经常需要检测多个IP地址的连通性。不知道你是否也有这样的经历:对着电脑屏...

python之ping主机(python获取ping结果)

#coding=utf-8frompythonpingimportpingforiinrange(100,255):ip='192.168.1.'+...

网站安全提速秘籍!Nginx配置HTTPS+反向代理实战指南

太好了,你直接问到重点场景了:Nginx+HTTPS+反向代理,这个组合是现代Web架构中最常见的一种部署方式。咱们就从理论原理→实操配置→常见问题排查→高级玩法一层层剖开说,...

Vue开发中使用iframe(vue 使用iframe)

内容:iframe全屏显示...

Vue3项目实践-第五篇(改造登录页-Axios模拟请求数据)

本文将介绍以下内容:项目中的public目录和访问静态资源文件的方法使用json文件代替http模拟请求使用Axios直接访问json文件改造登录页,配合Axios进行登录请求,并...

Vue基础四——Vue-router配置子路由

我们上节课初步了解Vue-router的初步知识,也学会了基本的跳转,那我们这节课学习一下子菜单的路由方式,也叫子路由。子路由的情况一般用在一个页面有他的基础模版,然后它下面的页面都隶属于这个模版,只...

Vue3.0权限管理实现流程【实践】(vue权限管理系统教程)

作者:lxcan转发链接:https://segmentfault.com/a/1190000022431839一、整体思路...

swiper在vue中正确的使用方法(vue中如何使用swiper)

swiper是网页中非常强大的一款轮播插件,说是轮播插件都不恰当,因为它能做的事情太多了,swiper在vue下也是能用的,需要依赖专门的vue-swiper插件,因为vue是没有操作dom的逻辑的,...

Vue怎么实现权限管理?控制到按钮级别的权限怎么做?

在Vue项目中实现权限管理,尤其是控制到按钮级别的权限控制,通常包括以下几个方面:一、权限管理的层级划分...

【Vue3】保姆级毫无废话的进阶到实战教程 - 01

作为一个React、Vue双修选手,在Vue3逐渐稳定下来之后,是时候摸摸Vue3了。Vue3的变化不可谓不大,所以,本系列主要通过对Vue3中的一些BigChanges做...

Vue3开发极简入门(13):编程式导航路由

前面几节文章,写的都是配置路由。但是在实际项目中,下面这种路由导航的写法才是最常用的:比如登录页面,服务端校验成功后,跳转至系统功能页面;通过浏览器输入URL直接进入系统功能页面后,读取本地存储的To...

vue路由同页面重定向(vue路由重定向到外部url)

在Vue中,可以使用路由的重定向功能来实现同页面的重定向。首先,在路由配置文件(通常是`router/index.js`)中,定义一个新的路由,用于重定向到同一个页面。例如,我们可以定义一个名为`Re...

那个 Vue 的路由,路由是干什么用的?

在Vue里,路由就像“页面导航的指挥官”,专门负责管理页面(组件)的切换和显示逻辑。简单来说,它能让单页应用(SPA)像多页应用一样实现“不同URL对应不同页面”的效果,但整个过程不会刷新网页。一、路...

Vue3项目投屏功能开发!(vue投票功能)

最近接了个大屏项目,产品想在不同的显示器上展示大屏项目不同的页面,做出来的效果图大概长这样...

取消回复欢迎 发表评论: