小恶魔FreeBSD的前半生

小恶魔FreeBSD的前半生

auxtenauxten

FreeBSD或者BSD在现如今的技术圈越来越少的被提到,以至于入行晚的一些程序员可能从没有听过这个名字。

但对于有一点资历的程序员,提到BSD定能想到UNIX当年的无上荣光。BSD是自由操作系统中低调的巨人。它不是Unix,但如Unix一样运行,兼容POSIX。作为一个操作系统,BSD是相当稳健可靠的。BSD并没有消失,而是变成了支撑这个世界运行的基石。无论是IBM的AIX、Sun的Solaris还是HP的HP-UX无一不是流淌着UNIX血液的优秀服务端操作系统。

FreeBSD小恶魔

聊BSD不得不提FreeBSD,FreeBSD作为最有影响力的BSD发行版,几乎早已成为BSD的代名词。FreeBSD项目起源于 1993 年早期,最开始的代码是作为非官方的 386BSD 操作系统的补丁包存在的。项目最初的目标是做出一份 386BSD的测试版以修正一些 Patchkit 机制无法解决的bug。 这也是刚开始项目名称叫做 “386BSD 0.5” 或者 “386BSD Interim”的原因。

386BSD是 Bill Jolitz 写的操作系统, 当时已经长达一年没有维护了。由于 Patchkit 在过去的每一天里代码都在急剧膨胀, 使得在386BSD基础上再对其进行功能添加变得越来越困难,
因此FreeBSD早期的三个作者一致同意应该做些改变,兴冲冲地找到了 Bill Jolitz 征求他的建议。然而,热脸贴了冷屁股,Bill Jolitz却告诉他们他已经不想再维护386BSD这个项目了。

没过多久, 大家认为即便没有 Bill 的支持,项目仍有继续下去的价值,因此,在 David Greenman 的建议下,大家给项目起了一个新的名字“FreeBSD”,准备另起炉灶大干一场。在和当时的几个原始用户商量后, 大家提出了最初的目标。很快,FreeBSD这个项目就走上了正轨,并在1993年10月发布了第一个版本。 在互联网还没有普及的当时,为了拓展 FreeBSD
的发行渠道,大家抱着试试看的心态, 联系了一家叫做 Walnut Creek CDROM的光盘商,以便那些上网不方便的用户得到 FreeBSD(后世的Canonical为了推广Ubuntu也采用了类似的方法)。

Walnut Creek CDROM 不仅支持发行FreeBSD 光盘版的想法, 还为这个计划提供了所需的计算机和高速网络接入。 在那时,若没有 Walnut Creek CDROM对一个完全未知的项目的空前信任,FreeBSD 不太可能像它今天这样,影响如此深远, 发展如此快速。然而不幸的是,Walnut Creek CDROM在互联网普及之后没有顺利转型,在2000年被廉价收购。

Walnut Creek CDROM

FreeBSD 1.0是一个基于 U.C. Berkeley 的4.3BSD-Lite,外加许多 386BSD、GNU的组件的版本。

GNU is Not Unix

1994 年 5 月,FreeBSD 1.1 发布。在这段时间,发生了一些意外的情况。 Novell 和 U.C. Berkeley 就 BSD Net/2 (386BSD的前身)知识产权的马拉松式的官司达成了和解。和解中的一部分是 U.C. Berkeley 作出的让步,令BSD Net/2 中的一大部分内容成为 “受限的(encumbered)” 和属于Novell 知识产权的代码, 而后者在不久前刚刚从 AT&T 收购了这些产权; 作为交换, Berkeley 得到了来自 Novell 的“许诺”, 在 4.4BSD-Lite 版本正式发布时, 可以声明为不受限的 (unencumbered),现有的基于 BSD Net/2 的操作系统不得不迁移到4.4BSD-Lite版本,FreeBSD则被允许在 1994 年 6 月底之前继续发行基于BSD Net/2 的产品。根据和解协议, 在最后期限之前FreeBSD发布了最后一版基于BSDNet/2的版本:FreeBSD 1.1.5.1。

BSD家族树

接下来,FreeBSD 开始了艰苦的从全新的、 不太完整的 4.4BSD-Lite 重新编写自己的过程。
4.4BSD-Lite由于上面说的法律原因删除了用于系统启动引导的一大部分代码 ,而且当时 4.4 在 Intel 平台的移植版本还有很多工作没有完成。 直到1994 年 11 月, FreeBSD才完成了这项迁移, 并通过网络以及 CD-ROM (在 12 月底) 上发布了 FreeBSD 2.0。尽管系统中还有很多比较粗糙的地方, 这个版本还是取得了巨大的成功, 并在 1995 年 6 月发布了更强大和易于安装的 FreeBSD 2.0.5版本。

紧接着FreeBSD于 1996 年 8月发布了 FreeBSD 2.1.5 版本,这也就开始了FreeBSD的辉煌传奇:

  • Juniper Networks在FreeBSD的基础上开发了JUNOS,并用在了其几乎全线的网络设备产品中。
  • 苹果的MacOS、iOS让FreeBSD运行在了无数的iMac、MacBook、iPhone、iPad、iWatch、Apple github.com/apple/darwin
  • 索尼用FreeBSD创造了PlayStation3,PlayStation4。
  • 任天堂用FreeBSD创造了Nintendo Switch。
  • 同样基于FreeBSD开发的还有IBM的AIX、Sun的Solaris、HP的HP-UX。
  • Netflix, WhatsApp, FlightAware的很多线上服务器也是基于FreeBSD的。
「晚饭加个鸡腿」
还没有人赞赏,快来当第一个赞赏的人吧!
文章被以下专栏收录
16 条评论