第19.8节 重提 FreeBSD 与大败局

还有人记得Linux之前,那个理想又骄傲的BSD吗?open in new window

作者:lola

FreeBSD 大败局open in new window

作者:肖滢 & lola

首先不知道何为 FreeBSD 大败局的建议阅读下以上 2 篇文章,当然当初我很快给出了我粗浅的回应:

Linux 败局已定——驳 FreeBSD 大败局open in new window

文不加点,当时写得很快,不到两个小时就写完了,而且并没有动什么脑子。可能就是意气用事,为了反驳而反驳吧。当然我也没打算说他在现在就是正确的了。我只是觉得现在更加值得花时间来在文档和代码之外来谈论一下这些更加吸引人的东西。

001

在之后的日子里,FreeBSD 没能重现 BSD 的往日荣光,反而一直生活在 Linux 的阴影之下。“Linuxism” 成为 FreeBSD 内部常常挂在嘴边的一个词,其中透露出酸酸的比较之味。

一方面,FreeBSD 坚定地沿袭 Unix 的一些传统,坚决地想要与 GNU/Linux 保持距离;另一方面,FreeBSD 也在积极地寻求更长足的发展,想要至少在某些方面保持优势。

世事如棋局,得势者得天下。以势定夺,怎么看 FreeBSD 领到的剧本都是一个 “大败局”。

Linuxism(Linux 主义/歧视)真的只是一种 FreeBSD 吃不到葡萄就说葡萄酸的牢骚话吗?光阴荏苒,时光如梭,自由软件运动持续了半个世纪有余,能够留存至今并真正意义上具有使用价值和能力的操作系统寥寥无几,更遑论开源操作系统了。自由软件运动所推崇的操作系统或者说内核(实际上是微内核) GNU Hurd,反正我是没用过……

如果你使用了 systemd 还实现了所有的 Linux ABI,并且用了一大堆的 GNU 软件,而且你的内核也实现了所有的 Linux 特性,只有包管理器不一样,那么你究竟是 Linux 呢还是你自己的操作系统呢?这看上去是一个忒休斯问题。实则并不难回答。

而今几乎所有的 GPL 软件都使用 Linux 作为自己的开发测试平台,并且结合了越来越多的 Linux 特性,乃至于让 Eclipse IDE 这种 java 软件都失去了可移植性。他们只会说你的系统我们并不关心,你自己打补丁就是了,因为我们只用 Linux。他们与 Linux 内核的某个特性紧密结合,并且死死捆绑。仿佛这些软件不依赖 systemd 就活不下去一样,比如 todesk——他们认为“(todesk)没必要兼容 init,反正我用的 systemd,谁还在用那玩意”,他们官方 Linux 版本 QQ 群里的管理员就是这么说的。

FreeBSD 恪守古老的 UNIX 法则,坚持其 BSD 开源哲学,坚持基本系统去 GNU 化。这意味着你不会遇到用包管理器就卸载了所有内核或者 glibc(C 库)这种蠢事。基本系统的软件都由 FreeBSD 项目统一维护,Linux 则没有基本系统这个概念,或者说 Linux 系统就是由一个个软件包拼凑起来的,如果你用过 LFS/Gentoo/ArchLinux 就会有明确的体验。一切命令/二进制文件都是由软件包或者 shell 提供的,也就都可以用包管理器来管理,比如说卸载……所以不难理解包管理器卸载内核这件荒唐事。

FreeBSD 去 GNU 化(https://wiki.freebsd.org/GPLinBaseopen in new window)是贯彻其 BSD 哲学的实践。FreeBSD 项目认为基本系统中的 GNU 软件(很多常见的比如 grub vim nano tar 等)都会阻碍人们对 FreeBSD 的充分利用,因为人们被迫接受了 GPL 这一强制性开源的协议,不利于其更加自由的使用。这是出于 BSD 与 GPL 观念上的不同——GPL 强制开源(虽然也有很多方法隔离污染,比如 Android 所做的),而 BSD 则允许闭源(比如 Chromium)。但是这并不意味着 BSD 强制性的要求用户不能使用 GNU 软件,它只是基本系统(你安装好的系统)中去 GNU 化。你完全可以自己替换(实际上也不难,用包管理器一个个安上就是了),毕竟 FreeBSD 完全是自由的。

但是我看不出 FreeBSD 能有何出处了,这也是现实——引以为豪的 TCP/IP 远远落后于 Linux,BBR 移植了数年仍然性能低下;驱动问题更是难以解决,甚至放弃了对自己的英特尔驱动的维护,转而使用了 linux drm;zfs 更是已经被引入了使用人数最多的 Ubuntu,不再是 FreeBSD 等少数系统的专属了。

或许 FreeBSD 真是一个败局吧?