Google背后的開源力量
從《全球著名互聯網企業背后的開源力量》文章中可知,目前開源軟件已經成為了各大互聯網企業背后的支撐力量,并逐漸改變著世界軟件開發的格局。[企業開源系列]系列專注于全球著名企業(包括國內企業)中的開源現狀,探討開源軟件的力量,以使更多的開發者了解開源、貢獻開源,打造更加和諧的國內開源生態。本期先來了解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
#p#
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。