开源软件(英语:open source software,英文缩写:OSS,中文也称:开放源代码软件)是一种源代码可以任意获取的计算机软件,这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。开源协议通常匹配开放源代码的定义的要求。一些开源软件被发布到公有领域。开源软件常被公开和合作地开发。开源软件是开放源代码开发的最常见的例子,也经常与用户生成内容做比较。 开源软件的英文“open-source software”一词出自自由软件的营销活动中。
开源软件同时也是一种软件散布模式。一般的软件仅可获取已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程序的源代码。
有些软件的作者只将源代码公开,却不匹配“开放源代码”的定义及条件,因为作者可能设置公开源代码的条件限制,诸如限制可阅读源代码的对象、限制派生产品等,此称之为公开源代码的免费软件(Freeware,例如知名的网络论坛软件Discuz!),因此公开源代码的软件并不一定可称之为开放源代码软件。
历史
1997年,埃里克·雷蒙出版其著作《大教堂和市集》,探讨黑客社群与自由软件原则。1998年初,该论文受到极大的关注,为促成网景通信公司将其受欢迎的互联网套装软件《网景通信家》释放成为自由软件的因素之一。这些代码即为今日大家熟悉的Mozilla Firefox与Thunderbird。
网景的行动激起雷蒙及其伙伴深入研究如何将自由软件基金会的自由软件概念及优点带入商业软件产业。他们查觉基金会的社会活动不如网景等公司的行动来得吸引人,因而试图重新包装自由软件运动,以强调分享与协作软件源代码的潜在商机。他们选用的新名称为“开放源代码”(open source),很快地布鲁斯·佩伦斯、出版家提姆·奥莱理、林纳斯·托瓦兹及其他人支持新名称。开放源代码促进会于1998年2月创建,以推动使用新名称,并宣扬开放源代码的原则。
开放源代码的定义
开放源代码的定义由Bruce Perens(Debian的创始人之一)定义如下:
尽管一开始接受,[4]自由软件基金会的理查·斯托曼现在断然反对将“开源软件”与“自由软件”混为一谈。虽然在法律上并未明确区分自由软件与开源软件,但斯托曼认为不宜滥用。
开放源代码与自由软件
许多人将开放源代码与自由软件(Free Software)视为相同,但若以定义条件而言,自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件,要视该软件的许可条件是否合乎自由软件基金会对自由软件所下的定义:
自由软件是在计算机为个人或为公共利益,而非私人公司或政府等企图限制或监视我们工作时,我们在家、学校、公司使用时,我们具有其控制权。
开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。使用开放源代码开放模式的软件代表就有Linux操作系统。
严格地说来,开放源代码软件与自由软件是两个不同的概念,只要匹配开源软件定义的软件就能被称为开放源代码软件(开源软件)。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都匹配自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的并且是自由的。
“开放源代码软件运动”是一个主要由程序工程师及其它计算机用户参与的声势浩大的运动。它是自由软件运动的一个分支,但两者的差别并不明显。一般而言,自由软件运动是基于政治及哲学思想(有时被称为所谓黑客文化)的理想主义运动,而开放源代码运动则主要注重程序本身的质量提升。
漏洞
虽然开放源代码的堡垒看似严谨,但其实大部分的程序开发员都弄不清各种许可证之间的差别,导致成为了小部分别有用心人士所利用的对象,较著名的例子有DivX,早期DivX雏形是一个LGPL的自由软件,由大部分优秀的软件高手义务地开发,但当软件渐渐成形时,DivX的公司DXN利用LGPL的漏洞对DivX进行了闭源,大部分软件爱好者都感到被出卖,所以着手开发了XviD。虽然XviD在软件方面明显比DivX优秀,但市场占有率却不如DivX。