雖然有許多人宣稱Linux即將要取代Unix系統,然而事實上Linux就是Unix:Linux只是其中的一個支派,Unix的設計傳統與設計概念都比Linux來得更廣。
如果仔細觀察Unix的歷史,你會看到一些核心概念,是由許多不同的人,利用許多不同的方法所完成的。那些貶低Unix的人總是在談論Unix版本的四分五裂,同時也會抨擊1980年代他們所謂的“Unix版本戰爭”。但事實上,就算是差異最大的Unix產品,一般來說也只是實作細節與支援硬體上有所不同,基本概念都是一樣的。
因此讓我們回顧一下Unix與開放原始碼的最初來源:它們都是使用社群開發與公布所有研發成果這些重要學術傳統的實際展現。
在1960年代早期,為了在作業系統的競爭中爭取較多認同,Multic作業系統決定讓該系統成為開放原始碼使用者社群的焦點。以下是一個例子,這是Multics系統的重要設計人員Corbato與Vyssotsky在1965年所寫的:
在Multics系統大致可以運作時,將會把原始碼公布於世……如此的公告動作是十分必須的,基於以下兩個理由:第一,本系統應該要經得起大眾的仔細檢查與有興趣的自發讀者的批評;第二,由於系統的復雜性持續增加,將系統公諸於世,可以強迫系統的設計者將程式寫得盡可能清楚易懂……
目前Multics系統的計劃還未公開。然而這個初步的系統,要成功的符合所有的設計需求是不可能的。本系統將會隨著使用者的影響以及使用者長期的活動演進,演進的方向現在也很難預測。經驗指出,線上終端機的功能會大幅改變使用者的習慣,這些習慣的改變也會回過頭來改變系統本身。我們預期大多數的系統改變將來自於使用者。而最後這個系統也將會成為該社群程式、資料與知識的集散地。
學術界認為,一個分時的電腦作業系統,就像是一個將一群使用者串連起來的通訊核心。然而這場競爭的另一方,那些IBM的資料處理專業人員卻不是如此設計作業系統。對他們來說,保密性是最重要的,電腦不是設計來增加人的能力,而是一個用來取代人的電動職員。
最後學術派在經費上與設計上都贏了這場仗,但開發工作卻還是交給了那些資料處理專家。這些專家所制作的系統與研發計劃裡面,當然包含較多他們自己的想法。Unix之父Thomson為了對抗這種商業化的轉變,便將Multics計劃改寫成Unix系統──這個系統是Multics計劃原先設計的一貫目標。
今日,最為人所知的Unix分支有:Linux、BSD系列與Solaris。其中Linux基本上可說最符合他一開始所設定的Freax目標(即386平台下的免費Unix);而BSD延續了Unix的學術研發傳統,同時也是Macs作業系統的基礎。而Solaris則在Plan9模型上實作網路運算,帶領Unix系統進入下一代。
因為這些系統在來源與設計目標上的一致,要使用Unix,各平台絕大部分的所需知識都是相同的。從存取資料、開發程式庫到每日工作等等的核心程序,在所有主要的Unix分支版本上的工作方式都相同。另外,數以百計的GNU工具程式與上千種的開放程式碼應用程式也是如此。從使用者與系統管理者的角度來看,不管使用什麼平台,Perl就是Perl,PostGres就是PostGress,SAMBA也不會因為主機使用Linux、NetBSD或Solaris平台,就有很大的不同。
的確,在某個已經過時的Unix分支上的實作經驗,無法直接套用在Linux、BSD或Solaris上面。然而,知道怎麼設定舊式系統,往往也會知道這些作法背後的運作方式與原理,這才是重點。而某個平台特定的操作方式,只要上網查查線上文件就可以了。
雖然這不代表一個通過Red Hat平台認證的人,馬上就能幫一台升陽多處理器電腦上的Oracle程式進行除錯,因為這兩個平台在細節與工具上都有所不同。但這表示了,相較於微軟系統認證人員,一個懂Red Hat的人在學習使用Solaris的過程中,遇到的困難會小得太多。
一般來說,認為Unix市場四分五裂的人,都試著把他跟微軟的Windows系統,做一個不適當的比較。簡而言之這是一種錯誤的比較方式:Windows是一個品牌,而Unix是一組概念。微軟的品牌一直被同一家公司所擁有,然而Windows 3.0、95、NT與Longhorn等系統不一定有一個連貫的概念。反之,即使Unix系統的主機制造商一直努力試著要讓他們的產品與其他產品有所差異,所有這些產品卻仍舊被認為是同一個家族的產品。
有趣的是,覺得微軟的系統是持續不變,而Unix系統是多變的,這兩者都是市場上毫無根據的想法。
這種想法也迫使微軟要提供向下相容性──結果也造成了一個有趣的結果,就是今日六千萬台個人電腦,有時候必須要執行十年前的程式碼,卻不能讓這些寫給前一代系統的程式重新針對新的系統來進行編譯。
而Unix雖然沒有微軟這種表面上的一致性,卻要求任何系統的任何概念在測試、接收與實作時,必須要持續一致。這樣一來,舉例來說,Kernighan與Ritchie在1978年所著作的“C 語言”一書,到今日都還可以在UNIX底下使用。而Kernighan與Pike在1984年所寫的“Unix程式設計環境”幾乎在Linux,netBSD與Solaris上都一樣好用,而十年前寫給64位元UltraSPARCS平台的程式碼,可以完全不變地在升陽的下一代Niagara主機上執行。
看看今日的UNIX,再看看10年前、甚至1970年代剛出現的樣子,你就會發現它是由“眾多所組成的唯一”:許多開發人員、許多開發計劃、許多功能組合、許多不同版本所構成的一個持續發展與擴張的概念。
Unix的每個成員都符合了此一現況。雖然在這裡面也有競爭,但不管你選擇了Linux、BSD或Solaris,只要是Unix的一員而非Windows,結果都相差無幾。只要安裝Unix的其中一個分支,都可以幫助Unix的每個分支成長茁壯。對Unix來說,它的競爭對手是某家唯利是圖的公司。如果你選擇了Red Hat,你的敵人並不是升陽,如果你選擇了OS X,你的敵人也不是Linux,對所有的Unix來說,微軟才是它的敵人。
簡而言之,Unix就是Unix,它是開放性、社群概念以及五十年來對一些關鍵想法持續進行的成果。因此不管你使用了A牌或B牌的Unix系統都沒有關系。如果你覺得Red Hat最好,而你的下屬偏好Solaris或Darwin系統,趁這個機會多學一種系統,只會有好無壞。只要Unix的潮流興起,所有的UNIX分支版本都會水漲船高。只要有愈多Mac與Sun的系統出現,你的Red Hat認證執照價值就愈高。