【CSDN 编者按】1994 年,微软宣布停止支持 MS-DOS,而 FreeDOS 的作者 Jim Hall 作为 MS-DOS 的超级粉丝,决定自行设计一个 MS-DOS 的自由软件替代——这就有了后来的 FreeDOS。而现在,FreeDOS 已经二十五岁了!该操作系统的发展史也代表了开发者共同创造未来的开源精神。

作者 | Jim Hall,FreeDOS创始人

译者 | 弯月,责编 | 郭芮

出品 | CSDN(ID:CSDNnews)

以下为译文:

6月29日是FreeDOS成立25周年的好日子。对于所有开源软件项目来说,这是一个重要的里程碑,回顾过去25年以来我们在这方面所做出的努力,我感到无比自豪。同时,我也为我们构建的FreeDOS感到自豪,因为它代表了开源软件模型的可行性。

25年前,MS-DOS是一个功能强大的操作系统。记得当时父母为我买了一台新的IBM计算机,我终于摆脱了家里颇有年头的Apple II计算机,从那以后的很多年里我一直在使用DOS。MS-DOS提供了一个灵活的命令行,我非常喜欢通过这个命令行方便地操作我的文件。多年以后,我学会了如何在C中编写自己的工具,并用这些工具进一步扩展MS-DOS的命令行功能。

大约在1994年,微软宣布下一个版本的Windows将取消MS-DOS。但我很喜欢DOS,即便后来我开始使用Linux,但我仍然会使用MS-DOS来运行Linux尚未拥有的应用程序。

我意识到,如果我们想保留DOS,就只能编写自己的DOS,而这就成了创建FreeDOS的初衷。

1994年6月29日,我通过Usenet上的comp.os.msdos.apps新闻组公布了我的想法。

PD-DOS项目公告:

几个月前,我发布了有关编写PD-DOS的公告。当时很多人表示强烈支持,很多人都赞同这种做法,他们鼓励我说:“现在就动手吧!”所以,我……

宣布PD-DOS项目正式启动。我编写了一个“清单”来描述该项目的目标和工作大纲,并制定了一个“任务列表”来准确地表述该项目的具体工作内容。我会在这里发布消息,希望大家积极讨论。

虽然最初我宣布该项目名为PD-DOS(“Public Domain”,尽管这个缩写是为了模仿IBM的“PC-DOS”),但很快我们就将项目改名为Free-DOS,到后来就成了FreeDOS。

紧接着,我就投入到了紧张的工作之中。首先,我分享了我编写的用于扩展DOS命令行的工具。其中有很多工具都可以重现MS-DOS的功能,包括CLS、DATE、DEL、FIND、HELP和MORE。有些还添加了我从Unix借鉴的新功能,比如TEE和TRCH(简单地实现了Unix的tr)。我总计贡献了十几个FreeDOS工具。

我通过分享这些工具,为其他开发人员提供了一个起点。我通过GNU通用公共许可证(GNU GPL)共享了我的源代码,目的是希望其他开发人员添加新功能并修复错误。

其他开发人员在看到FreeDOS的进展之后,联系了我并表示愿意提供帮助。Tim Norman是第一个,他承担起了编写一个命令shell(COMMAND.COM,后来命名为FreeCOM)的工作。还有其他人贡献了复制或扩展DOS命令行的工具。

很快我们就发布了第一个alpha版本。在宣布FreeDOS后不到三个月,我们就完成了集合了所有工具的第一个Alpha 1发行版。在我们发布Alpha 5时,FreeDOS已经拥有了60多个工具。FreeDOS包含了一些MS-DOS中前所未有的功能,包括通过PPP拨号驱动程序连接到互联网,以及支持主VGA及辅Hercules Mono的双显示器。

我们欢迎每一位加入项目的开发人员。感谢Pat Villani辛勤的工作,到1998年10月的时候,FreeDOS有了一个可靠的内核。FreeDOS还提供了许多新功能,不仅拥有与MS-DOS相同的功能,甚至还超越了MS-DOS,比如ANSI支持以及类似于Unix lpr的打印后台处理程序。

很多人都很熟悉这之后的各个里程碑。我们朝着1.0努力,并于2006年9月发布了FreeDOS 1.0,于2012年1月发布了FreeDOS 1.1,于2016年12月发布了FreeDOS 1.2。彼时MS-DOS已经停止更新很久了,所以在1.0发布之后,我们不需要频繁的更新。

如今,FreeDOS发展成了一个非常现代化的DOS。我们超越了“经典的DOS”,如今的FreeDOS拥有许多开发工具,比如编译器、汇编器和调试器。除了普通的DOS Edit编辑器之外,我们还有许多其他编辑器,包括Fed、Pico、TDE以及Emacs和Vi的版本。FreeDOS支持网络连接,甚至还提供简单的图形Web浏览器(Dillo)。我们有大量的新工具,甚至可以让Linux用户感到宾至如归。

FreeDOS今日的成就归功于众多开发人员的齐心努力。我们本着开源软件的精神,通过修复错误和添加新功能为彼此贡献自己的力量。在我们眼中,用户就是合作开发人员,我们得到了众多人员的帮助,无论是编写代码还是编写文档。我们唯才是用,根据实际的价值做决定。而这些统统体现了开源软件的核心价值:透明、协作、尽早且频繁地发布、精英管理和社区。这才是真正的开源!

衷心希望你能尝试下载和使用FreeDOS 1.2。

原文:https://circleci.com/blog/the-little-legacy-code-that-could-a-fable-of-software-ownership/

本文为 CSDN 翻译,转载请注明来源出处。


 热 文 推 荐 

☞张朝阳再谈 5G 有害论;中国联通回应“关闭 2G、3G 网络”;PHP 7.3.7 正式发布 | 极客头条

☞机器学习工程师年薪 98 万,但 AI 就业增幅正在下降!

☞为什么说“大公司的技术顽疾根本挽救不了”?

☞百度与华为重磅合作!李彦宏:技术是百度的信仰

因为有了 TA,搞定行业应用开发,不怕不怕啦!

除了V神,17个以太坊大会讲师的演讲精华都在这儿了!

☞2019年技术盘点容器篇(二):听腾讯云讲讲踏入成熟期的容器技术 | 程序员硬核评测

☞50行Python代码,获取公众号全部文章

不写一行代码,也能玩转Kaggle竞赛?

☞马云曾经偶像,终于把阿里留下的1400亿败光了!

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

开源操作系统 FreeDOS 二十五年演进史:因微软抛弃 MS-DOS 而来!相关推荐

  1. 操作系统(二十五)吸烟者问题-单生产者多消费者问题

    2.3.8 吸烟者问题-单生产者多消费者问题 假设一个系统有三个抽烟者进程和一个供应者进程.每个抽烟者不停地卷烟并抽掉它,但是要卷起并抽掉一支烟,抽烟者需要有三种材料:烟草.纸和胶水.三个抽烟者中,第 ...

  2. 2021年大数据Hadoop(二十五):YARN通俗介绍和基本架构

    全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 YARN通俗介绍和基本架构 Yarn通俗介绍 Yarn基本 ...

  3. 未处理异常和C++异常——Windows核心编程学习手札之二十五

    未处理异常和C++异常 --Windows核心编程学习手札之二十五 当一个异常过滤器返回EXCEPTION_CONTINUE_SEARCH标识符时是告诉系统继续上溯调用树,寻找另外的异常过滤器,但当每 ...

  4. linux exec 二程序,二十五、Linux 进程与信号---exec函数

    25.1 介绍 在用 fork 函数创建子进程后,子进程往往要调用一种 exec 函数以执行另一个程序 当进程调用一种 exec 函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其 m ...

  5. 深度学习之图像分类(二十五)-- S2MLPv2 网络详解

    深度学习之图像分类(二十五)S2MLPv2 网络详解 目录 深度学习之图像分类(二十五)S2MLPv2 网络详解 1. 前言 2. S2MLPv2 2.1 S2MLPv2 Block 2.2 Spat ...

  6. 二十五个深度学习相关公开数据集

    转 [干货]二十五个深度学习相关公开数据集 2018年04月18日 13:42:53 阅读数:758 (选自Analytics Vidhya:作者:Pranav Dar:磐石编译) 目录 介绍 图像处 ...

  7. java常见面试考点(二十五):CAS是什么

    java常见面试考点 往期文章推荐:   java常见面试考点(二十):Elasticsearch 和 solr 的区别   java常见面试考点(二十一):单点登录   java常见面试考点(二十二 ...

  8. VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池

    VMware vSphere 服务器虚拟化之二十五 桌面虚拟化之终端服务池 终端服务池是指由一台或多台微软终端服务器提供服务的桌面源组成的池.终端服务器桌面源可交付多个桌面.它具有以下特征: 1.终端 ...

  9. 二十五、求单点的最短路径

    二十五.求单点的最短路径 文章目录 二十五.求单点的最短路径 题目描述 解题思路 上机代码 题目描述 求从指定源点出发到各个顶点的最短路径. **假设:**图中结点名均为单个互不相同的字母,权值均&g ...

最新文章

  1. c语言根据日期算星期几入门,c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便...
  2. Codeigniter 4.0-dev 版源码学习笔记之四——详细路由过程
  3. 前端学习(2550):事件指令解析
  4. 【剑指offer】面试题33:二叉搜索树的后序遍历序列
  5. 七夕赶上服务器架构升级,女朋友的约会怎么办
  6. 解析几何的解读(二)
  7. Renting Boats
  8. android实现Materia Design风格APP(四):ViewPager同时显示3个item及设置切换动画
  9. 苹果被指乏力上游另寻“新欢”
  10. Opencv项目实战:05 物体检测
  11. JAVA下载的详细教程
  12. 掉队于云计算市场是甲骨文裁员的最大原因
  13. python自动化webdriver_轻松自动化---selenium-webdriver(python) (六)
  14. 第三章 处理机调度与死锁(汤小丹版操作系统笔记) 超全超详细!!!
  15. vscode 无法输入输出
  16. MYSQL报1265和1366错误
  17. 获取月份的第一天和最后一天
  18. 数据分析的标准流程,基本划分为哪几步?
  19. 【Py大法系列--01】20多行代码生成你的微信聊天机器人
  20. 东方通文件中文乱码问题

热门文章

  1. 伪装目标检测(Camouflage Object Detection)常用数据集
  2. Pytorch-torchvision源码解读:ASPP
  3. 【论文研读】【医学图像分割】【BCRNN】Fine-grained Recurrent Neural Networks for Automatic Prostate Segmentation ...
  4. leetcode python3 简单题168. Excel Sheet Column Title
  5. jetson 安装atp-get install qt时出现 unable to locate 或者dependencies unmet的报错
  6. 【OpenCV】视频输入与相似度测量
  7. C++ .template 关键字
  8. 华为Matebook X Pro双系统升级bios后无法进入Linux的解决方案
  9. C语言的argv小案例
  10. 高频一线大厂Python面试题:算法+爬虫+数据处理+基础