国庆长假欢乐多,对于科技界的朋友们,国庆引爆朋友圈的莫过于:苹果公司在GitHub上公开了其macOS和iOS内核darwin-xnu源代码。
GitHub地址:
https://github.com/apple/darwin-xnu
XNU是指X is Not Unix。XNU内核是由Mach内核、FreeBSD内核以及苹果自己的驱动框架组合而来,是macOS和iOS等Darwin(达尔文)操作系统的核心部分,兼容ARM架构。
通过开放系统内核的源代码,开发者们将能更好的了解苹果设备在软件上层如何与内核协调运作,进而提高软件的使用体检。
本期,小宅就和大家一起聊聊开源精神、介绍些开源社区,分享点开源项目。
先来看下某公司的一道面试题,竟然很多人都不知道答案。
请问以上几个logo,你对哪个比较亲切?
“如果全都知道,可以直接发offer”
“如果知道三个,可以进入终面了”
“如果都不知道,那就开始面试吧”
这些是当前非常流行的几个开源项目,分别与机器学习、大数据、云计算、人工智能相关,具体会在后面介绍。
所以,面试官这么出题也是很有道理的。如果你熟悉这些项目,说明你不仅了解开源,而且还在关注当前比较前言的技术,更说明你可能在使用这些开源项目。不给你offer,给谁啊?
如果你知道这些logo三个以上,这篇文章你简单看看就行,否则还是请你多瞅两眼。
※开源是一种精神
开源是从英文Open Source翻译精简而来,其实是开放源码的意思,我们知道所有的软件都是由代码编写,经编译生成的系统或者应用。
一旦你把它开源,意味着任何人、任何组织都可以使用你的代码或者软件,当然也可以给你免费贡献代码,优化你的应用,开放源码意味着自由选择的权力,而自由选择意味着激发更多创新的能量。
开源是一种“自由精神”,这种精神的本质是:“我做了一个东西,大家来用吧”,也就是常说的“Geek精神”,是为了让世界变得更加美好的精神。
开源的生命力就在于大众的参与,只有大众参与,才能聚集到更多优秀开发者和公司参与项目,也才能得到更多创新和收获。
但是,开源并不等同于免费,免费只是开源项目生存的优势策略,在可预见的将来,绝大部分开源项目依然会免费下去。
目前,优秀的开源项目非常多,比如Linux就是最著名的开源操作系统,而Java与Android同样也是开源的。
世界很多技术大牛和公司也都在做开源项目,比如国外的Google、IBM、Red Hat、HP、Facebook等,国内的百度、阿里、腾讯、360、小米等。
※开源社区是交流平台
开源社区又称开放源代码社区,一般由拥有共同兴趣爱好的人所组成,根据相应的开源软件许可证协议公布软件源代码的网络平台。
同时,开源社区也为网络成员提供一个自由学习交流的空间,因此开源社区在推动开源软件发展的过程中起着巨大的作用。
介绍几个当前比较火的开源社区。
GitHub(https://github.com/)
说到开源社区,毫无疑问GitHub是目前最大最火爆的开源社区,全球最优秀的程序员与最开放的优秀科技公司都在GitHub,甚至很多以前的开源社区都暂停服务,往GitHub迁移项目,比如谷歌的GoogleCode、微软的CodePlex。
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。
GitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。
Github从诞生之初,就有着另外两个非凡的使命:开源社交平台和企业项目管理平台,这两部分业务是最核心粘性最大的,也是Github的核心竞争力。
截至2017年4月,GitHub报告有近2000万用户和5700万个项目,其中不乏知名开源项目Ruby on Rails、jQuery、python等。
扫盲&入门一点参考资料:
GitHub入门:各种概念、图解页面信息(都是知识点啊小伙伴们)
【Github教程】史上最全github使用方法:github入门到精通
Apache(http://www.apache.org/)
Apache有三种含义,一种是指Apache基金会,一种是指Apache服务器,一种是开源社区。Apache开发团队刚开始的时候仅仅只有httpd这一个项目,后来随着httpd服务器的流行,这个团队就成立了一个基金会,即Apache基金会,后来又有很多优秀的开源项目加入,就成了一个开源社区。
现如今Apache基金会已经成为开源世界的最大的开源组织之一,其下的开源项目有成百上千之多,而Apache服务器仅仅是其中的一个顶级项目而已。
Apache出品的企业级软件大受追捧,尤其是大数据方面,拥有一批炙手可热的顶级项目,比如:Apache Hadoop,Apache Spark,Apache Kafka,Apache Kylin等。Hbase、Tomcat也是属于Apache基金会的子项目。
扫盲&入门一点参考资料:
Sourceforge(http://sourceforge.net/)
SourceForge是全球最大的开源软件开发平台和仓库之一,网站建立的宗旨,就是为开源软件提供一个存储、协作和发布的平台。
SourceForge.net,又称SF.net,是开源软件开发者进行开发管理的集中式场所。SourceForge.net由VA Software提供主机,并运行SourceForge软件。
SourceForge上拥有大量非常优秀的开源软件,比如著名的项目有:MediaWiki、TortoiseSVN、OpenOffice、Ehcache、PowerFolder、phpMyAdmin、FCKeditor、JasperReports等。
扫盲&入门一点参考资料:
开源中国(http://www.oschina.net/)
开源中国成立于2008年8月,是目前国内最大的开源技术社区,拥有超过200万会员,形成了由开源软件库、代码分享、资讯、协作翻译、码云、众包、招聘等几大模块内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
英文不太好的童鞋,可以使用这个平台。
2013年开源中国上线大型开发云平台:“码云”,将代码托管、质量检测、代码演示、团队协作等开发工具集成到云平台,免除繁杂的开发环境部署,节省成本,帮助软件开发者提高生产效率,引领国内云端协作开发潮流。
截止2016年,“码云”累计60万开发者,承载100万个项目,已然成为国内颇具影响力、活跃专业的代码托管平台。
扫盲&入门一点参考资料:
※开源项目是共享内容
软件开发领域一直有个原则:DRY,Don’t repeatyourself,翻译过来就是:不要重复造轮子。
而开源项目主要目的是共享,其实就是为了让大家不要重复造轮子,尤其是在互联网这样一个快速发展的领域,速度就是生命,引入开源项目,可以节省大量的人力和时间,大大加快业务的发展速度,何乐而不为呢?
全球开源项目很多,除了大家耳熟能详的Linux、Java和Android,还有很多优秀的开源项目。尤其越来越多的大小公司都参与开源项目,当前火热的人工智能领域,大数据、云计算、机器学习等的开源项目也有很多。
在此,小宅分享一些给大家做学习。
首先,回答一下文章开头那道面试题提到的几个开源项目。
左上角:Tensorflow
TensorFlow是Google自己开发的全新机器学习系统,在建立和训练神经网络方面速度要比第一代系统快5倍,而且更加灵活,可支持CPU、GPU、桌面机、服务器和移动计算平台,即可跨数据中心运行,也能跑在智能手机上,是最流行的开源AI库之一。它的高计算效率,丰富的开发资源使它被企业和个人开发者广泛采用。
右上角:Hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。允许在集群服务器上使用简单的编程模型对大数据集进行分布式处理。Hadoop被设计成能够从单台服务器扩展到数以千计的服务器,每台服务器都有本地的计算和存储资源。Hadoop的高可用性并不依赖硬件,其代码库自身就能在应用层侦测并处理硬件故障,因此能基于服务器集群提供高可用性的服务。
左下角:Docker
Docker是PaaS提供商dotCloud开源的一个基于LXC的高级容器引擎,基于go语言并遵守Apache2.0开源协议,源代码托管在Github上。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
右下角:Apollo
Apollo是百度发布的名为“Apollo(阿波罗)”系统,旨在向汽车行业及自动驾驶领域的合作伙伴提供一个开放、完整、安全的软件平台,帮助他们结合车辆和硬件系统,快速搭建一套属于自己的完整的自动驾驶系统。代码托管在GitHub,遵守Apache2.0开源协议,是一套完整的软硬件和服务系统,包括车辆平台、硬件平台、软件平台、云端数据服务等四大部分。
除了这些,还有很多,小宅就不一一列举,分享一些文章给大家看看。
GitHub 上有哪些适合新人围观的 Android 项目?
※写在最后
开源是一种精神,在开源社区里,我们在享受别人成果的同时,也应该贡献出自己的力量,分享更多优秀的开源项目和idea,让世界变得更加美好。就像小宅开公众号一样,也是一种开源精神,分享知识,与大家交流学习,共同进步。希望通过这篇文章,分享一些开源知识,更想让大家一起关注开源,为开源多做贡献,也更好的收获开源带来的回报。
※作者简介
作者:小宅,微信公众号:小宅的视界。我是一名科研人员,喜欢技术,喜欢产品,喜欢与人交流学习。关注人工智能,关注前沿技术,关注智能产品,关注市场动态。欢迎您与我交流,在交流中相互学习,在学习中共同进步。
.