Linux 内核会是最后一个仍然遵循 GNU 通用公共许可证的项目吗? Linux 内核会是最后一个仍然遵循 GNU 通用公共许可证的项目吗?

Linux 内核会是最后一个仍然遵循 GNU 通用公共许可证的项目吗?

GNU 悲伤泪滴自 1989 年发布以来,GNU 通用公共许可证在软件领域开辟了一条道路。其核心理念是,您可以为自由软件做出贡献,并确保您所做的贡献将始终保持免费。

这与其他几种“开源”模式有所不同:

  • 早在20世纪60年代,大型机程序员就开始互相传阅包含他们编写的代码的磁带。这些软件虽然共享,但并不能保证不会有公司将这些免费贡献用于他们的商业产品中。程序员们很清楚,他们的劳动成果可能会被其他人利用来牟利。
  • 许多公司会允许客户访问其源代码,但通常会收取费用,或者至少需要签署保密协议。例如,许多机构可以访问 Windows 源代码,但它们不能发布补丁或开发 Windows 分支。
  • 公共领域、BSD、MIT 等许可证确保作品的自由性,但也始终存在被商业化的风险。有人可以获取一段代码,进行改进,然后将其发布出售,却从未将这些改进贡献给社区。

GPL之所以如此受欢迎,无疑部分原因在于它所发布的类Unix软件质量很高,其中最著名的当属GNU项目中几乎整个操作系统,Linux内核是最后一个关键部分。虽然现代Linux发行版中的软件采用多种不同的许可协议,但其核心系统仍然是GPL。

我认为,如果没有这些备受瞩目的成员,GPL 永远不可能达到临界规模。

但还能持续多久?

过去几年,GPL许可证逐渐被更宽松的许可证(例如MIT或Apache许可证)所取代。这其中有几个原因:

  • 业余爱好者无私奉献时间编写代码的时代已经不如企业赞助的项目那么普遍了。企业对 GPL 协议以及代码的“病毒式传播”特性并不那么热衷。即使他们打算让自己的作品保持开源软件 (FOSS) 的状态,合规性和追踪工作仍然会让他们头疼不已。
  • 软件的“免费增值”模式现在非常流行,而更宽松的许可协议更容易实现这种模式。
  • 一旦这些宽松的许可证获得足够的用户,就会像滚雪球一样迅速发展。如果您正在使用 MIT 或 Apache 许可证进行开发,为了避免许可证问题变得复杂,您应该优先选择其他采用宽松许可证的库、工具和贡献。
  • *BSD 社区的一些成员声称,GPL 吸引开发者的承诺从未兑现。OpenBSD 项目(采用宽松的 BSD 许可证)多次声明,他们收到了许多使用其代码的公司的贡献,因此采用 GPL 并无优势。

棺材上的钉子

发生了一些大事,这些事似乎正在加速 GPL 的消亡。

首先, LLVM/Clang已经彻底击败了 GCC。前者采用 Apache 许可证,后者则是 GPL 的旗舰项目。随着 LLVM/Clang 的日益流行,GCC 的影响力逐渐减弱。十多年前,理查德·斯托曼曾说过“LLVM 的出现是一个可怕的挫折”。但自那以后,LLVM 的受欢迎程度却有增无减。

现在出现了uutils ,它用 Rust 重写了 GNU 项目的大部分核心实用程序(la、cp、find、locate、diff 等),带来了所有通常的好处,其中安全性是首要的。

uutils 即将 登陆您附近的发行版——事实上,就是 Ubuntu 25.10。

其他 GNU 项目组件或 GPL 软件的替换还需要多久?

  • VIM 采用类似 GPL 的 Vim 许可证,而 NeoVIM 采用 Apache 许可证。
  • GNU Make 有多个竞争对手,其中最引人注目的是采用 Apache 许可的 Ninja,它用于构建 Chromium。
  • macOS 上 GNU Bash 被 zsh 取代,zsh 是一个可行的替代品。
  • 历史悠久的 libreadline 库面临着来自 BSD 许可的 libedit 库的竞争。

这还不包括那些从未有过GPL许可版本软件的软件。例如,目前没有任何一款GPL许可的Web服务器拥有可观的市场份额。

构建一个只包含基于 GPL 协议的 Linux 内核的主要组件的 Linux 发行版并不难。最终,这或许会成为常态。