我参与的一个开源软件项目是 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!
5 条评论