| 設計:沈安如
整個系列文章將分成五篇文章,闡述巨集觀、中觀、微觀三個部分:
* 分別在三層面上分析開源軟體出現的原因及動力問題
* 在中觀層面分析開源軟體對產業帶來的影響
* 在微觀層面分析開源軟體社群的組織特徵及生產方式
本篇將從巨集觀層面分析開源軟體出現的原因及動力問題。
從人類文明發展史來看,18世紀工業革命開創了世界工業文明時代,工業文明的技術社會形態便是工業社會。人類社會尤其是進入工業社會之後的發展在本質也可以認為是一個創新發展的歷史過程。除了傳統的環境、制度、文化外,科技創新逐漸內生化為增長的主要驅動力和源泉。
“科技”一詞可拆分成技術(technology)和科學(science),技術的上游是科學,應用性技術往上走是底層技術,再往上是基礎科學。
基礎科學是整個科技大廈、經濟大廈之根。基礎科學做的是從0到1的工作,猶如開闢一塊全新的疆土;而應用技術則在這片疆土上添磚加瓦,將理論科學家的美好藍圖變為現實。基礎科學創新從量變到質變的積累可以催生科學革命;同理底層技術創新質變的積累可以催生技術革命。
技術革命帶來了人類生存發展手段的飛躍,表現為技術的叢集式發明與創新,往往與產業變革相伴和互動。
所謂產業變革一般指社會物質生產部門結構的革命或變革,是技術革命的成果在生產中的廣泛應用,當社會經濟執行模式和生產方式發生變革時,才意味著產業變革的發生。
總體來看,科學革命、技術革命、產業革命之間有一定的基本線性關係。一般來講,科學革命是技術革命的基礎與理論前提,科學革命一般不會直接引發產業變革。技術革命則能夠直接對生產力與生產方式產生影響,成為推動產業革命爆發的直接驅動力。
產業革命又會帶動全方位的社會變革, 由技術、經濟領域逐漸滲透到社會生活的方方面面,包括觀念、制度、法律、文化,最終實現社會文明的進步發展。
這種規律性形成了現代文明的“技術-經濟”發展正規化。
過去 200多年中,我們見證了伴隨了三次產業革命和五次技術革命。
科技-技術-產業革命對技術-經濟正規化的形成機制是通過“關鍵生產要素”的變遷實現的。所謂“關鍵生產要素”是在每一個新技術經濟正規化中的“一個特定投入或一組投入”,它可能表現為某種重要的自然資源或工業製成品。成為“關鍵生產要素”須滿足三個特性生產成本具有下降性供應能力具有無限性運用前景具有廣泛性。換言之,技術-經濟正規化的形成及轉型與“關鍵生產要素”的新舊更替有關,而這一切又都是科技-技術-產業革命的必然結果。
軟體正是本次資訊科技革命的關鍵生產要素之一。
回到計算機誕生之初,美國研製計算機的直接目的是在第二次世界大戰時為軍方計算彈道的軌跡。在流體力學中,計算量常常大到手工的計算尺無法計算的地步,因此,對通用計算機的需求就產生了。IBM 的小華生(第二任Quattroporte)看到了計算機在今後社會中將扮演一個非常重要的角色,他決定投資發展計算機,並請來馮· 諾伊曼做顧問。
後續 IBM 投入大量資金和人員在計算機系統的探索上, 並先後在六、七十年代研製出了多種經典的大型計算機系列產品。但這些裝置的造價都高的驚人,達百萬美元, 除了政府部門和軍方,只有大的銀行和跨國公司才用得起。
這時的商業模式主要是硬體、軟體加服務的捆綁銷售模式,想用 IBM 的系統,必須買 IBM 的硬體,外加每年一定百分比的高額服務費,軟體不單銷售。
這個時期代表性的軟體要數 UNIX 作業系統了,在它早期的發展過程中發生了歷史上第一次軟體開源與閉源之爭:
UNIX 作業系統最早於1969年在聞名世界的 AT&T 貝爾實驗室由肯·湯普遜和丹尼斯·裡奇在DEC的小型機 PDP-7 上研製出來。此後的若干年裡,二者對於 UNIX 不斷完善包括用C語言重寫、實現多程序等,又更新了幾個版本,但都是在貝爾實驗室內部進行的。而且當時,AT&T 公司和美國政府簽署的是電話業務專營協議,該協議規定AT&T不能從事軟體銷售業務。所以,AT&T 公司不能把 UNIX 當作一個產品來銷售。
直到1974年7月,二者撰寫的“The UNIX Time Sharing System”文章在 theCommunications of the ACM 上發表,這是 UNIX 與外界的首次接觸。在1975~1976學年,湯普遜來到了加州大學伯克利分校做客座教授,並且帶了些研究生一起繼續進行 UNIX 的後續開發,在伯克利,很多新的特性加入到了 UNIX 作業系統中。從1976年的 V6 版本開始,AT&T 將 UNIX 授權給少量的美國大學和研究機構使用(收取少量授權費或者免費),授權中包含文件和 UNIX kernel 的原始碼並允許在原始碼之上對 UNIX 進行各種各樣的改進和擴充套件,客觀上推動了 UNIX 的發展及流行。
但這並不是現在意義上的 Open Source 軟體,因為它只是在有限範圍內的共享程式碼(Shared Source), 並不是廣泛地無歧視地對任何人和任何團體開放原始碼。但這確實是開源軟體運動的開端,開源軟體標誌性組織 GNU 正是 GNU'sNot UNIX” 的遞迴首字母縮寫詞。
在 UNIX V6 的基礎上出現了分叉:
商業派:原 AT&T 及後續的各種商業版本學院派:加州大學伯克利分校的 BSD 分支 – 1977年,1BSD 是一個 BSD 版本此時,後知後覺的 AT&T 開始認識到 UNIX 的價值,但由於原始碼早已外散,無法將其攏起來進行精細的商業開發,於是乾脆採取對外授權的模式,研究機構使用免費,企業使用要交授權費,這有些金礦當做銅礦賣的味道。一位貝爾高階主管曾感慨:“ UNIX 是繼電晶體以後的第二個最重要發明。”但 AT&T 錯失了將 UNIX 商業化發展的最佳時機。
隨後,AT&T 成立 USG(UNIX Support Group),將 UNIX 變成商業化的產品。1982年,AT&T 基於 V7 開發了 UNIX System Ⅲ 的第一個版本,這是一個商業版本僅供出售。為了解決混亂的 UNIX 版本情況,AT&T 綜合了其他大學和公司開發的各種UNIX,開發了 UNIX System V Release 1。這個新的 UNIX 商業釋出版本不再包含原始碼,所以加州大學 Berkeley 分校繼續開發 BSD UNIX,作為 UNIX System III 和 V 的替代選擇。從此,BSD 的 UINX 便和 AT&T 的 UNIX 分庭抗禮,演化出 System IV 和 4.x BSD 兩大主流,各自蓬勃發展。
後續 AT&T 做了很多專有化 UNIX 的努力,1986年 IEEE 指定了一個委員會制定了一個開放作業系統的標準,稱為 POSIX (Portable Operating Systems Interface, 最後加上個 X,不知道是為了好聽,還是因為這本質上是 UNIX 的標準)。當然,AT&T 的 UNIX 取得了這個標準制訂戰爭的勝利,還取得了 UNIX 這個註冊商標。此時 BSD 的擁護者自喻為冷酷無情的 AT&T 公司帝國的反抗軍。同年 4.3BSD 釋出,到此為止,所有的 BSD 版本都混合了專屬的 AT&T UNIX 程式碼,這樣繼續使用就需要從 AT&T 獲得許可證。原始碼許可證當時非常地昂貴,幾個其他組織對單獨的網路程式碼版感興趣,1989年6月,Networking Release 1(Net/1)誕生了,完全獨立於 AT&T,這樣就可不受其許可證的支配, 能夠遵照 BSD 許可證進行自由再發布。Net/1 以後,有人提議,BSD 系統中應該有更多的非 AT&T 部分,以 Net/1 的協議釋出。隨後,一個新的專案開始著手重新實現一些 UNIX 標準工具,其中不使用原來的 AT&T 程式碼。1991年6月,Net/2 誕生了,這是一個全新的作業系統,並且可以自由釋出。
同年,一群 BSD 開發者離開了加州大學,創辦了 BSDI (Berkeley Software Design, Inc ) 基於 Net/2 在便宜的 Intel 平臺上提供全功能商業 UNIX。
BSDI 的 OS 產品售價便宜,AT&T 認為侵犯了其權益。1992年,USL(UNIX Systems Laboratories, AT&T 附屬公司)正式因剽竊其原始碼對 BSDI 提起訴訟。這導致Net/2 釋出被中止,直到其原始碼能夠被鑑定為沒有侵犯 USL 的著作權。這場官司一直打到 AT&T 將自己的 UNIX 系統實驗室賣掉,新接手的 Novell 公司採取了一種比較開明的做法,允許 BSDI 自由釋出自己的 BSD UNIX 作業系統,但是前提是必須將來自於 AT&T 的程式碼完全刪除。當然此時的 IBM、DEC、HP 和 Sun 因為早年的授權緣故,有權繼續進行各自的 UNIX 版本。
1994年6月,4.4BSD 以兩種形式釋出,其中之一為可自由再發布的 4.4BSD-Lite,不包含 AT&T 原始碼,不再存在版權法律問題,因此成為了現代 BSD 系統的基礎版本。
1992年至1994年間, 由於上述爭端的判決懸而未決,將 BSD 衍生分支的發展,特別是現代自由軟體的發展,延遲了兩年,這導致沒有法律問題的Linux核心獲得了極大的支援。Linux跟386BSD(Net/2的一個分支)的開發幾乎同時起步,Linus 說,當時如果有自由的基於 Intel 386 的 UNIX-like 作業系統,他可能就不會創造 Linux 核心了。
在上述紛爭的過程中, 有別於傳統“大教堂”(集權、封閉、受控、保密)方式的新“集市”(分權、公開、精細的同僚複審)生產方式漸漸產生了, 這也是後續 Open Source 的核心思想。
在歷史上第一次開源與閉源軟體之爭中,我們可以看出:
首先,佔據強勢地位的公司為了商業利益是沒有動力對其所屬軟體進行開源的,開源是源於少數具有黑客精神的研究人員以及在市場上處於弱勢地位的公司(後續的內容會分析其原因及動力)。其次,從 Windows 和 Linux 發展的歷程上看,對於基礎性的作業系統軟體,UNIX 在技術上是有優勢的,但由於早期混亂的授權,不同版本的 UNIX 遍地開花,從來就沒有通用版存在,所以為其中一個版本寫的應用程式,常常要修改後才能運用到另一個上,這對於專業的程式設計師來說也許不是太大問題,但對技術實力較弱的使用者來說,則平添了許多麻煩,從而導致使用者分散,無法形成由正向網路外部性形成的良性迴圈。當然它也沒有采用 Linux 的開源策略,完全開放給產業玩家,從而共同推動其發展。總結:在開啟資訊時代的第五次技術革命發生、發展過程中,整個社會經濟對作為核心要素的軟硬體有著廣泛而又持續的需求,作為核心要素有逐漸變得廉價且普遍可得的趨勢,激烈的經濟及社會意識、規則、制度衝突導致開源軟體與專有軟體出現了分叉的現象。