本文转载于http://baike.baidu.com/view/1072914.htm;http://baike.baidu.com/view/9664.htm
开源(Open Source,开放源码)被非赢利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
Open Source(即开放源代码)的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:
●自由再散布(Free Distribution):获得源代码的人可自由再将此源代码散布。
●源代码(Source Code):程式的可执行档在散布时,必需随附完整源代码或是可让人方便的事后取得源代码。
●衍生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。
●原创作者程式源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的程式码做分别,保障原始的程式码完整性。
●不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设定限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。
●对程式在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。
●散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。
●授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程式组合成一套软件,则当某一开放源代码的程式单独散布时,也必需要符合开放源代码的条件。
●授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光碟片),不得限制其他软件的授权条件也要遵照开放源代码的授权。
●授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。
开源软件与自由软件的区别
许多人将开放源代码与自由软件(Free Software)视为相同,其实不然。以定义条件而言,自由软件仅是开放源代码的一种,也就是说自由软件的定义较开放源代码更为严格。
并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。
1.自由再发行
许可证不能限制任何团体销售或赠送软件,软件可以是几个不同来源的程序集成后的软件发行版中的其中一个原件。许可证不能要求对这样的销售收取许可证费或其他费用。
2.程序源代码
程序必须包含源代码。必须允许发行版在包含编译形式的同时也包含程序源代码。当产品以某种形式发行时没有包含源代码,必须非常醒目的告知用户,如何通过Internet免费的下载源代码。源代码必须是以当程序员修改程序时优先选用的形式提供。故意地扰乱源代码是不允许的。以预处理程序或翻译器这样的中间 形式作为源代码也是不允许的。
3.派生程序
许可证必须允许更改或派生程序。必须允许这些程序按与初始软件相同的许可证发行。
4.作者源代码的完整性
只有当许可证允许在程序开发阶段,为了调整程序的目的将“修补文件”的发行版与源代码一起发行时,许可证才能限制源代码以更改后的形式发行。许可证必须明确地允许按更改后的源代码所建立的程序发行。许可证可以要求派生的程序使用与初始软件不同的名称或版本号。
5.无个人或团体歧视
许可证不能都有针对任何个人或团体制在专门奋斗领域内的任何人使用该程序。例如不能限制程序应用于商业领域,或者应用于遗传研究。
6.对程式在任何领域内的利用不得有差别待遇
该条款的主要目的是禁止许可证中含有使开放源代码软件无法在商业上使用的规定。我们需要商业用户参与我们的工作,而不让他们感到被排除在外。
7.许可证发行
伴随程序所具有权力必须适用于所有的程序分销商,而不需要这些团体之间再附加许可证签字盖章。
8.许可证不能特制某个产品
如果程序是某个特殊的软件发行版中的一部分,伴随该程序所具有的权力不能只以来于这一发行版。如果程序是从那一发行版中摘录出来的,使用或发行时用的都是那个程序的许可证,分销程序的所有团体都应拥有与初始软件版所允许的所有权力。
9.许可证不能排斥其他软件
许可证不能限制随该许可证软件一起发行的其他软件。例如,许可证不能要求所有与之一起发行的其他软件都是开源软件。
开放源码软件运动是计算机科学领域的一种文化现象,源自黑客对智慧成果共享、自由的追求。开源运动发展到现在,这种能够积极促进人类文明发展的文化已经渗透到信息、教育、健康等领域,融入了哲学范畴。
开放源码运动的史前史包括了整个Unix,自由软件和黑客文化的历史。“开放源码”一词来源于1997年春天在加州的Palo Alto召开的一个所谓“纯粹程序员”参与的战略研讨会。参加会议的有Todd Anderson, 来自Foresight研究所Chris Peterson, 来自Linux国际协会的John Hall 和Larry Augustin,有硅谷Linux用户协会的Sam Ockman,以及Eric Raymond。 它们关系的是寻找一种方式,来像以前躲避自由软件的人们来推广这种思想,自由软件和自由软件基金会的反商业信条让很多人对自由软件敬而远之。在Eric Raymond的坚持下,他们一致通过了用新的术语:OpenSource(开源软件)来描述他们所推进的软件。
1998年2月23日网景宣布它将发布Navigator浏览器的源代码成为开源软件发展历史的转折点,经过一番激烈争辩,“开放源码”取代“自由软件”成为黑客们对开放原始码软件的代名词。
Linus Torvalds创建Linux以来,开源思想在软件界可谓盛极一时。那么,什么是开源呢?简单来说,"开源软件"就是源代码开放的软件。
由于开源思想源于计算机软件界,所以发展至今,计算机类开源产品的种类、数量都是很多的,使用也比较广泛。如在操作系统领域,Linux在服务器市场就占据了相当大的份额,并持续扩张,IBM公司销售的薄片式服务器中大约有75%就运行着Linux操作系统;Web方面,全球有百分之五十以上的Web服务器在使用开源的Apache系统;数据库,有针对互联网应用的轻量级数据库MySQL,也有针对大型应用的PostgreSQL,中国最大的门户网站Sina的后端数据库就采用了开源的MySQL数据库软件。其他还有各种非常流行的软件,如GNU的编辑软件Emacs、Linux的图形处理界面Xfree86、排版软件TeX等等,都获得了广泛的应用。
开源被很多黑客认为是计算机科学的一种文化复兴,是计算机科学真正成为科学并能够与其他科学一起同步发展的手段。开源发展到今天,不仅仅有数以万计的黑客在积极地参与,像IBM、HP、CA、SUN等一些软硬件厂商也在加大在开源方面的投入并积极向开源社区贡献优秀开源软件,因为开源催化了软件业快速向服务也蜕变的速度并为IBM这样的硬件和集成服务提供商提供了新的商机。
获得开放软件源码是免费的,但对所获取源码的使用却需要遵循该开源软件所作的许可声明。开源软件常用的许可证方式包括BSD、Apache Licence、GPL等,其中GNU的GPL被最多的开源软件组织所采用。开源软件许可模式主要分为两类:一类是copyleft,一类是non-copyleft。copyleft许可,比如GNU GPL类型,坚持认为在开源软件基础上作修改后的软件,仍旧是自由软件。
自1998年2月美国OSI成立之后,经其正式认可的开源许可类型已达30种(2002年1月止)。同时,在GNU工程/自由软件基金会的"自由软件许可"页面上包含了15种与GPL兼容的自由软件许可、2种文档许可以及总共42个软件许可再加上4种非软件许可。
(1)BSD许可--它要求版权和著者身份申明;
(2)GPL--通用公共许可("CopyLeft")禁止派生或发行产品的限制;
(3)LGPL--库/次级GPL,它不同于GPL许可证,在这个许可证下,库(函
数库)可以自由地联接到专有软件;
(4)Artistic许可--使作者保持对进一步开发的控制。
(5)Netscape公共许可(NPL)--基于GPL精神的新的许可证,但是保持
了对源码更多的控制和所有权;
(6)公共域(Public Domain)--通常用于决定性的算法以鼓励广泛使用,通常由美国政府使用。
BSD是"Berkely Software Distribution"的缩写,意思是"伯克利软件发行版"。显然,BSD这个名称并不是我们现在所理解的操作系统,而且其原意也并非简单的操作系统,而是一整套软件发行版的统称。从软件发行版到操作系统的演变是有历史过程的,这一点对FreeBSD很重要。
BSD于1983年8月正式发布,在18个月内就签发了1000多份站点许可证,是非常具有知名度的版本。到了1986年6月,4.3BSD发布,而到了1988年,CSRG发布了4.3BSD-Tahoe,这是第一个把BSD内核分解为依赖于机器和独立于机器的两部分的版本,这是非常有价值的,它使BSD得以移植到众多不同的体系结构中。
由于BSD使用了AT&T Unix的部分源代码,当AT&T源代码许可证费用不断增加的时候,一些希望能够使用BSD代码为PC生产基于TCP/IP联网产品的厂商要求Berkely将AT&T代码从BSD发行版中分离出来,并给他们签发单独的许可证条款,而不需要AT&T的源代码许可证。因此,到了1989年6月,一个完全没有AT&T Unix代码的BSD版本诞生了,称之为"Networking Release 1"。这是第一套由Berkely发布的自由可再发行(freely-redistributable)的代码,,它允许被授权的用户以源代码或者二进制的形式发布修改过的或为修改过的代码,并且可以不向Berkely申报版税,唯一要求是在源代码文件中原封不动的保留Berkely的版权声明,并且在含有以上代码的其他产品文档中声明其产品包括来自于加州大学和其他贡献者的代码。这就是著名的BSD许可证的起源。
GPL许可证是自由软件的应用最广泛的软件许可证,人们可以修改程式的一个或几个副本或程式的任何部分,以此形成基於这些程式的衍生作品。必须在修改过的档案中附有明显的说明:您修改了此一档案及任何修改的日期。 您必须让您发布或出版的作品,包括本程式的全部或一部分,或内含本程式的全部或部分所衍生的作品,允许第三方在此许可证条款下使用,并且不得因为此项授权行为而收费。
最普遍的是开放源代码后,满足GPL许可,然后通过发行、咨询、增加用户定制功能来收费。另一种是将开放源代码和有版权的软件捆绑发行,这样,赚取版权费用。 一种是通过开放全部或部分源代码,收集补丁程序,并满足用户知情权的要求。作为商业软件的补充。通过发行多许可证的方式,从其他许可证赚钱。通过开放源代码和免费使用赚取垄断标准的地位。
LGPL是GPL的派生,它是微软件库尔设计的。与GPL不同,LGPL化的程序可以合并到专有版权程序中。与LINUX以其提供的C语言库就是LGPL许可的实例。
NPL是1998年网景公司把Netscape开源之后,由Netscape公司以公众可以对他进行测试版本测试的形势提出的,它试图在商业企业推广自由软件开发和保护自由软件开发之间达成一种妥协,受NPL约束的代码在授权给第三方时的条款与NPL的不同使NPL无法让开源社区接受。
对于将来提供开源软件的人来说,一般情况下从上述一些许可协议中选择一种既可,而没有必要花费精力再去编写新的许可协议。
自由的交换想法? 协作创造一套健壮、对大家有益的系统?不仅仅Linux是开源哲学的受益产物,在学校教学领域也在探索开源模式的应用,以期能够为教学带来一个更高效、更先进、更丰富的教学体系——这就是开源教育。
开源教育模式下,教师们以互联网为媒介共享课件、协作开发课件、交流教学心得。
人类对世界的人是主要通过两种途径:学习他人经历或亲身体验。教育的本质之一就是通过让人们通过学习多少辈先人积累下来的经验,更快更好的建立对世界的正确认识和树立良好的世界观。从这点看,科学的发展、教育的发展和开源的发展所采用的方法论是一致的,而开源正是这种方法论的代名词。