BSD傲气仍在,气数渐弱


如果没有 Linux,这个世界会怎样?

二十多年前,Linux 之父 Linus Torvalds 说:“如果在我创造 Linux 之前 386BSD 已经可用,那么 Linux 可能不会出生。”

后来,当人们回想反思时,也不乏有人认为:“如果 Linux 未能蓬勃发展,FreeBSD 将填补今天的空白。”


BSD(Berkeley Software Distribution,也称 Berkeley Unix),作为 Unix 最绕不开的一族分支,它的摇篮是当时美国最为激进的左派大本营 —— 加州大学伯克利分校。在这个以自由著称的学校,老学长 Ken Thompson 创造并带回了 Unix,小学弟 Bill Joy 接力发展了 BSD,经过更多校内校外参与者的一起努力,才从一场浩劫中保下了这一不同于 GNU/Linux 一派的“开源火种”

或许是学院派作风在作祟,又或许是 BSD 的创造者都是天才式人物,BSD 整体上都呈现出一种“精英主义”的气质,以公共利益和远大理想为己任,严于律己,且天生傲慢。BSD 由小群体精英把持,在努力保持自身与 Linux 之间的距离的同时,坚持着精英式的产品理念。正如 OpenBSD 创始人 Theo de Raadt 所言:“我们更多的时间是花在让东西更好,而不是让它符合大众的口味。”

01 被一笔带过的开源前史

当我们谈及开源起源和历史,第一个想到的是什么?

更多充斥我们脑中的是:自由软件运动、GNU、Linux、copyleft、OSI 等等关键词。开源的历史线更多是被划分在了 1983 年 GNU 计划诞生的那一刻,而 BSD 所代表的那部分“开源前史”常常会被一笔带过。

但实际上,开放源代码的传统、软件开源的自由精神、与专有垄断之间的战争等等在这之前早就已经扎根而下,并且在 BSD 身上集中体现了出来。

故事从 1970 年开始。当时,贝尔实验室还归属于如日中天的 AT&T,研究员 Ken Thompson 参与了几年的 Multics(一个分时操作系统)计划,无所事事的时候在这个系统上写了一个叫做太空大战(Space Travel)的打飞机游戏,结果那一年贝尔实验室退出了 Multics 计划,Thompson 的游戏也就没法运行了。

为了继续玩游戏,Ken Thompson 花了一个月的时间写了一个小型的操作系统,这就是 Unix 的雏形。所以,1970 年也被称为 Unix 元年。

随后,和 Dennis Ritchie 一起, Ken Thompson 用 C 语言重写了 Unix 操作系统。幸运的是,当时 AT&T 受到了美国《谢尔曼反托拉斯法》的限制,不能销售电话机电报机之外的商品,这为 Unix 流向学术机构打开了窗口。

Ken Thompson 和 Dennis Ritchie

因为上述原因,当时很多大学和研究机构能够相当容易地得到 Unix 的源代码和二进制代码,这样他们就可以自由地对其进行分析和改进,相互交流意见和成果,由此促进了 Unix 的迅速发展。其中,伯克利的作用不可忽视。

1975 年,伯克利购买了 DEC 公司最新的计算机 PDP-11/70 。恰逢 Ken Thompson 休假一年,回母校担任客座教授。就在这台计算机上,他安装了最新版本的 Unix(V6 版本)。在 Ken Thompson 的引导下,当时还是研究生的 Bill Joy 在 1977 年 开始编译第一个 BSD。在 AT&T 的放养状态下,Unix 得到了长足发展。

好景不长。1977 年开始,AT&T 分解后终于摆脱反垄断的掣肘,立马将 Unix 进行商业化。从 1979 年 UNIX 的 V7 版本开始,Unix 的许可证开始禁止大学使用 Unix 源码,包括在授课中学习。如果想要继续使用,就要支付价格不菲的费用得到授权。

而且,BSD 系统发行版包含每个部分的完整源代码,而不是以纯二进制格式发布。因此,BSD 每一次对外分发,都要在 AT&T 的许可之下。到了 80 年代后期,Unix 日益流行 ,AT&T 将许可费从最初的 99 美元稳步提高到 250,000 美元。

“我们编写了这段代码,他们(AT&T)却声称它是他们的。这让我们很生气,因为他们拿走了我们的工作,没有支付一分钱,还通过出售该死的许可证赚钱。”

—— Marshall Kirk McKusick (他亲身参与了 4.3BSD 和 4.4BSD 的开发和发行)

至此,UNIX 开始分为两大流派: AT&T 一路的商业化版本 Unix 和 BSD 系列(其中前者是闭源的,而 BSD 是开放源代码的)。这种格局在 1990 年代初期达到极盛,各路 Unix 版本达到了 100 多种,其中包括 SUNOS、IBM AIX、HP-UX、DEC Ultrix 与 SCO Xenix、Sun Solaris 等。这些 Unix 变种均基于 Unix 开源版本派生而来,且多为闭源的商业版。

90 年代初期,BSDi(伯克利计算机研究小组 CSRG 成立的公司)开始销售其自己的 Berkeley Unix 版本,而加州大学多年来一直在销售其版本。1992 年,AT&T 起诉加州大学和 BSDi,声称 BSD Unix 包含专有的 AT&T 代码。但实际上,AT&T 当时推出的 Unix 版本 System 5 也包含了最初由 BSD 黑客编写的大量代码 —— 包括 TCP/IP 堆栈。

于是,像 McKusick 这样的黑客被激怒了。加州大学的律师抓住了这一机会,以侵犯版权为由向 AT&T 提出反诉。一场浩浩荡荡、留名史册的版权战争就此拉开序幕。

从 70 年代 Ken Thompson 种下 Unix,再到 90 年代这场轰轰烈烈的诉讼纷争,我们能从 BSD 身上找到很明显的 FOSS(Free and Open Source Software)主要特征:

首先,BSD 的发展模式就是典型的开放模式。

在 IT 产业刚创立之时,根本没有什么开源闭源一说,软件依附于硬件的绑定附送,以源代码的形式提供的,而非现在的执行码。商业化之前的 Unix 源代码几乎是向公众开放的,随着 BSD 传播到越来越多的机构,用户开始添加额外的功能和程序,并将它们发送回伯克利的团队,以包含在下一个 BSD 版本中。

黑客返回修改版 —— 这种开放模式在开源运动还没有名字之前,就已经存在了。

其次,BSD 就是典型的自由软件。

1989 年 6 月,在 BSD 许可证下,伯克利发布了第一个可自由再分发的版本 —— Network Release 1(Net/1),它包含了实现 OSI 网络协议栈和全新 TCP/IP 算法方面的代码。

BSD 许可证是宽松的许可证。被许可人可以以源代码或二进制形式发布代码,而无需向伯克利支付任何费用或版税。尽管伯克利的一盘磁带要收取 1000 美元的费用,但任何人都可以从他人那里免费获得一份副本。事实上,在它发布后不久,几个大型网站就将其用于匿名 FTP。

最后,BSD 的精神内核就是自由,BSDer 不畏强权。

在这一时期,众多支持开源的工程师们把自己形象的比喻为《星球大战》中的自由反抗军联盟,对抗邪恶的垄断帝国。在后来,不少历史学者都将伯克利黑客描述为“自由斗士”。就像后人的评判那样:他们中没有一个人将自己视为十字军,但时不时会渗出一丝理想主义。

“我们当中很多人的目标是:生产我们心中理想的系统,为自己所用。这也是 Ken Thompson 和 Dennis Ritchie 创立 Unix 的初衷。”在后来的采访中,成立伯克利计算机研究小组 CSRG 的 Bob Fabry 教授这样表示。

就当 BSD 深陷泥淖之中时,开源世界众所周知的另一个故事也正在发生:1984 年,RMS 打出“GNU's not Unix” 的标语,发起自由软件(Free Software)运动;1991年,Linux 诞生,开源世界里的最大宇宙 —— GNU/Linux 话语体系就此形成。接下来,Linux 发展,而 BSD 让出了 C 位。

02 失去两年后,物是人非

“AT&T 与 BSD 之间的诉讼,是当代版权制度最恶劣的应用之一。”qwephp认为这场诉讼的本质是:

一家利益至上的公司,以微不足道的理由,为了一个自己根本不在乎的产品,悍然发动一场损人不利己的战争。

之所以如此评价,是因为这场战争给 BSD 带来了毁灭性的打击 —— 所有的开发活动都被迫停止,用户人心惶惶,担心自己也遭到 AT&T 的追究,因此 BSD 的使用急剧减少。最后在 1994 年,双方达到和解,BSD 才恢复开发。

This is simply a shame, actually intends to BSDi enter and stupid legal disputes AT&T's when, in the occurrence leadership vacuum, BSD community full of fear, uncertainty and doubt in the critical moment, it led to a massive loss of territory to Linux outcome.

这简直是​​一种耻辱,把 BSDi 卷入和 AT&T 的愚蠢的法律纠纷,这就出现了领导真空的情况,整个 BSD 社区都充满了恐惧、不确定性和怀疑,导致了我们失去了巨大领土给 Linux。

—— FreeBSD 创始人之一 Jordan Hubbard

1992~1994,BSD 失去了两年。这两年后来被证明是至关重要的两年:90 年代初恰好是计算机工业决定性的年代。硬件迅速发展、Intel 的 80x86 芯片横空出世、个人电脑时代来临,IT 技术的商业模式也迎来变革......被官司拖住的 BSD 没法去做移植操作系统这件事。许多本应为 BSD 做出贡献的人转而为 Linux 贡献了代码和错误修复。

We have a considerable technical background and good mind, but the lack of adequate legal safety awareness and effective leadership can unite the different tribes in BSD as a difficult moment, to lead us out to bring significant harm to the BSD community storm. We lose a very important strategic two years.

我们有相当的技术背景和良好的头脑,但是缺乏足够的法律安全意识和有效的领导可以将 BSD 的不同部落团结起来,去带领我们走出去艰难时刻。这场重大的风暴中,我们失去了非常重要的两年战略。

—— FreeBSD 创始人之一 Jordan Hubbard

其实,在本篇开头,那个被 Linus 提及的 386BSD 是最有希望重整旗鼓的 BSD 后代。

Linus 起初还是个芬兰大学生,因为买不起工作站,只好自己写了一个能在 386 上运行的操作系统。而如果他要是早知道 BSD 没有法律问题,并且可以被移植到 386,他就会加入 BSD 的开发,而不是自己写一个。(真有意思,这场官司还改变了 Linus 的命运。)

什么是 386BSD?386BSD 和 Linux 的开发几乎是同时起步的。

其实,在 Net/1(1989 年)之后,伯克利计算机研究小组 CSRG 成员 Keith Bostic 就开源领导了一个项目——抛弃 AT&T 代码,重新实现大多数 Unix 实用程序。18 个月以后,所有源自 AT&T 的实用程序都被替换,除了六个内核文件,因为它们无法轻易重写。

稳妥起见,1991 年,伯克利计算机研究小组 CSRG 发布了没有包含这六个文件的版本——Network Release 2(Net/2)。仅六个月内,Willian Jolitz 和 Lynne Jolitz (没错,夫妻档)编写了六个替代文件,并将 BSD 移植到基于 Intel 80386 的微处理器中,这个新的操作系统就被称为 386BSD。

386BSD 的初始版本可以工作,但几乎没有功能。因此,Jolitz 夫妇开始致力于创建完整版本,并在一段时间内得到了广泛关注,可惜却遭到了分裂。

当时,386BSD 的开发速度很缓慢,开发者对 386BSD 合并新补丁的速度感到不满。由于 Jolitz 夫妇和 patchkit 维护者对 386BSD 的未来方向和发布时间表存在分歧,patchkit 的维护者于 1993 年创立了 FreeBSD 项目以继续他们的工作。

而大约在同一时间,NetBSD 项目是由一组不同的 386BSD 用户创建的,目的是将 386BSD 与其他 BSD 开发分支统一为一个多平台系统。不久之后,NetBSD 内核一场内部纠纷导致了 OpenBSD 的诞生。至此,开源的 BSD一脉就主要由 FreeBSD、 NetBSD、OpenBSD 所构成。

不少人都认为,这场分裂直接导致了 BSD 在今天的操作系统的竞争中处在落后地位。

03 傲气仍在,气数渐弱

关于 BSD 和 Linux 有一个很经典的说法:

BSD is what you get when a bunch of UNIX hackers sit down to try to port a UNIX system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a UNIX system for the PC.

BSD 的黑客们试图将 Unix 移植到电脑上,而 Linux 则是黑客们尝试在电脑上写一个 Unix。

事实上,BSD 就是传统 Unix 的直接衍生品。而 Linux,则是一个松散的基于 Unix 衍生品 (Minix) 而新创建的一个 OS 。

Unix 各族图谱

而在 BSD 的血液里,傲慢几乎是与生俱来的。

BSD 的第一版撰写者 Bill Joy 是个神童,Salon 的一篇报道中不掩赞许之情:如果有人有权傲慢,那就是Bill Joy。

Bill Joy 写出了 vi 这个让无数程序员爱不释手编辑器,被称为“编辑器之神”;与 GNU 发起人 RMS 所写的 “神的编辑器”Emacs 一起比较,拉开了程序员之间有关编辑器的“甜咸之战”。

Frankly, none of us really understand Bill and his curious mindset. Bill is definitely a smart guy, very difficult to complete a lot of code but he is such a person, if they are for you. the company's work, then, will own and a workstation locked in a room, eating such food pizza, do not open the door and put everything stuffed under the door.

坦白说,没人能懂 Bill 和他奇怪的思维。他很聪明,能完成非常复杂的编码。但他是这样的人:在公司他会将自己锁在工作室里,从不开门,吃着类似披萨一样的东西,把东西从门缝里推出来。

— FreeBSD 创始人之一 Jordan Hubbard

Bill Joy

不仅是 Bill Joy,整个 BSD 的傲气都十分外漏。 Marshall Kirk McKusick 后来深度参与了 FreeBSD,他就曾表示,90% 的 committers 所贡献的代码都不能用,还剩下的一小部分则需要“were peed upon to make them smell like Berkeley”(不翻译了,大家自行体会。)而这也是 FreeBSD 保存有整个等级制度的原因。

这种傲慢还体现在了他们看待开源协作 和 GNU/Linux 的方式上。

从 Bill Joy 开始,他就不认同 Linux 的基本信条 —— 去相信庞大的志愿程序员群体。他不相信拥有更多的程序员就等于更好的代码:

大多数人都是糟糕的程序员,让很多人盯着代码不会真正发现错误。真正的错误是由几个非常聪明的人发现的。大多数人看代码不会看到任何东西......不能期望成千上万的人做出贡献并都达到高标准。

当然,后来的事实证明这种看法是错误的。而 BSD 与 GNU/Linux 的分歧远不止这些,他们对自由的理念也南辕北辙。

We never considered GPL license like BSD, like it's short and flexible like him popular for engineers and lawyers to read, which achieved our aim, although it limits our responsibility (liability), but! At the same time as the code uses as many people. GPL is not what we think of identity license, but a political declaration.

我们从来没有考虑过 GPL。BSD 虽然限制了我们的责任,但它短小灵活,很受工程师和律师的欢迎,这达到了我们的目的。然而,同样是为了代码得到尽可能多的人的使用,GPL 并不符合我们的身份认定, 是一种政治宣言。

—— FreeBSD 创始人之一 Jordan Hubbard

 Linux 他们做的事是因为他们讨厌微软,我们所做的事情是因为我们热爱 Unix。

—— OpenBSD 创始人 Theo de Raadt

I do not mind whether the user back to their feedback to modify the code, and if this happens, is the icing on the cake (an added bonus), but I What do not tend to do to make it happen, such as a gun to force it to the other side into submission (enforce at the point of a gun ).

我不在乎用户是否会返回修改后的代码,如果有当然是锦上添花,但我并不有意去这样要求,这就像拿着枪去强迫别人屈从一般。

—— FreeBSD 创始人之一 Jordan Hubbard

 因此,在 FreeBSD 的官网介绍上,其以“Liberal ”自称,而特意与“Free”区别开来。

FreeBSD 官网截图

 分裂之后, FreeBSD、 NetBSD 和 OpenBSD 的发展都不太尽如人意。

以最高调的 OpenBSD 为例,在 2014 年的时候,OpenBSD 一度因为资金问题陷入困境。此外,其创始人 Theo de Raadt 还非常直言不讳,有次因为谴责美国对伊拉克的战争,导致美国国防部先进研究计划总署(DARPA)中止其对 OpenBSD 二百三十万美元的资助。此后, OpenBSD 年初“喊穷”的新闻成为了好长一段时间的固定节目(罗永浩的锤子科技还多次成为其白衣骑士)。

三者之中,混得最好、市场份额最大的莫过于 FreeBSD。当 NetBSD 和 OpenBSD 出现问题时,不少 BSD 的开发者都在向 FreeBSD 靠拢。如今它已在全球数百万台服务器中使用,被 Netflix 、苹果(苹果OS 与 FreeBSD 渊源颇深)、WhatApp、IBM、诺基亚等公司广泛使用,它几乎渗透进了现在 IT 产业的半壁江山,却从不显山露水,被称为“操作系统的无名英雄”。

FreeBSD 吉祥物 —— Beastie 小恶魔

在 2020 年的一场采访中,FreeBSD 基金会的执行主管 Deb Goodkin 这样呼吁:

We need more PR for FreeBSD and get more tech journalists like yourself to write about FreeBSD. We also need more trainings and classes that include FreeBSD in universities, trainings/workshops at technical conferences, more FreeBSD contributors giving talks at those conferences, more technical journalists, as well as, users writing about FreeBSD, and finally we need case studies from companies and organizations successfully using FreeBSD.

FreeBSD 需要更多的 PR 与曝光,欢迎更多的媒体来报道 FreeBSD。 同时,我们还需要开设更多 FreeBSD 相关的大学课程和培训、在研讨会上组织工作坊、更多 FreeBSD 的贡献者可以在论坛上畅所欲言,更多科技记者和写手的关注 FreeBSD。最后,我们希望能看到更多企业和组织成功地使用 FreeBSD。

其实,BSD 同样也需要更大范围的认可,希望能够站在聚光灯下,让大家都能看到。

McKusick 有句话说得很对:BSD 和 Linux 阵营在组织战略上的分歧是微不足道的。重要的是开源,而不是 Linux 或 BSD 胜出。


相關推薦

2022-02-22

撞了, BSD 不会真正受到太大影响。” 这样左派又带点傲气的观点,真是典型的 BSD 的啊。而 FreeBSD 之后出现的管理和开发方式问题,多多少少也带了一些遗传在身上。 从开发过程上看,FreeBSD 与 Linux 最大的不同就是 —

2023-06-06

IceWM 是一个为 GNU/Linux 及 BSD 设计的轻量级桌面环境。作为一个在 X 上的轻量级桌面环境(窗口管理器),IceWM 的优点是较快的运行速度:把主要的运算能力与内存空间给了运行的程序,自身仅占用很少一部分。 IceWM 3.4 版本发

2023-06-20

FreeBSD 项目庆祝其开源 BSD 操作系统项目成立 30 周年。 FreeBSD 是一款开源操作系统,于 1993 年在加利福尼亚大学伯克利分校开发出来,目前每天都被全球数十亿人使用,并对我们产生了积极的影响。许多顶级的科技公司和产

2022-11-20

或变量)的命令 return() 命令增加了一个 PROPAGATE 选项 BSD 和 CMAKE_HOST_BSD 变量现在被设置为一个字符串值,当目标系统或主机系统是 BSD 时 The “LINUX” and “CMAKE_HOST_LINUX” variables are now set to true when the target or host system is Linux,

2023-04-04

DB-Engines Ranking 会根据受欢迎程度对数据库管理系统进行排名,排名每月更新一次。 四月数据显示,对比三月排名,前十依旧保持不变,按顺序依次是:Oracle、MySQL、Microsoft SQL Server、PostgreSQL、MongoDB、Redis、IBM Db2、Elasticsearch、SQ

2022-06-12

DragonFly BSD(DragonFlyBSD) 是一套开放源代码的类 Unix 操作系统,自 FreeBSD 4.8 分支。 DragonFlyBSD 6.2 于 1 月份推出,其中包括 AMDGPU Linux 内核驱动程序端口、HAMMER2 改进和 NVMM 管理程序端口,以及其他改进。周末发布的是 Drago

2023-01-13

NetBSD 是一个快速、安全,基于 BSD 的类 Unix 开源操作系统。它可用于各种平台,从大型服务器、强大的桌面系统到手持和嵌入式设备。目前 NetBSD 在默认情况下使用的是 FFS 文件系统,同时它对 ZFS 的支持也在不断改善。 四天

2023-01-24

helloSystem 0.8 已发布,此版本基于 FreeBSD 13.1 构建,目标是打造一个简洁、优雅和实用的桌面操作系统。 0.8 主要变化: 改进启动命令 预安装 VirtualBox Guest Additions 以获得更好的 Oracle VM VirtualBox 用户体验 改进对 MIDI 控制器

2023-02-28

。 Pea 1.12 代码 各种修复和代码清理,改进了对BSD系统的支持 文件管理器 改进了一般的可用性,更容易在新标签中打开、在新窗口中打开的控件、更容易在当前路径中打开控制台,更容易访问剪贴板内容。 在主

2022-11-25

灵感来自先前的内核和操作系统,如 SeL4、MINIX、Plan 9 和 BSD。它与 GNU 和 BSD 类似,但用一种内存安全的语言编写,是在 MIT 许可下发布的开源软件。 目前 Redox OS 0.8.0 发布了,此版本添加了 i686 支持、启用了音频和多显示器支持

2023-04-19

例如 Tomcat 10。如果你使用 Java EE,例如 Tomcat 9,建议改用仍在维护的最新 javamelody-core 1.x。 #1143 将 javamelody-spring-boot-starter 迁移到 Spring Boot 3。如果你使用 Spring Boot 2,则建议使用仍在维护的最新 javamelody-spring-boot-starter 1.x。

2022-04-09

够在多种兼容 POSIX 接口的操作系统(诸如 Linux、macOS 与 BSD 等)上运行 Windows 应用的兼容层。它不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其它一些行为

2022-06-05

够在多种兼容 POSIX 接口的操作系统(诸如 Linux、macOS 与 BSD 等)上运行 Windows 应用的兼容层。它不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其它一些行为

2022-06-19

够在多种兼容 POSIX 接口的操作系统(诸如 Linux、macOS 与 BSD 等)上运行 Windows 应用的兼容层。它不是像虚拟机或者模拟器一样模仿内部的 Windows 逻辑,而是将 Windows API 调用翻译成为动态的 POSIX 调用,免除了性能和其它一些行为