[企业开源系列]系列专注于全球著名企业(包括国内企业)中的开源现状,探讨开源软件的力量,以使更多的开发者了解开源、贡献开源,打造更加和谐的国内开源生态。
本期先来了解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也开始收费等等。
转自互联网
相关推荐
此外,大公司如谷歌、脸书、Twitter等不仅使用开源技术,也积极参与开源项目,贡献力量。 开源的兴起为开发者提供了极大的力量。在新的时代背景下,开发者们通过互联网协作,利用开源项目推动技术进步和创新。...
罗聪翼作为BlenderCN社区的负责人,在大会分会场三发表了题为《blender开源电影》的演讲,强调了Blender在制作开源电影方面的应用及其背后的开源理念。 2. Blender开源电影: Blender开源电影是指使用Blender软件...
在编程领域,开源项目扮演着至关重要的角色,它们促进了技术的共享与创新,而Go语言(又称Golang)作为Google开发的一种静态类型、编译型、并发型且具有垃圾回收功能的编程语言,其开源特性更是深受开发者喜爱。...
从开源标准、工具体系、资源共享平台到开放生态平台,报告列出了如Apache、Google Brain、Facebook AI Research等全球主要的AI开源开放平台和项目,为相关研究人员和开发者提供了宝贵的参考。 报告的意义不仅仅在于...
在IT行业中,开源项目一直是推动技术创新和发展的重要力量。今天我们要探讨的是一个名为“danilopolani-gocialite”的开源项目,它旨在为开发者提供一个简单且灵活的解决方案,用于实现社交登录功能。该项目的核心...
通过深入研究和使用`cockroach-master`源代码,开发者可以了解CockroachDB背后的实现原理,学习如何定制和优化数据库以适应特定的需求,或者参与到开源社区中,贡献自己的力量,推动项目的持续发展。 总之,...
### 数据分析:揭示数据背后的智慧与力量 #### 数据分析的重要性 在当今的数字化时代,数据作为一项宝贵的资源,其价值不言而喻。数据分析技术正是解锁这些数据价值的关键所在。通过对收集到的海量数据进行科学的...
《NGA客户端开源版:深度解析与技术探秘》 NGA(Never Give Up)是一个深受广大游戏玩家喜爱的论坛社区,其客户端应用以其...开源的力量,就在于此——它鼓励创新,激发潜能,连接全球开发者,共同推动技术的发展。
下面,我们将深入探讨这款开源计算器的特色以及它背后的开发理念。 首先,让我们关注“开源软件”这一标签。开源软件意味着源代码对公众开放,任何人都可以查看、修改和分发。这样的开放性为开发者提供了极大的自由...
这一时期的开源GIS项目也开始崭露头角,如MapServer基金会的成立以及GRASS、MapTools、GeoTools等开源项目的推进,表明开源GIS已经成为GIS领域内不可忽视的力量。 **开源GIS的优点**: - **成本优势**:开源GIS软件...
**Cscape:癌症景观——...综上所述,Cscape 是一个强大的 RPMA 数据分析和可视化工具,借助开源的力量,它为癌症研究提供了新的视角和工具,使得科学家们能够更有效地解读复杂的蛋白质数据,从而推动癌症研究的进展。
《协作式白板DeadSimpleWhiteboard:开源的力量与技术实现》 DeadSimpleWhiteboard,正如其名,是一款设计简洁、易于使用的开源协作式白板工具。这个项目旨在为用户提供一个实时共享、协作创作的平台,尤其适合远程...
通过深入研究《深入浅出Google Android》,读者不仅可以掌握Android开发的基本技能,还能深入了解源代码背后的逻辑,从而在实际项目中更好地优化性能、解决问题,甚至为Android生态贡献自己的力量。这本书可能是由多...
- **大规模系统的成功案例:** Google、eBay 和 Amazon 的成功经验表明,基于免费可用且可自由修改的开源软件构建大规模定制化系统是可行的。 - **开源软件的重要性:** 在当前的云环境之中,主导的软件堆栈也多为...
##### Gecko:开源的力量 Gecko是Mozilla基金会旗下的明星产品,最初由网景通讯公司开发,广泛应用于Mozilla系列浏览器,如Firefox。Gecko以开源著称,全球的开发者均可贡献代码,极大促进了其功能拓展和技术革新。...
#### Android:开源的力量 Android作为一个开源项目,其核心优势在于开放性和灵活性。开发者可以自由地访问源代码,进行定制和修改,以满足不同场景的需求。这不仅激发了技术创新,也促进了移动应用市场的繁荣。 ...
这一时期,开源软件运动兴起,以Linux和GNU GCC为代表,形成了与商业软件竞争的开源软件生态系统,推动了“软件即服务”(SaaS)模式的出现,谷歌、脸书和BAT等互联网巨头因此崛起。在这个阶段,软件企业的竞争力...
例如,谷歌的创始人拉里·佩奇和谢尔盖·布林,他们的PageRank算法彻底改革了搜索引擎,使谷歌成为全球信息检索的主导力量。亚马逊的创始人杰夫·贝索斯,从一个在线书店起步,打造出全球最大的电子商务平台,并涉足...