完全自由的Linux内核-libre
2016-03-25 11:25:58 阿炯

GNU Linux-libre is a project to maintain and publish 100% Free distributions of Linux, suitable for use in Free System Distributions, removing software that is included without source code, with obfuscated or obscured source code, under non-Free Software licenses, that do not permit you to change the software so that it does what you wish, and that induces or requires you to install additional pieces of non-Free Software.

GNU Linux-libre 项目创建于很久之前,它致力于为那些遵循自由软件基金会的《GNU Free System Distribution Guidelines》(《GNU 自由操作系统发行版指南》)的人们提供上游 Linux 内核的 100% 自由的版本。它从 Linux 内核中删除了一些分布在项目中的并非真正源码的“源码”,比如只提供了二进制的固件及微码,同时还禁用 Linux 中非自由组件的运行时请求,以及指向它们的文档说明。从 Linux 内核中删除了那些不含源代码、源代码被混淆或遮蔽、使用非自由软件许可证、不允许用户修改软件使其达到用户要求、诱导或要求用户安装额外的非自由软件的软件。


GNU Linux-libre 内核设计上与 GNU 操作系统的兼容性有所偏差,不过可以自由的在你的 GNU/Linux 系统上使用它,无论是要创建基于 Linux 内核的操作系统的开发者,还是要希望得到完整的自由的用户!

点此可以查看到更多的自由GNU/Linux发行版,它们的纯粹的自由操作系统(不仅是内核),由于条件过于苛刻,使得绝大多数流行的GNU/Linux发行版被拒之门外。Debian从6.0开始内核才完全自由,但它仍不是自由的发行版本。GNU Linux-libre 内核几乎可以安装在任何 GNU/Linux 发行版上,但开发人员还为基于 Debian(DEB)和基于 Red Hat(RPM)的发行版提供随时可用的安装包。


Linux 发行版只关注软件包自身的许可证,但对该软件包的依赖树缺乏审查。要知道,GNU 自由系统发行指南上明确规定:
发行版的信息和源文件必须按照合适的自由许可证提供。
发行版不应该带有非自由软件的资源库,或安装非自由软件的指导。
发行版也不应该指向未承诺只包含自由软件的第三方资源库。
发行版的开发者尽力避免非自由软件,并承诺一旦发现有非自由程序就移除。

静态链接意味着将程序的依赖项直接嵌入到程序中,它与动态链接(或动态加载)相反,动态链接将依赖库保存在单独的文件中,这些文件在程序启动(或运行时)时加载。静态链接会使依赖项成为程序的一个组成部分,不能轻易地被另一个版本取代。如果其中一个库易受攻击,则必须将整个程序重新链接到新版本。长期以来,Linux 发行版(Debian/Fedora/Gentoo 等)都在反对静态链接、固定依赖和依赖捆绑,但收效甚微,编程语言中的 Go 和 Rust 完全依赖于静态链接,发行版每纳入一个新的 GO/Rust 软件,就需要对它自身以及其依赖树逐一盘查许可,这对审查工作是非常沉重的负担。


最新版本:4.5
拉美自由软件基金会 FSFLA 在 Linux Torvalds 发布了 Linux 内核 4.5 两天后,也发布了他们的 Linux-libre 4.5 内核。GNU Linux-libre 内核基于上游的 Linux 内核,但是从代码中洁化和deblobbing了一些驱动程序,比如 Qualcomm WCNSS SOC、qat_c62x、qat_c3xxx、 goodix touchscreen、adf7242和洁化版的Nouveau、Radeon、Skylake sound、XHCI rcar等。

最新版本:5.8
2020年08月05日,随着 Linux Kernel 发布了 5.8 版本,自由软件基金会的拉美团队(FSFLA)照例跟进发布了 GNU Linux-libre 5.8 内核。此次更新是一个变化不小的版本,因此 GNU Linux-libre 需要清理的代码不少,开发团队表示,此次清理的新驱动包括 Atom ISP Video、MediaTek 7663 USB、7915 PCIe、Realtek 8723DE WiFi、Renesas PCI xHCI、HabanaLabs Gaudi 协处理器、Enhanced Asynchronous Sample Rate Converter、Maxim Integrated MAX98390 Speaker Aimplifier、Microsemi ZL38060 Connected Home Audio Processor 与 I2C EEPROM Slave,Adreno GPU、HabanaLabs Goya 协处理器、x86 触摸屏、vt6656 和 btbcm 的驱动程序,以及清理并调整各种文档细节。此外,开发者还表示,综合考虑性能与占用内存原因,现在清理 Linux 内核的脚本工具已经从 GNU Awk 和 Sed 迁移到 Python 和 Perl。

最新版本:6.2
Alexandre Oliva 于2023年2月中旬正式推出了 GNU Linux-libre 6.2 Kernel。相比较刚发布的 Linux 6.2,该内核不含任何专有代码,主要适用于那些寻求 100% 开源、自由的用户。GNU Linux-libre 6.2 Kernel 的内部代号为“la quinceañera”,IT之家从官方更新日志中获悉,本次发布也是为了庆祝自 Jeff Moe 成立 Linux-libre 项目以来 15 周年。清理了为英伟达 GPU 设计的开源 Nouveau 驱动,调整清理了 Radeon GPU 和 mt7921 Wi-Fi 驱动,清理了 vgxy61 驱动中的新 blob,禁用 mt7622 中的 blob 请求,以及 mt7996 Wi-Fi 和 bcm4377 蓝牙驱动程序。此版本还禁用了几个新的 AArch64 (ARM64) DTS 文件中的 blob 名称,删除了 s5k4ecgx 驱动程序,删除了 PCMCIA 配置文件请求和 SOF 免费固件请求的注释和相关代码,并更新了其他驱动程序中的 blob 名称。

最新版本:6.8
Linux Kernel 6.8 版本发布后,自由软件基金会的拉美团队(FSFLA)照例于2024年3月中旬跟进发布了 GNU Linux-libre 6.8 内核。值得一提的是,2024年2月 GNU Linux-libre 刚庆祝了项目诞生 16 周年。一些更新内容包括:
删除了对 atmel、hermes、orinoco_usb、libertas_cs 和 zd1201 驱动程序的清理,因为它们已经在上游被移除。
清理了 Intel qat_420xx、Imagination PowerVR、Intel Xe、Chips and Media Wave5、Intel VSC、Aquantia PHY 和 Realtek rtw8922a 的新驱动程序。
coda 驱动程序移到了上游 "source" 树中,因此对其清理工作进行了调整。
清理了 ARM 和 AArch64 devicetree 文件中的新 blob 名称。
上游修改了 .deb 打包脚本,基于此修改进行了调整,并借此机会改进了 wording。

此外,项目团队还在尝试修复 Intel i915 驱动程序的问题。2023年,我们了解到在某些 i915 硬件变体上出现了无限循环,因为它们试图回退到我们已清理为难以区分的名称的早期 blob 变体。修复了这一问题,甚至向上游提供了补丁。但我们的补丁并没有被采纳,而是针对我们的补丁做了其他修改,导致驱动程序在我们的情况下噪音更大。已经解决了额外噪音的问题,但这些上游更改并不是导致驱动程序再次损坏的原因。 我们仍然不知道是什么原因造成的,但症状与之前的故障类似:一些装有英特尔显卡的系统出现 freeze。使用 i915.enable_guc=0 启动将避免受此问题影响的系统出现明显的 freeze 现象。更多详情可查看此处


项目主页:http://www.fsfla.org/ikiwiki/selibre/linux-libre/