开源(Open Source,
开放源码)被非营利软件组织(美国的Open Source Initiative协会)注册为认证标记,并对其进行了正式的定义,用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受许可证的限制。
开放源码软件通常是有版权 (copyright ) 的,它的许可证可能包含添加自定义项这样一些限制:着意地保护它的开放源码状态,著者身份的公告,或者开发的控制。实际上,
开源软件同时涉及
源码智力资源,比如报纸、教学课件等。
大多数
软件许可证决意剥夺你的共享和修改软件的自由。对比之下,
GNU通用公共许可证力图保证你的共享和修改自由软件的自由。——保证自由软件对所有用户是自由的。
GPL适用于大多数
自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受
GNU库通用许可证的保护)。你也可以将它用到你的程序中。当我们谈到自由软件(free software)时,我们指的是自由而不是价格。
GNU通用公共许可证决意保证你有发布自由软件的自由(如果你愿意,你可以对此项服务收取一定的费用);保证你能收到源程序或者在你需要时能得到它;保证你能修改软件或将它的一部分用于新的自由软件;而且还保证你知道你能做这些事情。
例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。
同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软件没有担保(no warranty)。如果由于其他某个人修改了软件,并继续加以传播。我们需要它的接受者明白:他们所得到的并不是原来的自由软件。由其他人引入的任何问题,不应损害原作者的声誉。
最后,任何
自由软件不断受到
软件专利的威胁。我们希望避免这样的风险,自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。
美国一些进步的评论家指出,在象网络这样的
虚拟环境中,驱动系统的底层代码,尤其是广为人知的那些应用程序之间的
通信协议,它们在某种意义上很象现实社会中的法规。换句话说,这些代码对网上的行为给出了一些规范,它鼓励某些行为,而限制其他行为,就像现实社会的法律一样。因此,
开放源码带来了一个更民主的开发方式,在这种方式下,好的主意将被集体分享,而不是作为
智力资本被个人秘藏着。在这种意义上,开放源码实质上成为一种政治哲学。
开放源码的精神在于使用者可以使用、复制、散布、研究、改进软件。最早可以 回朔到1960年代。当时,售卖
大型计算机的厂商如IBM,把一些软件及原始码一并送给客户,让客户能够因不同需求而自行更改软件。在 1991-1992 年期间,住在芬兰的 Linus Torvald制造了第一版的 Linux 操作系统。在一群热心的程序人员努力下,把 Linux 操作系统以及外围的应用程序逐一打造。
出名的作品除了趋于成熟的Linux 操作系统外,还有 Apache网页服务器、Perl 程序语言、MySQL 数据库、
Mozilla浏览器、
OpenOffice、
开源软件无线电GNUradio 等等。在政府的推动及各软件大厂(如 IBM、Redhat、Apple 等)的推动下,预料这股旋风将会掀起新的软件革命。