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