开源纯粹主义:每一颗螺丝钉都是自由的

“我使用一台 Thinkpad T400s 电脑,它有一个自由的初始化程序 libreboot 和一个自由的操作系统 Trisquel GNU/Linux。这是 FSF 认可的计算机之一。”

自由软件运动创始人 RMS 在其个人博客上谈到了自己最新的计算机配置。此前,RMS 在很长一段时间里使用的是一台中国产的龙芯电脑 —— 由中科梦兰出品的 9 英寸迷你笔记本,同样配置了自由初始化程序 PMON 和自由操作系统 gNewSense。不幸的是,坊间传言这台伴随了 RMS 多年的电脑在他的一次阿根廷之行中被当地小偷顺走了。

作为自由软件运动的精神领袖,RMS 对自己的电子设备所运行的软件代码要求 100% 自由开源,并在生活中处处与专有软件划清界限,甚至达到了很多人看来近乎 “偏执” 的程度。

例如,RMS 至今仍然拒绝使用任何品牌的手机,因为他认为 “手机是跟踪和监视设备,它们都使电话系统能够记录用户的去向,并且许多(也许全部)手机都可以远程转换为监听设备。” 经常外出游历的 RMS 为了能够随时随地开展工作,不惜把笔记本电脑用绳子挂在身上也不愿使用移动设备。

开源纯粹主义:每一颗螺丝钉都是自由的_第1张图片

(图片来自百度贴吧)

在生活中的大多数情况下,RMS 都坚持使用现金进行支付,以避免任何商业机构获取其个人信息进而侵犯其隐私,只有在购买机票、租赁汽车、入住酒店等服务提供方必须知道其个人信息的场景下才使用信用卡进行付款。 

当私下与友人合影或被别人拍下时,RMS 会要求对方不要把照片放到 Instagram 或 Whatsapp 等所有 META 公司(原 Facebook)旗下的社交平台上,因为 “该公司会跟踪出现在照片中的人。” 

RMS 将自由软件的精神写进了 GNU 章程,并以身作则地对所有意图 “侵犯个人隐私” 的非自由软件产品说 “不”。他的这种特立独行、充满极客精神的生活方式在全球范围内吸引了不少开源爱好者的追随。这些 GNU 精神的追随者在社区中被人们称为 “纯粹主义者”。

电脑里的每一颗螺丝钉都得是自由的

纯粹主义者遍布各大开源软件社区,他们同 RMS 一样,希望自己使用的所有软件都尽可能是自由和开源的,以避免不明代码的闭源软件收集自己的任何数据。而操作系统作为集成所有软件的中枢,自然受到了重点关注。

在这些容不得一点 “闭源” 沙子的纯粹主义者眼中,各大开源操作系统采用的固件成为了他们的 “眼中钉”。 

固件(Firmware)是指硬件设备内部自带的代码模块,操作系统中对应的驱动程序通过固件与硬件进行交互,才能按照标准的设备驱动实现特定硬件的运行动作,比如显卡、光驱、刻录机、蓝牙、无线网卡等都有内部固件。这些固件不属于操作系统的一部分,通常来自第三方硬件供应商的预编译,且大部分代码不是开源的。

开源纯粹主义:每一颗螺丝钉都是自由的_第2张图片

GNU 项目在中对自由系统发布指南这些固件进行了明确的定义:

有些应用和驱动需要固件才能工作,而有时该固件只以目标代码的形式发布,其许可证也是非自由的。我们称这些固件为 “blobs”。在大多数 GNU/Linux 系统中,你会发现它们在 Linux 内核中和某些驱动软件一起发布。这些固件应该要从自由的系统发行版中被移除

Blobs 有很多形式。有时,它们以单独的文件提供。有时,它们结合在驱动软件自身的代码中。比如,它们可能以大数组的形式编码。但是,无论如何编码,任何非自由的固件需要从自由系统中移除。

自由软件基金会(FSF)认为一个符合 GNU 精神的自由操作系统不应该包含这些闭源固件,一些 FSF 社区核心开发者甚至为 Linux 内核开发了一系列能够移除非自由固件的脚本。

GNU 项目还提供了一个所有固件完全自由开源的 Linux 内核分支 ,在该项目的说明下GNU Linux-Libre顺带抨击了 Linus Torvalds 主导的 Linux 内核社区 “包庇” 这些非自由固件:

Linux 是由 Linus Torvalds 等人开发和分发的内核,包含非自由软件,即不尊重您的基本自由的软件,它会诱使您安装它不包含的其他非自由软件。即使在据称将所有固件从 4.14 版移到一个单独的项目之后,由 Torvalds 先生发布的 Linux 所谓的 “源代码” 仍然包含伪装成源代码的非自由固件。 

事实上,因为绝大多数的普通用户并不在意自己电脑里的每一个角落是否都自由开源,所以大部分 Linux 发行版都会直接采用第三方供应商提供的闭源设备,比如 Wi-Fi 和蓝牙这类开箱即用的硬件。毕竟从成本考虑,这些硬件确实已经足够好用且实惠,不值得社区再额外投入人力去搞自研再开源。但有一家发行版例外,那就是我们的  “开源长老”Debian。 

作为最经典的 Linux 发行版之一,Debian 社区最大程度地传承了 GNU 的自由精神。一直以来,Debian 社区把所有商业公司排除在合作伙伴之外,并坚持确保 Debian 操作系统生态中涉及的所有软件上下游项目都是自由开源(FOSS)的。为了打消人们对固件的疑虑,Debian 官方列出了系统所采用的 列表,以证明系统本身的 “纯度”。 

类似的开源操作系统分支还有从 Ubuntu 分叉而来的 ,该系统被描述为 “全 FOSS 无 blobs 版本” 的自由操作系统;从诞生之初就主打 “百分之百 FOSS” 的开源操作系统PureOS等等。

艰难的取舍

追求万物皆 FOSS 的纯粹主义理想很丰满,但现实却是社区驱动的硬件技术与专业硬件厂商的技术仍存在难以弥补的差距。 

前 Debian 项目负责人 Steve Mcintyre 曾撰文表示:

很长一段时间以来,我们一直假装不需要在 Debian 系统上支持和包含(非自由)固件。我们在 Debian main 中提供了一小组自由固件的二进制文件,这些自由固件包含在我们的系统中,这太棒了 —— 我们都喜欢自由软件,而且这很有效。 

但是,还有更多非自由的固件二进制文件。如果我们能够合法地重新分发这些二进制文件,我们会将它们打包并将它们包含在存档的非自由部分中。作为自由软件开发者,我们不喜欢为我们的用户提供或支持非自由软件,但我们需要承认这有时对他们来说是必要的。这种矛盾在 Debian 自由软件指南中得到承认。

一位原本支持纯粹主义的 Debian 用户也结合自身的经历,描述了这一现状:

使用没有 Blobs 的系统固然很好,但现实却是有些事情需要专有的东西才能实现。 

以 Linux 中的 NVIDIA 显卡驱动程序为例。社区开源版本的 Nouveau 虽然可以满足基本的工作需要,但如果你想做除了基本计算之外的任何事情,你只能使用 NVIDIA 官方最新的驱动程序(闭源的)。 

出于某种原因,我的 Linux 发行版曾经需要安装 NVIDIA 驱动程序,但它似乎无法在我的主机上运行,​​我被 Nouveau 困住了。这样一来,如果我尝试在电脑上播放视频,画面就会非常卡顿。我在 Debian 论坛上寻求帮助,其中一个建议居然是让我买一个新的显卡……

我的旧卡完全有能力做我需要的一切,阻碍它的只是我必须使用 FOSS 驱动程序。因此,虽然理论上让 FOSS 驱动程序与我的 FOSS 操作系统一起使用是完美的,但有时我们必须妥协并使用最能满足需求的工具。 

我希望能够抛弃我机器上的所有专有软件,这就是我使用 Linux 的原因,但现实生活让我不得不使用一些专有的东西。

从商业竞争力的角度来说,NVIDIA 等先进的硬件厂商并不会把最新的技术在第一时间共享到开源社区,提供各种闭源固件的硬件厂商也是如此,这就导致了留给开源社区选择的余地其实并不多。 

在 “纯度” 与 “便利” 的取舍中,纯粹主义者们陷入了理想与现实的两难境地。

开源实用主义者

在纯粹主义派陷入闭源固件带来的精神洁癖折磨时,开源社区中一些同样特立独行,却又不拘一格的极客们迈着 “六亲不认” 的步伐走出了另一条道路 —— 管你固件还是螺丝钉是不是闭源的,好用就行 —— 我们姑且称之为 “开源实用主义”。 

我们熟悉的 Linux 内核创始人 Linus Torvalds 就是开源实用主义派的代表人物。Linus 不会因为一款好用的软件是闭源的就拒绝使用,反之亦然。 

在开发出 Git 之前,Linus 曾使用由 BitMover 公司为其提供的专有软件 BitKeeper 来进行 Linux 内核的版本管理工作,并不吝夸赞其是 “Best tool for the job”。因为这件事,以 RMS 为代表的纯粹主义派不止一次地公开批评 Linus 不该在 Linux 内核社区中使用闭源工具。

开源纯粹主义:每一颗螺丝钉都是自由的_第3张图片

当然,脾气暴躁的 Linus 怼起老前辈们的开源项目来也是毫不留情。

对 RMS 亲手创建的开源编辑器 Emacs:

“无数只猴子在 GNU Emacs 项目上打字,这也注定他们永远不会成为一个好项目。” —— 1995 年

“真正的 Emacs 是魔鬼工具。” —— 2012 年

对同属 GNU 计划的开源桌面环境 GNOME: 

“我觉得 GNOME 有局限的主要原因就是它自身所拥有的局限性。”—— 2007 年

“我还没遇到谁会喜欢邪恶混乱的 GNOME-3。”—— 2011 年

“整个 GNOME-3 的用户体验几乎完全是失败的,’在默认配置下,他们连解决问题的最基本的工具都不给你,但你可以通过非官方的扩展解决它‘。”—— 2012 年

有趣的是,尽管 Linus 多年来不断地抱怨 “真正的 Emacs”,但他的首选编辑器仍是一个不同的 Emacs 实现,叫做 MicroEmacs 的定制版本;他本人也常常在 GNOME、KDE、Xfce 等开源桌面环境中来回切换,哪个好用就用哪个。Linus 抨击这些开源项目的原因也只有一个 —— 他觉得这些工具不好用。

此外,Linus 的个人设备也都来自各大知名电脑厂商,其最近一次是一台公布的个人电脑配置总价约 3500 美元的 Dell XPS 13,包含技嘉的主板和 AMD 的 CPU 等 —— 当然,这些设备不可能每个固件都是开源的。为了表达自己对这台电脑的喜爱,Linus 甚至不惜为 Dell 品牌免费打广告:“我通常不会透露具体的品牌名称,但 XPS 13 例外,只是因为我太喜欢它了,所以我最终在女儿上大学时还给女儿买了一个。“

开源纯粹主义:每一颗螺丝钉都是自由的_第4张图片

同样的,另一位知名 Linus 内核社区维护者 Greg Kroah-Hartman 的个人设备曾包括一台苹果 MacBook Pro Retina 和一台自己组装的 Intel 台式工作站;Git 项目现在的主要维护者 Junio C Hamano 则偏爱三星和东芝推出的 Chromebook,有时也使用联想 ThinkPad 来运行 Ubuntu。 

毫无疑问,这些如今仍然活跃于开源社区一线的维护者们喜欢 Linux,在日常生活中偏爱开源软件,也致力于向更多的人推广开源软件,但他们仍然会根据自己的需求选择一些并不完全开源的东西

“纯粹” 虽好,过犹不及

Debian 在闭源固件问题上的困境是整个开源界在 “纯粹主义” 和 “实用主义” 两派之间陷入两难的缩影。激进的 “纯粹主义” 似乎正在成为侵蚀社区的一种 “政治正确”。 

针对 Debian 社区中关于闭源固件的争论,一些 Debian 用户在论坛上留下了各自的看法: 

“您可能认为拥有源代码可以让您 100% 了解硬件内部发生的事情。但是,除非您可以检查其中所有芯片的完整电路图,了解它们的工作原理并检查每个芯片是否符合要求,否则您还是无法保证该代码实际上正在按照您的想法执行。” 

“我想知道这些人中是否有人开车,现代的汽车部件中都含有闭源固件。他们应该被禁止开车参加 Debian 会议,或者被告知骑自行车或驾驶老式汽车,以免他们被封闭固件的‘阴暗面’诱惑。” 

“推广开源软件的正确姿势应该是努力把开源项目做得比专有软件更好用,吸引用户的关键在于你好不好用,而不是你开不开源。” 

事实上,专有固件与开源操作系统的融合只是冰山一隅,随着 MIT、Apache、BSD 等宽松开源许可证的流行,开源软件与商业软件的相互交融已经成为行业的大势所趋,符合纯粹主义者标准的 100% 自由与开源软件(以 GPL、AGPL 这类 Copy-left 协议授权)受众面正变得越来越小。

根据 WhiteSource 对全球超过 400 万个开源项目的数据调查,过去 7 年,采用宽松开源许可证的开源项目占比连年攀升,在 2021 年已超过 75% 。而采用 GPL 等 Copy-left 许可证的开源项目占比已经从 2012 年的近 60% 降到了 22%。  

开源纯粹主义:每一颗螺丝钉都是自由的_第5张图片

SalesAgility(开源 SuiteCRM 背后的公司) CEO Greg Soper 表示,宽松开源许可证的流行是由市场趋势驱动的,这样专有软件厂商就可以没有后顾之忧地采用开源软件,从而增加了开源软件在生产环境的落地实践,遵循开源社区道德准则的厂商再把这些先进的案例反馈回社区。另一方面,开源开发者通过采用宽松开源许可证,能够尽可能地扩大项目的受众范围,给自己的开源作品最大的推广机会。正是这种 “开源 + 商业” 结合的模式促进了如今全球软件行业技术的创新与发展。 

不可否认的是,正是 RMS 一直以来坚持的 GNU 精神让自由与开源软件的星星之火冲破 20 世纪末专有软件巨头们的封锁,在 21 世纪的今天燎原,改变了整个软件行业的发展模式。 

“纯粹” 虽好,但凡事过犹不及。RMS 的自由软件精神应该得到传承,却不应该是以与现代社会和大众用户的割裂为代价。

你可能感兴趣的:(开发语言,java,mybatis,spring,cloud)