开源,即Open Source,全称为开放源代码。开源是一种促进最终产品(通常是软件或程序)的免费访问和分发的理念,尽管它可以扩展到其他对象的实现和设计。
一、 开源的由来
由Stallman为领袖的一群富有激情的技术高手们发起了自由软件运动,创立了FSF。FSF颁发了GNUGPL通用公共许可,它明确定义了自由软件的含义,即用户拥有使用软件、修改软件、重新发布软件以及改善再利用软件等四种自由,作为前提的,自由软件必须公开所有的源代码。
GPL成为自由软件世界中的最高精神纲领,它成功地创建了一个软件中的自由王国,并保证开发者、用户都拥有充分的自由权。另外,在自由软件的世界中,根本就不存在盗版的概念。
二、 开源软件
开源软件的源代码任何人都可以审查、修改和增强。
“源代码(source code)”是软件中大部分计算机用户都没见过的部分,程序员可以修改代码来改变一个软件(“程序”或“应用”)工作的方式。程序员如果可以接触到计算机程序源代码,就可以通过添加功能或修复问题来改进这个软件。
开源许可证影响人们使用、学习、修改以及分发的方式。总的来说,开源许可证赋予计算机用户按他们想要的目的来使用开源软件的许可。一些开源许可证(人们称之为左版(copyleft))规定任何发布了修改过的开源软件的人,同时还要一同发布它的源代码。此外,另一些开源许可规定任何修改和分享一个程序给其他人的人,还要分享这个程序的源代码,而且不能收取许可费用。
三、 开源操作系统
① Linux:一种类unix操作系统内核
② NetBSD:自Unix派生的操作系统
③ UnixOpenBSD:自Unix派生的操作系统
④ FreeBSD:自Unix派生的操作系统
⑤ OpenSolaris:来自于Sun Microsystems的Unix操作系统
⑥ Symbian:移动手机的实时操作系统
⑦ Android:基于Linux平台的开源手机操作系统
四、 开源社区
GitHub,是一个面向软件项目的托管平台,可以用于托管各种类型的软件项目,包括开源项目和私有项目。由于大量开源项目基于GitHub进行托管,方便来自世界各地的开发人员共同工作以及获取开源软件,所以在开源项目领域,GitHub的影响力很大,是开源项目的首选托管平台。
在GitHub上,发布了一个软件项目,是开源的,这个开源项目会产出一款使用了MIT开源协议的开源软件供大家免费获取,如果想加入这个开源项目共同工作,可以来这个项目的开源社区参与讨论。
可以说,开源的意义主要在于合作,通过合作,才能形成围绕某个开源项目的软件生态。例如最早也只最著名的开源项目之一“Linux”操作系统,其成功很大程度上是依靠开源社区为其提供的源源不断的代码支持,使其从当年一个人的“小项目”日益壮大起来。