Linux 是如何成功運作的
在大量金錢與圍繞 Linux 激烈爭奪的公司之間,真正給操作系統帶來活力的正是那些開發者。
事實證明上,Linux 社區是可行的,因為它本身無需太過擔心社區的正常運作。儘管 Linux 已經在超級計算機、移動設備和雲計算等多個領域佔據了主導的地位,但 Linux 內核開發人員更多的是關注於代碼本身,而不是其所在公司的利益。
這是一個出現在 Dawn Foster 博士研究 Linux 內核協作開發的博士論文中的重要結論。Foster 是在英特爾公司和 木偶實驗室 的前任社區領導人,他寫到,「很多人首先把自己看作是 Linux 內核開發者,其次才是作為一名僱員。」
隨著大量的「 基金洗劫型 」公司開始侵蝕各種開源項目,意圖在虛構的社區面具之下隱藏企業特權,但 Linux 依然設法保持了自身的純粹。問題是這是怎麼做到的?
跟隨金錢的腳步
畢竟,如果有任何開源項目會進入到企業貪婪的視線中,那它一定是 Linux。早在 2008 年,Linux 生態系統的估值已經達到了最高 250 億美元。最近 10 年,伴隨著數量眾多的雲服務、移動端,以及大數據基礎設施對於 Linux 的依賴,這一數據一定倍增了。甚至在像 Oracle 這樣單獨一個公司里,Linux 也能提供數十億美元的價值。
那麼就難怪有這樣一個通過代碼來影響 Linux 發展方向的必爭之地。
在 Linux 基金會的最新報道中,讓我們看看在過去一年中那些最活躍的 Linux 貢獻者,以及他們所在的企業像「海龜」一樣高高疊起。
這些企業花費大量的資金來僱傭開發者去為自由軟體做貢獻,並且每個企業都從這些投資中得到了回報。由於存在企業對 Linux 過度影響的潛在可能,導致一些人對引領 Linux 開發的 Linux 基金會表示不滿。在像微軟這樣曾經的開源界宿敵的企業揮舞著鈔票進入 Linux 基金會之後,這些批評言論正變得越來越響亮。
但這只是一位虛假的敵人,坦率地說,這是一個以前的敵人。
雖然企業為了利益而給 Linux 基金會投入資金已經是事實,不過這些贊助並不能收買基金會而影響到代碼。在這個最偉大的開源社區中,金錢可以幫助招募到開發者,但這些開發者相比關注企業而更專註於代碼。就像 Linux 基金會執行董事 Jim Zemlin 所強調的:
「我們的項目中技術角色都是獨立於企業的。沒有人會在其提交的內容上標記他們的企業身份: 在 Linux 基金會的項目當中有關代碼的討論是最大聲的。在我們的項目中,開發者可以從一個公司跳槽到另一個公司而不會改變他們在項目中所扮演的角色。之後企業或政府採用了這些代碼而創造的價值,反過來又投資到項目上。這樣的良性循環有益於所有人,並且也是我們的項目目標。」
任何讀過 Linus Torvalds 的 的郵件列表評論的人都不可能認為他是個代表著這個或那個公司的人。這對於其他的傑出貢獻者來說也是一樣的。雖然他們幾乎都是被大公司所僱傭,但是一般情況下,這些公司為這些開發者支付薪水讓他們去做想做的開發,而且事實上,他們正在做他們想做的。
畢竟,很少有公司會有足夠的耐心或承受風險來為資助一群新手 Linux 內核開發者,並等上幾年,等他們中出現幾個人可以貢獻出質量足以打動內核團隊的代碼。所以他們選擇僱傭已有的、值得信賴的開發者。正如 2016 Linux 基金會報告所寫的,「無薪開發者的數量正在持續地緩慢下降,同時 Linux 內核開發被證明是一種僱主們所需要的日益有價值的技能,這確保了有經驗的內核開發者不會長期停留在無薪階段。」
然而,這樣的信任是代碼所帶來的,並不是通過企業的金錢。因此沒有一個 Linux 內核開發者會為眼前的金錢而丟掉他們已經積攢的信任,當出現新的利益衝突時妥協代碼質量就很快失去信任。因此不存在這種問題。
不是康巴亞,就是權利的遊戲,非此即彼
最終,Linux 內核開發就是一種身份認同, Foster 的研究是這樣認為的。
為 Google 工作也許很棒,而且也許帶有一個體面的頭銜以及免費的乾洗。然而,作為一個關鍵的 Linux 內核子系統的維護人員,很難得到任意數量的公司承諾高薪酬的僱傭機會。
Foster 這樣寫到,「他們甚至享受當前的工作並且覺得他們的僱主不錯,許多(Linux 內核開發者)傾向於尋找一些臨時的工作關係,那樣他們作為內核開發者的身份更被視作固定工作,而且更加重要。」
由於作為一名 Linux 開發者的身份優先,企業職員的身份次之,Linux 內核開發者甚至可以輕鬆地與其僱主的競爭對手合作。之所以這樣,是因為僱主們最終只能有限制地控制開發者的工作,原因如上所述。Foster 深入研究了這一問題:
「儘管企業對其僱員所貢獻的領域產生了一些影響,在他們如何去完成工作這點上,僱員還是很自由的。許多人在日常工作中幾乎沒有接受任何指令,來自僱主的高度信任對工作是非常有幫助的。然而,他們偶爾會被要求做一些特定的零碎工作或者是在一個對公司重要的特定領域投入興趣。
許多內核開發者也與他們的競爭者展開日常的基礎協作,在這裡他們僅作為個人相互交流,而不需要關心僱主之間的競爭。這是我在 Intel 工作時經常見到的一幕,因為我們內核開發者幾乎都是與我們主要的競爭對手一同工作的。」
那些公司可能會在運行 Linux 的晶元上、或 Linux 發行版,亦或者是被其他健壯的操作系統支持的軟體上產生競爭,但開發者們主要專註於一件事情:使 Linux 越來越好。同樣,這是因為他們的身份與 Linux 維繫在一起,而不是編碼時所在防火牆(指公司)。
Foster 通過 USB 子系統的郵件列表(在 2013 年到 2015 年之間)說明了這種相互作用,用深色線條描繪了公司之間更多的電子郵件交互:
在價格討論中一些公司明顯的來往可能會引起反壟斷機構的注意,但在 Linux 大陸中,這只是簡單的商業行為。結果導致為所有各方在自由市場相互競爭中得到一個更好的操作系統。
尋找合適的平衡
這樣的「合作」,如 Novell 公司的創始人 Ray Noorda 所說的那樣,存在於最佳的開源社區里,但只有在真正的社區里才存在。這很難做到,舉個例子,對一個由單一供應商所主導的項目來說,實現正確的合作關係很困難。由 Google 發起的 Kubernetes 表明這是可能的,但其它像是 Docker 這樣的項目卻在為同樣的目標而掙扎,很大一部分原因是他們一直不願放棄對自己項目的技術領導。
也許 Kubernetes 能夠工作的很好是因為 Google 並不覺得必須佔據重要地位,而且事實上,它希望其他公司擔負起開發領導的職責。憑藉出色的代碼解決了一個重要的行業需求,像 Kubernetes 這樣的項目就能獲得成功,只要 Google 既能幫助它,又為它開闢出一條道路,這就鼓勵了 Red Hat 及其它公司做出傑出的貢獻。
不過,Kubernetes 是個例外,就像 Linux 曾經那樣。成功是因為企業的貪婪,有許多要考慮的,並且要在之間獲取平衡。如果一個項目僅僅被公司自己的利益所控制,常常會在公司的技術管理上體現出來,而且再怎麼開源許可也無法對企業產生影響。
簡而言之,Linux 的成功運作是因為眾多企業都想要控制它但卻難以做到,由於其在工業中的重要性,使得開發者和構建人員更願意作為一名 Linux 開發者 而不是 Red Hat (或 Intel 亦或 Oracle … )工程師。
via: https://www.datamation.com/open-source/why-linux-works.html
作者:Matt Asay 譯者:softpaopao 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive