微软以开源形式发布旧版 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 源代码

版权所有 © 微软公司。

保留所有权利。

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本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.