微软以开源形式发布旧版 MS-DOS 的重要意义

微软在 GitHub 上以开源许可证发布 MS-DOS 1.25 和 2.0 版本,该许可证与 GNU GPL 兼容。
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

© . All rights reserved.