TGViewer
狂想曲 狂想曲 @nightyworld · 312 subscribers
Post #75 485
关于 Linux 许可证的若干问题

## 用的是什么许可证?

从 Linux 源码的版权文件 中我们得知 Linux 整体上是采用 GPL 许可协议 (确切说是 GPLv2), 但是排除系统调用头文件那部分源码, 也就是说, 如果你完全基于 Linux 的源码去开发定制一个新的操作系统内核, 那么你的这个新内核也必须至少遵守 GPL 协议. 但是如果你只是把 Linux 系统调用头文件包含到你的项目中使用, 那么你的内核就不用遵守 GPL.

为什么要这么做呢? 首先我们要理解在操作系统中, 内核和用户程序工作于不同的 CPU 状态和内存空间, CPU 提供了软件中断指令供用户程序和内核在两个空间中通信, 但软件中断只是渠道, 用户程序和内核还需要一个通信协议, 也就是所谓的 ABI, 这样用户程序才知道该怎么给内核传参, 内核提供的系统调用头文件就是 ABI.

Linux 单纯作为内核是没有用武之地的, 要想做大做强一定要有自己的生态才行, 用户程序就是生态, 开发用户程序就得引用系统调用头文件, 但不是所有的开发者都想让自己开发的程序都使用 GPL 许可, 所以讲这些系统调用头文件排除在 GPL 的范畴, 就能有利于 Linux 生态建设.

> 这里想针对 Linux 和 GNU/Linux 的关系多说一句, 很多人以为 Linux 本身就是操作系统, 实际上不是的, Linux 只是一个操作系统内核, GNU/Linux 才是完整的操作系统. 在 GNU/Linux 这个操作系统中, Linux 内核的代码量只占到 1.5%, 而 GNU 和自由软件社区提供的代码量占 15% (2008 年统计).

## 既然如此, 那为什么 Linux 不整体开放呢?

毕竟整体开放了不是更有利于生态建设? 不尽然, 多年以后, Torvalds 本人面对采访时说道:

> I really think the license has been one of the defining factors in the success of Linux because it enforced that you have to give back, which meant that the fragmentation has never been something that has been viable from a technical standpoint

不难想象, 当时世界上一定不止 Linux 一个内核项目, 大部分的项目起初都如同江河的源头, 气势磅礴, 而后被千山万壑分割成无数细流, 乃至消失殆尽. 而在 Linux 社区则多亏了 GPL, 才使得世界上所有基于 Linux 所做的工作又回源反哺 Linux 本身, 使得 Linux 愈发壮大. GPL 就像一股引力, 将这万条细流重新汇聚, 奔腾入海.

## Linux 驱动程序要遵守 GPL 吗?

如果你自己学习 Linux 驱动开发, 在自己电脑上写个驱动玩, 那当然不必遵守 GPL 公开你的代码. 但假如说你的驱动程序要会随着 Linux 内核下一版一起发行, 或者你你的驱动要被编译到内核上然后安装到你的硬件上拿去卖, 那么你的驱动代码还是要遵守 GPL 协议并公开代码, 这样你的驱动代码还可以合并进内核主干.

但实际上也并不是所有的驱动程序都一定要遵守 GPL 协议, GPL 的关键是判断是否是 "derived work", 但是某种程度来说, 驱动程序和前述系统调用头文件的情况也有相似之处, 因此总是要求驱动程序开放源码也是不恰当的, 这也是为何 Linux 内核源码中实际也包含一些 "binary blobs" 的原因吧, 用 Torvalds 本人的话说这是一个 "灰色地带", 详细的可以看 当初 Torvalds 在邮件组里的言论.

纯粹的自由软件信仰者如 FSF 基金会和 GNU 社区认为 Linux 内核源码中包含 binary blobs 是违反 GPL 协议的, 从技术上来说确实如此, 但那又如何呢? 只要 Linux 内核的首席 Torvalds 本人默许驱动程序不是必须要开放源码, 那这些驱动厂商就不会被告上法庭.

#Linux #许可证 #License #开源 #GPL
GitHub linux/COPYING at master · torvalds/linux Linux kernel source tree. Contribute to torvalds/linux development by creating an account on GitHub.
More from @nightyworld
  1. Oct 3, 2024该如何评价一个人 我大概一直以来都是个没有主见没有立场的人, 所以我常常不知道如何评价一个人或者一件事. 以前看电视辩论的时候看到电视上争论那么激烈, 常常很不理解, 觉得这有什么…
  2. Apr 15, 2023能量, 热与卡路里 最近发现在家吃饭很费时间和精力, 每顿都要思考吃什么还要准备食材. 所以想研究一份以周为单位的简食食谱, 食谱尽可能的以不需要烹饪的食材为主, 另外兼顾营养平衡…
  3. Apr 8, 2023时间的秘密 时钟上的时间是个误导 其实宇宙中并没有时间一说 有的只是物质的变化 时间只是物质变化快慢的表现而已 钟表靠的是原子固定的变化频率 所以四维空间的第四维并不是时间, 因为…
  4. Apr 7, 2023通胀与萧条 通胀 经济萎靡不振的时候, 国家印钱刺激经济. 国家印钱实际上就是通过央行购买国债或者降准来给商业银行更多的信贷额度, 商业银行也得以用更优惠的利率贷款给企业, 企业有…
  5. Mar 4, 2023浅谈信仰, 道德与法律 自从在国外生活以后, 平时就不得不使用我普普通通的英文与人交流, 这段时间的生活中我不但接触了很多新的词汇, 也对一些原本就知道的词汇有了稍微深层次一点的认…
  6. Feb 26, 2023突破 GFW 的原理 发一篇旧文, 介绍翻墙软件的最底层原理. 我以前经常被层出不穷的翻墙软件新名词整的一头雾水, 这也容易理解, 翻墙软件和墙是相互成就共同进化的. 但这也搞的我…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →