微软以开源方式发布旧版 MS-DOS 为何至关重要

微软在 GitHub 上以与 GNU GPL 兼容的开源许可证发布了 MS-DOS 1.25 和 2.0 版本。
257 位读者喜欢这个。
Best of Opensource.com: Business

Ron on Flickr。CC BY-NC-SA 2.0

我参与的一个开源软件项目是 FreeDOS 项目。这是一个完整的、免费的、与 DOS 兼容的操作系统,您可以使用它来玩经典的 DOS 游戏、运行遗留业务软件或开发嵌入式系统。任何在 MS-DOS 上运行的程序也应该在 FreeDOS 上运行。

因此,当微软最近通过 GitHub 存储库发布 MS-DOS 1.25 和 2.0 的源代码时,我注意到了。这对微软来说是巨大的一步,我想简要解释一下这为何意义重大。

作为开源软件的 MS-DOS

一些开源爱好者可能还记得,这并非微软首次正式发布 MS-DOS 源代码。2014 年 3 月 25 日,微软通过计算机历史博物馆发布了 MS-DOS 1.1 和 2.0 的源代码。遗憾的是,此源代码是在“只看别碰”许可证下发布的,该许可证限制了您可以对其执行的操作。根据 2014 年源代码发布中的许可证,用户被禁止在其他项目中重复使用它,并且只能将其用于“仅用于非商业研究、实验和教育目的。

博物馆许可证对开源软件不友好,因此,MS-DOS 源代码被忽略了。在 FreeDOS 项目中,我们将“只看别碰”许可证解释为 FreeDOS 的潜在风险,因此我们决定查看过 MS-DOS 源代码的开发人员不能为 FreeDOS 做贡献。

但是微软最近发布的 MS-DOS 源代码代表着一个重大变化。此 MS-DOS 源代码使用 MIT 许可证(也称为 Expat 许可证)。引用微软 GitHub 上的 LICENSE.md 文件

MS-DOS v1.25 和 v2.0 源代码

版权所有 © Microsoft Corporation。

保留所有权利。

MIT 许可证。

特此授予任何获得本软件和相关文档文件(“软件”)副本的人员免费许可,以不受限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,并允许向其提供本软件的人员这样做,但须符合以下条件

上述版权声明和本许可声明应包含在本软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的明示或暗示的保证,包括但不限于适销性、特定用途的适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权诉讼或其他诉讼中。

如果您觉得这段文字很熟悉,那是因为它与 开源促进组织认可的 MIT 许可证文本相同。它也与 自由软件基金会认可的 Expat 许可证相同。

自由软件基金会(通过 GNU)表示 Expat 许可证与 GNU 通用公共许可证兼容。具体而言,GNU 将 Expat 许可证描述为“宽松、许可性的非著作权自由软件许可证,与 GNU GPL 兼容。有时它会被含糊地称为 MIT 许可证。”根据 GNU 的说法,当他们说许可证与 GNU GPL 兼容时,“您可以将根据其他许可证 [MIT/Expat 许可证] 发布的代码与根据 GNU GPL 发布的代码组合在一个更大的程序中。”

微软对原始 MS-DOS 源代码使用 MIT/Expat 许可证意义重大,因为该许可证不仅是开源软件,而且是自由软件。

这意味着什么?

这很棒,但源代码发布还有实际的一面。您可能会想,“如果微软已根据与 GNU GPL 兼容的许可证发布了 MS-DOS 源代码,这会对 FreeDOS 有帮助吗?”

并非如此。原因如下:FreeDOS 起源于独立于 MS-DOS 的原始代码库。MS-DOS 的某些功能和行为在 Ralf Brown 编写的综合性 中断列表中被识别和记录下来,我们通过参考中断列表在 FreeDOS 中提供了 MS-DOS 兼容性。但是 FreeDOS 和 MS-DOS 之间仍然存在许多重要的基本技术差异。例如,FreeDOS 使用完全不同的内存结构和内存布局。您不能简单地将 MS-DOS 源代码直接移植到 FreeDOS 中并期望它能够工作。代码假设完全不同。

还有一个简单的事实,这些都是非常旧版本的 MS-DOS。例如,MS-DOS 2.0 是第一个支持目录和重定向的版本。但是这些版本的 MS-DOS 尚未包含更高级的功能,包括网络、CDROM 支持和 '386 支持(如 EMM386)。这些功能在 FreeDOS 中早已成为标准配置。

因此,MS-DOS 源代码发布很有趣,但 FreeDOS 无论如何都无法重用此代码来实现任何现代功能。FreeDOS 在功能和特性方面早已超越了这些版本的 MS-DOS。

恭喜

尽管如此,重要的是要认识到微软在以开源软件形式发布这些版本的 MS-DOS 时迈出了一大步。GitHub 上新发布的 MS-DOS 源代码摒弃了 2014 年的限制性许可证,并采用了公认的与 GNU GPL 兼容的开源软件许可证。祝贺微软以开源许可证发布 MS-DOS 1.25 和 2.0!

photo of Jim Hall
Jim Hall 是一位开源软件倡导者和开发人员,以 GNOME 的可用性测试以及作为 FreeDOS 的创始人兼项目协调员而闻名。

5 条评论

可悲的是,这感觉更像是“微软多年前发布旧版 MS-DOS 开源本应很重要,但...”

我同意 Jorge 的观点,很难看出锁定多年来他们无法从中赚钱的代码有什么商业逻辑。

回复 作者:Jorge (未验证)

这也意味着查看过 MS-DOS 代码的人不再被禁止为 FreeDOS 做贡献。

您之前是否因此不得不拒绝过任何贡献者?

问候,eMBee。

是的,过去我们不得不拒绝一些贡献者,因为他们下载并研究了计算机历史博物馆网站上发布的 MS-DOS 源代码。这是因为博物馆许可证不允许您在其他项目中重复使用该代码。

从律师向我解释的情况来看(我不是律师),根据美国法律和合作伙伴国家/地区达成的类似法律,您可能会因了解专有源代码而“受到污染”。因此,任何阅读或研究过先前通过计算机历史博物馆许可证发布的 MS-DOS 源代码的人,之后都不允许为 FreeDOS 做贡献。我们已在 FreeDOS 网站和其他地方发布了多项关于此事的通知。

然而,通过微软发布的这个源代码,这个问题就消失了。此次发布的 MS-DOS 1.25 和 2.0 源代码使用了 MIT 许可证,这不仅是公认的开源软件许可证,而且与 GNU GPL 兼容。这意味着“污染”问题实际上已经解除。

回复 作者:embee- (未验证)

MS-DOS 1.1 和 2.0...哇...我记得那个时代的 PC-DOS 版本,包括 BASICA 的那些版本。

鉴于 FreeDOS 的存在,我看不到这有什么价值。如果微软真的想在 DOS 方面做一些有用的事情,他们应该以 MIT 许可证发布 MS-DOS 7.1。该版本支持 FAT32 等。这在现代存储介质上才开始有用。

--SYG

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.