Debian Linux Kernel 和 Linux-libre 在自由相关问题上有什么区别?
我知道 Debian Linux 内核可以加载非自由模块,而在 Linux-libre 中它们已被列入黑名单。
答案1
您已经发现了几乎唯一的区别:Debian 内核可以加载固件,而 Linux-libre 内核则不能。两个内核都是自由软件,即使就自由软件基金会而言 — FSF 认为 Debian GNU/Linux 发行版是自由软件只要除了主存储库之外不使用任何存储库;他们对 Debian 的问题是 Debian 在同一基础设施上托管非自由存储库。
从哲学上讲,您可以认为差异如下:
- Debian 内核不包含任何非自由固件(除了错误),但它允许用户加载非自由固件(如果他们愿意);
- Linux-libre 内核不包含任何非自由固件或任何看起来像固件的东西,并且它会阻止用户加载非自由固件,即使他们希望这样做。
Linux-libre 是通过运行deblob
内核源代码上的脚本。这将遍历内核源代码,并进行各种与固件相关的更改:
- 保留源代码可用的任何固件,但脚本确保源代码可用;
- 任何需要固件的模块都被剥夺了加载固件的能力;
- 删除任何看起来像固件(数字序列)的源代码;
- 任何仅包含固件的文件(例如)的内容
firmware/radeon
被删除。
Linux-libre 需要做一些额外的工作来恢复某些情况下的功能;例如,radeon
模块经过修改,r600
即使没有固件,某些支持的卡仍然可以使用。 (寻找“类似的东西也可能适用于其他 radeon 卡。”deblob
脚本。)
Debian 发行版包含一个固件包,firmware-linux-free
;这仅包含源代码可用的固件。非免费存储库还包含许多由以下版本构建的固件包firmware-nonfree
,但这些不是主要发行版的一部分。
答案2
这几乎是主要的、主要的和唯一的区别:linux-libre
Linux 内核删除了“固件二进制 blob”。
FSF 所谓的固件 blob 是 Linux 内核中与自由软件理念不兼容的部分。通常,这些固件位于二进制 blob 中,甚至不附带任何类型的源代码(我的意思是,甚至不包含宏汇编)。这Linux 自由项目由 FSF 在 gnu.org 托管,但它不是 Linux 发行版。该项目只是清理内核源代码的努力,并且是作为源代码分发
然后linux-libre kernel
由 100% 自由软件 Linux 发行版编译和发布:BLAG、Dragora、Trisquel 等。这些发行版秉承只分发 FSF 定义的自由软件的理念。
另一方面,Debian 并不致力于仅分发 FSF 定义的自由软件。 Debian 的承诺是Debian 社会契约具有讽刺意味的是,它在第一个承诺中就做出了这样的承诺:
- Debian 将保持 100% 自由软件
我是在开玩笑,讽刺的是。 Debian 的哲学承诺与 FSF 相同,不同之处在于 Debian 如何定义自由软件以及 FSF 如何定义自由软件。随着时间的推移,这两个群体之间的差异越来越大,很难争论哪个定义更好。 FSF 致力于自己的指导方针同时 Debian 致力于上面链接的同一文件中提出的准则。
根据 debian 指南,较少的 Linux 内核代码被认为不是自由软件。固件 blob 不是免费软件,已被删除,但需要单独进行。 debian 项目分发的内核稍微胖一些(因为缺乏更好的词)。
请注意,Debian 确实有linux-firmware-free
和linux-firmware-nonfree
它允许用户将多个固件(其中一些是 blob)包含在apt-get
.使用的发行版linux-libre
没有这样的设施。
当然,主要区别是debian project
分发完整的发行版,而linux-libre project
分发发行版使用的代码。