Unix,BSD,Solaris和Mac OS X的故事

  按照這前兩天的想法,我想在《知識星球》裏寫遠比我電臺裏要詳細的多的軟件發展史。因爲很多的內容不適合在電臺裏講,比如一些技術。

  雖然這裏只有20個人,但是我還是希望大家能夠有所收穫。而不僅僅是瞭解一些非常淺的知識,比如,如何在Linux配置Java的開發環境。

  我想到的素材我會隨時記錄在這裏,目前來說可能有一些錯誤,等到正式成文的時候,我會盡量讓文章沒有明顯的錯誤。

  1

  Linux的故事當然也是非常精彩,但是由於Linux有一個軟硬不吃,水火不容的GPL協議,所以Linux不走尋常路,在一些關鍵技術上,不用Unix,BSD和Solaris的代碼,當然,重新山寨是沒問題的,比如當其它幾個操作系統都在支持ZFS這個文件系統的時候,Linux自己根據ZFS山寨了一個叫Btrfs的文件系統。

  這個Btrfs是Suse(SUSE Linux Enterprise Server)的默認文件系統,其它的大部分Linux發行版會用ext4,前兩年有個測試,Btrfs用了5秒就掛了,ext4時間長點,用了兩個來小時(正式發佈在知識星球的時候,我會補上那篇測試文章的鏈接)。Linux的文件系統沒有那麼強大。(正式發佈在知識星球,我會補上Linus對ext4發表的幾次不友好言論。

  Linux是個偉大的系統,當然有偉大的程序員來開發,Linux從最初的FFS,到ext2, ext3, ext4(其實ext起源於Minix)再到後來的Btrfs, XFS, BCacheFS,已經可以自成一個故事體系了。如果有機會,我再專門去寫Linux。

  在這個文章裏,寫的是除了Linux的文件系統,因爲除了Linux和微軟,其它幾個操作系統之間經常互通有無,Linux至少有半數軟件是基於BSD的,但是由於Linux的GPL協議,對BSD幾乎是只取不予。反而這幾個Unix,BSD,Solaris和Mac OS之間的比較有趣。

  2

  文件系統的英文名叫File System,所以,最初Unix的時候,文件系統就叫FS,這個很直接。

  這個FS文件系統並沒有持續太久,Unix進入了讓Berkeley大學推動的階段,也就是所謂的Berkeley Software Distribution(BSD),在這裏,一個牛人(成文會詳細介紹)開發了Fast File System,這個也被稱爲FFS,事實上的Unix File System,所以FFS也被稱爲UFS。

  BSD當時的影響力超大,不是Linux可比的。BSD如日中天的年代是198X年,Linux還沒出生,Linus還在上初中。

  當時蘋果公司的喬布斯被賣百事可樂的CEO一腳踢出門,就去建 賣的還不錯,這個操作系統就是NeXTSTEP,是今天我們用的iOS,Mac OS的親爹,這個親爹不是從0開始寫的,而是用的BSD的代碼。所以,NeXTSTEP用的自然也就是UFS文件系統。

  (正文中會再詳細介紹HFS這個老Mac系統的文件系統,以及如何演化到UFS的。)

  以上是介紹BSD Unix和Mac系統的歷史,有什麼聯繫。

  3

  再來說Solaris,Solaris是Sun公司的Unix操作系統,這個操作系統也是基於BSD做的,原因是Sun公司的創始人是Berkeley大學的學生,自己也參與了BSD的開發。剛開始,這個操作系統叫SunOS,到後來才叫Solaris,這個不用問了,文件系統也是UFS。

  以上是BSD Unix和Solaris系統的歷史,這兩個系統有什麼聯繫。

  4

  BSD取得了巨大的成功以後,AT&T,USL,BSDI,加州大學在版權上打起了官司,這一打就是兩年時間,從1992年打到1994年,這個官司對BSD產生了極壞的影響。

  BSD作爲一個Unix,可以運行在多個平臺上,其中有一個平臺是給個人電腦使用的,名字叫386BSD,因爲這次官司,讓BSD的核心開發者走了不少。

  FreeBSD面對的市場和微軟,Linux是一樣的,都是個人用戶,可惜BSD當時忙着打官司,無心在個人電腦上發展。有傳言說當時Linus不知道有FreeBSD這個東西,如果知道,就不會寫Linux了。

  其實這次官司和許多版權官司一樣,就是看別人賺到了很多錢,自己心裏不平衡了,也想分一點,可惜對方給的不夠,最後就是我得不到的,你也別想得到。這次版權總共涉及3到6個文件,這3到6個文件根本就是無足輕重,BSD的源文件有2萬多個,但是律師認爲這是極大的傷害,而且誰也別想再動BSD,誰給BSD寫代碼,就一起起訴。

  大家都沒有錢賺了。

  就在這種情況下,FreeBSD挺難的,到了官司結束,個人用戶要麼被微軟搞了,要麼用Linux了。官司過後,一直引領BSD開發的CSRG小組宣佈解散,在領導了BSD Unix開發20年後。

  CSRG小組發佈的最後一個BSD版本是4.4BSD-Lite, Release 2。FreeBSD 2.0就是以此爲基礎發佈的。

  以上是BSD Unix和FreeBSD的關係。

  6

  在理清了這幾個系統之間的關係以後,就會知道爲什麼這幾個系統在出現新技術的時候,會經常互相採用。

  比如蘋果公司會經常給FreeBSD提交代碼,Sun公司推出的ZFS,DTrace會被FreeBSD和Mac很快的採用。

  7

  我想在在我的知識星球裏,以BSD Unix爲中心,寫一些文章,主要是技術與歷史相結合。

  比如說文件系統的變遷(主要是Sun的ZFS,BSD社區對ZFS的態度,Linux對ZFS的態度,Mac對ZFS態度的變化)我想寫10來期。以每期1000-2000字來算。

  開源社區的編譯器之間的明爭暗鬥我想寫10來期。(Apple和BSD社區對GCC大力投資,Objective-C對Gcc的依賴,但是GCC對Apple一直是不冷不熱,最終,Apple私下裏大量投資Chris Lattner的LLVM,目標就是替換掉GCC。FreeBSD社區迅速響應,採納Apple的LLVM,並且FreeBSD在未來的目標是,發行版中完全不採用GNU的代碼)

  BSD和AT&T版權的故事也很有趣,我想這個也寫5-6期。

  我還想寫一下內核之爭,可能也要10開期,可能大家都熟悉Linus和Minix作者關於微內核的爭論,在Unix中,也有一個很著名的微內核,以4.3BSD爲基礎的Mach,還有開源界搞了20年沒搞成的GNU/Hurd,以及開源的大BOSS曾經有個女朋友的大名對開源界的貢獻。

  因爲Mac是BSD重要的分支之一,在寫BSD的時候,我想寫一下處理器,因爲世界上只有Mac一家公司在很短的時間內完成了從一個CPU跳到了別一個CPU,這裏,我也大概也能寫10來期。

  8

  以上就是我的知識星球的一個打算,起碼前10萬字的計劃已經有了。因爲人不多,問我問題的人更少,我也不太想回答一些google就能找到的問題。

  我希望有興趣的人能訂閱,還希望訂閱過的人不要隨便就把我的文章複製粘貼發到網上,這樣的話,我又要重複走每期電臺賺個20-30塊錢的老路了。

  大連婦科體檢多少錢 http://xzmobile.84211111.cn/

  大連渤海婦科醫院 http://xzmobile.bhbyby.com/

  大連包皮手術要多少錢 http://bp.liaoningnk.com/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章