作者:王果 (2013年8月發表於CSDN資訊)
開源軟件(Open source software)是一種源代碼可以任意獲取的計算機軟件,這種軟件的版權持有人在軟件協議的規定之下保留一部分權利並允許用戶學習、修改、增進提高這款軟件的質量。——維基百科
從 《全球著名互聯網企業背後的開源力量》文章中可知,目前開源軟件已經成爲了各大互聯網企業背後的支撐力量,並逐漸改變着世界軟件開發的格局。
[企業開源系列]系列專注於全球著名企業(包括國內企業)中的開源現狀,探討開源軟件的力量,以使更多的開發者瞭解開源、貢獻開源,打造更加和諧的國內開源生態。
本期先來了解Google背後的開源力量。
在企業使用開源和貢獻開源方面,Google一直是行業的典範。一直以來,Google都在極力推廣和倡導開源,併發布了一系列開源項目。這是因爲Google從開源軟件中嚐到了甜頭,如果沒有開源軟件,Google也難以達到今日的成功。開源軟件也是Google用來對抗桌面軟件霸主微軟的利器。
Google所使用的部分開源軟件
Google可以說是構建在開源軟件上的,其基礎設施及大量產品中都使用了大量的開源軟件。單單一個Chrome瀏覽器就使用了100多個開源軟件,你可以在Chrome瀏覽器中輸入chrome://credits/,即可看到Chrome所使用的開源軟件列表。
此外,在Google基礎設施及內部使用的部分開源軟件如下:
- Linux內核:廣泛見於Google的服務器及Android操作系統。就連Linux界的二號人物、Linux內核主要的維護者、Linus Torvalds的得力助手Andrew Morton也加入了Google。
- GCC編譯器:廣泛應用於Google的產品開發中。Google的很多員工也來自GCC開發團隊。
- Python:在Google內部Python是繼C++和Java之後使用率排名第三的編程語言。Python創始人Guido Van Rossum 從2005年開始進入Google,去年年底離開。
- MySQL:Google 是MySQL的最大的用戶之一,Google還將其內部改進的MySQL版本開源。
- OpenSSL和OpenSSH:用於各產品中的安全通信
- 大量Apache庫等等
Google分佈式系統的三大核心技術—— Google File System(GFS)、 Google MapReduce和 Google BigTable)儘管不開源,但是如今也有開源版的實現,比如 HDFS(Hadoop Distributed File System)是GFS的開源實現, Hadoop MapReduce是Google MapReduce的開源實現, HBase是Google BigTable的開源實現。
使用開源軟件的原因
開源軟件具有開放、共享、自由等特性,這是很多企業和開發者選擇它的主要原因,Google也不例外。
衆多優秀、成熟的開源項目的存在,使得Google根本不需要重新發明輪子或購買昂貴的產品,使用最少的人力、物力就能很快構建出一個高性能的產品或系統來。
在Google上百萬臺服務器中,開源軟件可以爲其節省一大筆開支,並且在定製修改上更加靈活。而通過社區的力量,開源軟件也更加穩定、安全性更高。
Google從開源中嚐到了大量的甜頭,比如Android,2007年以開源形式發佈以來,其陣營呈現出了爆炸式增長。如今已經成爲份額第一的移動操作系統。
Google的開源文化
Google有一個稱爲“創意休息時間(Innovation Time Off)”的政策,即允許工程師花20%的工作時間做自己想做的事情,以此來激勵更多、更廣泛的創新。因此,Google的工程師也有了足夠的時間來參與開源貢獻。比如Chrome瀏覽器的開發思路都來自Google的底層員工。
Google還成立了一個開源項目辦公室,專門負責Google的開源項目以及Google與開源社區之間的關係。
此外,Google也一直在招募開源領域的牛人來爲其工作。這樣一來,Google在開源方面處於業界領頭羊的位置就不足爲怪了。
Google的開源項目
開源的精神是開放、共享、自由,使用開源軟件,當然也要回饋社區。Google目前已經發布了2千萬行的代碼,超過900個項目。其中一些知名的項目如下:
- Android:全球份額第一的移動操作系統。
- Chromium:Chrome和ChromeOS背後的開源項目。
- Closure Tools:Google內部的JavaScript開發工具,使用它開發的產品包括Search、Gmail、Docs、Maps、Google+等。
- Go:Google推出的編譯型、併發型編程語言。
- Google Web Toolkit(GWT):Google的開發工具包,用於構建和優化複雜的基於瀏覽器的應用程序。
- Native Client:使本地代碼運行於Web應用程序中的開源技術。
- Tesseract OCR:目前最準確的免費OCR引擎。
- V8 JavaScript引擎:Google的開源、高效的JavaScript引擎,使用C++編寫,用於Chrome瀏覽器。
- WebM:高質量的、可與H.264抗衡的視頻壓縮技術
Google開源項目全部列表: http://code.google.com/hosting/search?q=label:google
Google支持的開源組織
開發者很少能夠從其開源軟件中賺到錢,而捐助可能是他們的主要資金來源。Google在使用開源軟件賺得盆滿鉢滿的同時,也一直在資助各大開源社區。比如:
- Apache軟件基金會
- C++標準委員會
- Eclipse基金會:該基金會曾經由於資金有限,無法對Eclipse 4.2版本進行性能測試,導致該版本在使用過程中出現諸多問題。Google隨後捐贈了性能測試實驗室。
- Freenet:這是一個對等網絡應用軟件,有5個以上節點的用戶羣,就可以用寬帶分享種子文件,組成獨立的網絡系統。主要應用在匿名互聯網領域,如海盜灣、維基解密等。
- 自由軟件基金會(FSF)
- 歐洲自由軟件基金會(FSFE)
- GNOME基金會
- KDE
- Kernel.org:Linux內核源代碼的主站點
- Linux基金會
- MetaBrainz基金會:MusicBrainz是一個社區維護的音樂元數據庫,用於收集和提供關於音樂的信息。
- Mozilla基金會
- NetBSD項目
- OASIS:結構化信息標準促進組織。
- OpenBSD項目
- OIN(開放創新聯盟):旨在確保開放源碼的專利權,讓Linux平臺能持續發展,同時也可望提升專利的品質,淘汰不良的專利。
- OSUOSL:俄勒岡州立大學開源實驗室。
- Python軟件基金會
- Samba項目
- Tor項目
詳細信息: https://developers.google.com/open-source/organizations?hl=zh-CN
Goolge的開源服務、活動
1. Google Code開源項目託管平臺
Google Code是Google利用自身服務器資源提供的開發人員主頁,最初目的是爲Google自身的開源軟件提供開發平臺,以及協助開發者擴展Google產品的功能。隨着託管項目的增多,Google Code正在成爲一個開放的項目託管平臺,並提供了類似於Sourceforge的版本控制、問題跟蹤、Wiki、下載託管和其他有用的工具。
目前該平臺託管項目已經超過250,000個。
2. Google Summer of Code
Google的Summer of Code(代碼夏令營)是一個全球性的計劃,每年夏季舉辦。該項活動的目的是幫助在校的開發者在暑期完成學術挑戰。Google提供了開發者獎金,參與的開發者可以在世界各地指導機構的幫助下爲各種開源項目編寫代碼,並可以贏得獎金。
Google對開源的支持
Google在今年年初宣佈了一項舉措《 Open Patent Non-Assertion (OPN) Pledge(開放專利不主張承諾)》,承諾不會因部分專利起訴開源軟件的開發人員、經銷商或者使用者,除非Google自己先受到起訴。
Google希望它的這項承諾能夠起到帶頭作用,促使更多的專利持有人加入到該陣營中,共同構建一個能夠保護真正的創新的開放的互聯網,並持續提供優質的產品和服務。
Google開源的一些“副作用”
當然,Google過度倡導開源也帶來了一些“副作用”。
1. Android的碎片化
自從Android以開源形式發佈以來,發展速度極快,導致目前連Google也難以控制。隨着各大設備廠商的加入,Android生態系統逐漸呈現碎片化。由於各大廠商基於各自設備定製的Android版本無法通用,使得用戶的系統升級嚴重滯後於Google官方發佈的版本。目前Android 5.0即將發佈,而4年前發佈的Android 1.5版本仍然存在。不僅如此,各種硬件配置、分辨率大小,使得開發者在開發應用後需要做大量的測試工作,大大增加了成本。
2. 大量產品被關閉
Google極力倡導開源,又給出了員工20%的時間來從事自己喜歡的工作,再加上Google內部在開源項目上的審批週期非常短,導致越來越多的項目迅速誕生。目前Google的產品線估計多到連他們自己都數不清。
儘管大部分產品都很優秀,但不意味着Google都能運營好。由於缺少人員維護,不斷有一些產品被關閉。如今Google每年都要進行幾次大掃除,清理掉一些邊緣化產品以及一些與主推產品功能類似的產品。近兩年,Google已經累計關閉和合並了40多個產品,包括曾推出了衆多創新產品的Google實驗室。而這些產品的用戶只能被迫轉到其他類似產品上。
無法制造利潤也是這些產品被關閉的原因之一。Google如今已經被其他互聯網企業(如Facebook)趕上,使得它不得不開始削減產品,集中力量發展主要產品,並開始追逐利潤。目前,App Engine平臺上的開發費用被提高,部分已免費數年的API也開始收費等等。
最後
可見,開源成就了Google。與此類似,另一個互聯網巨頭Facebook也在開源軟件的基礎上獲取了空前的成功,同時,Facebook也推出了大量的開源產品。但據悉,Facebook內部的開源氛圍似乎比Google更爲濃厚。下一篇,我們將繼續帶來Facebook背後的開源力量,看該巨頭如何通過開源軟件趕超Google。
相關閱讀:
- 【企業開源系列】全球著名互聯網企業背後的開源力量
- 【企業開源系列】Google背後的開源力量
- 【企業開源系列】後起之秀Facebook憑什麼挑戰互聯網霸主Google?
- 【企業開源系列】Twitter:收發一條推文的背後