按照這前兩天的想法,我想在《知識(shí)星球》里寫遠(yuǎn)比我電臺(tái)里要詳細(xì)的多的軟件發(fā)展史。因?yàn)楹芏嗟膬?nèi)容不適合在電臺(tái)里講,比如一些技術(shù)。
雖然這里只有20個(gè)人,但是我還是希望大家能夠有所收獲。而不僅僅是了解一些非常淺的知識(shí),比如,如何在Linux配置Java的開發(fā)環(huán)境。
我想到的素材我會(huì)隨時(shí)記錄在這里,目前來說可能有一些錯(cuò)誤,等到正式成文的時(shí)候,我會(huì)盡量讓文章沒有明顯的錯(cuò)誤。
1
Linux的故事當(dāng)然也是非常精彩,但是由于Linux有一個(gè)軟硬不吃,水火不容的GPL協(xié)議,所以Linux不走尋常路,在一些關(guān)鍵技術(shù)上,不用Unix,BSD和Solaris的代碼,當(dāng)然,重新山寨是沒問題的,比如當(dāng)其它幾個(gè)操作系統(tǒng)都在支持ZFS這個(gè)文件系統(tǒng)的時(shí)候,Linux自己根據(jù)ZFS山寨了一個(gè)叫Btrfs的文件系統(tǒng)。
這個(gè)Btrfs是Suse(SUSE Linux Enterprise Server)的默認(rèn)文件系統(tǒng),其它的大部分Linux發(fā)行版會(huì)用ext4,前兩年有個(gè)測(cè)試,Btrfs用了5秒就掛了,ext4時(shí)間長(zhǎng)點(diǎn),用了兩個(gè)來小時(shí)(正式發(fā)布在知識(shí)星球的時(shí)候,我會(huì)補(bǔ)上那篇測(cè)試文章的鏈接)。Linux的文件系統(tǒng)沒有那么強(qiáng)大。(正式發(fā)布在知識(shí)星球,我會(huì)補(bǔ)上Linus對(duì)ext4發(fā)表的幾次不友好言論。
Linux是個(gè)偉大的系統(tǒng),當(dāng)然有偉大的程序員來開發(fā),Linux從最初的FFS,到ext2, ext3, ext4(其實(shí)ext起源于Minix)再到后來的Btrfs, XFS, BCacheFS,已經(jīng)可以自成一個(gè)故事體系了。如果有機(jī)會(huì),我再專門去寫Linux。
在這個(gè)文章里,寫的是除了Linux的文件系統(tǒng),因?yàn)槌薒inux和微軟,其它幾個(gè)操作系統(tǒng)之間經(jīng)常互通有無,Linux至少有半數(shù)軟件是基于BSD的,但是由于Linux的GPL協(xié)議,對(duì)BSD幾乎是只取不予。反而這幾個(gè)Unix,BSD,Solaris和Mac OS之間的比較有趣。
2
文件系統(tǒng)的英文名叫File System,所以,最初Unix的時(shí)候,文件系統(tǒng)就叫FS,這個(gè)很直接。
這個(gè)FS文件系統(tǒng)并沒有持續(xù)太久,Unix進(jìn)入了讓Berkeley大學(xué)推動(dòng)的階段,也就是所謂的Berkeley Software Distribution(BSD),在這里,一個(gè)牛人(成文會(huì)詳細(xì)介紹)開發(fā)了Fast File System,這個(gè)也被稱為FFS,事實(shí)上的Unix File System,所以FFS也被稱為UFS。
BSD當(dāng)時(shí)的影響力超大,不是Linux可比的。BSD如日中天的年代是198X年,Linux還沒出生,Linus還在上初中。
當(dāng)時(shí)蘋果公司的喬布斯被賣百事可樂的CEO一腳踢出門,就去建 賣的還不錯(cuò),這個(gè)操作系統(tǒng)就是NeXTSTEP,是今天我們用的iOS,Mac OS的親爹,這個(gè)親爹不是從0開始寫的,而是用的BSD的代碼。所以,NeXTSTEP用的自然也就是UFS文件系統(tǒng)。
(正文中會(huì)再詳細(xì)介紹HFS這個(gè)老Mac系統(tǒng)的文件系統(tǒng),以及如何演化到UFS的。)
以上是介紹BSD Unix和Mac系統(tǒng)的歷史,有什么聯(lián)系。
3
再來說Solaris,Solaris是Sun公司的Unix操作系統(tǒng),這個(gè)操作系統(tǒng)也是基于BSD做的,原因是Sun公司的創(chuàng)始人是Berkeley大學(xué)的學(xué)生,自己也參與了BSD的開發(fā)。剛開始,這個(gè)操作系統(tǒng)叫SunOS,到后來才叫Solaris,這個(gè)不用問了,文件系統(tǒng)也是UFS。
以上是BSD Unix和Solaris系統(tǒng)的歷史,這兩個(gè)系統(tǒng)有什么聯(lián)系。
4
BSD取得了巨大的成功以后,AT&T,USL,BSDI,加州大學(xué)在版權(quán)上打起了官司,這一打就是兩年時(shí)間,從1992年打到1994年,這個(gè)官司對(duì)BSD產(chǎn)生了極壞的影響。
BSD作為一個(gè)Unix,可以運(yùn)行在多個(gè)平臺(tái)上,其中有一個(gè)平臺(tái)是給個(gè)人電腦使用的,名字叫386BSD,因?yàn)檫@次官司,讓BSD的核心開發(fā)者走了不少。
FreeBSD面對(duì)的市場(chǎng)和微軟,Linux是一樣的,都是個(gè)人用戶,可惜BSD當(dāng)時(shí)忙著打官司,無心在個(gè)人電腦上發(fā)展。有傳言說當(dāng)時(shí)Linus不知道有FreeBSD這個(gè)東西,如果知道,就不會(huì)寫Linux了。
其實(shí)這次官司和許多版權(quán)官司一樣,就是看別人賺到了很多錢,自己心里不平衡了,也想分一點(diǎn),可惜對(duì)方給的不夠,最后就是我得不到的,你也別想得到。這次版權(quán)總共涉及3到6個(gè)文件,這3到6個(gè)文件根本就是無足輕重,BSD的源文件有2萬多個(gè),但是律師認(rèn)為這是極大的傷害,而且誰也別想再動(dòng)BSD,誰給BSD寫代碼,就一起起訴。
大家都沒有錢賺了。
就在這種情況下,F(xiàn)reeBSD挺難的,到了官司結(jié)束,個(gè)人用戶要么被微軟搞了,要么用Linux了。官司過后,一直引領(lǐng)BSD開發(fā)的CSRG小組宣布解散,在領(lǐng)導(dǎo)了BSD Unix開發(fā)20年后。
CSRG小組發(fā)布的最后一個(gè)BSD版本是4.4BSD-Lite, Release 2。FreeBSD 2.0就是以此為基礎(chǔ)發(fā)布的。
以上是BSD Unix和FreeBSD的關(guān)系。
6
在理清了這幾個(gè)系統(tǒng)之間的關(guān)系以后,就會(huì)知道為什么這幾個(gè)系統(tǒng)在出現(xiàn)新技術(shù)的時(shí)候,會(huì)經(jīng)?;ハ嗖捎谩?/p>
比如蘋果公司會(huì)經(jīng)常給FreeBSD提交代碼,Sun公司推出的ZFS,DTrace會(huì)被FreeBSD和Mac很快的采用。
7
我想在在我的知識(shí)星球里,以BSD Unix為中心,寫一些文章,主要是技術(shù)與歷史相結(jié)合。
比如說文件系統(tǒng)的變遷(主要是Sun的ZFS,BSD社區(qū)對(duì)ZFS的態(tài)度,Linux對(duì)ZFS的態(tài)度,Mac對(duì)ZFS態(tài)度的變化)我想寫10來期。以每期1000-2000字來算。
開源社區(qū)的編譯器之間的明爭(zhēng)暗斗我想寫10來期。(Apple和BSD社區(qū)對(duì)GCC大力投資,Objective-C對(duì)Gcc的依賴,但是GCC對(duì)Apple一直是不冷不熱,最終,Apple私下里大量投資Chris Lattner的LLVM,目標(biāo)就是替換掉GCC。FreeBSD社區(qū)迅速響應(yīng),采納Apple的LLVM,并且FreeBSD在未來的目標(biāo)是,發(fā)行版中完全不采用GNU的代碼)
BSD和AT&T版權(quán)的故事也很有趣,我想這個(gè)也寫5-6期。
我還想寫一下內(nèi)核之爭(zhēng),可能也要10開期,可能大家都熟悉Linus和Minix作者關(guān)于微內(nèi)核的爭(zhēng)論,在Unix中,也有一個(gè)很著名的微內(nèi)核,以4.3BSD為基礎(chǔ)的Mach,還有開源界搞了20年沒搞成的GNU/Hurd,以及開源的大BOSS曾經(jīng)有個(gè)女朋友的大名對(duì)開源界的貢獻(xiàn)。
因?yàn)镸ac是BSD重要的分支之一,在寫B(tài)SD的時(shí)候,我想寫一下處理器,因?yàn)槭澜缟现挥蠱ac一家公司在很短的時(shí)間內(nèi)完成了從一個(gè)CPU跳到了別一個(gè)CPU,這里,我也大概也能寫10來期。
8
以上就是我的知識(shí)星球的一個(gè)打算,起碼前10萬字的計(jì)劃已經(jīng)有了。因?yàn)槿瞬欢?,問我問題的人更少,我也不太想回答一些google就能找到的問題。
我希望有興趣的人能訂閱,還希望訂閱過的人不要隨便就把我的文章復(fù)制粘貼發(fā)到網(wǎng)上,這樣的話,我又要重復(fù)走每期電臺(tái)賺個(gè)20-30塊錢的老路了。
聯(lián)系客服