自由软件
自由软件
-{H|zh-cn:重定向;zh-tw:重新导向;}-
自由软体(),根据自由软体基金会对其的定义,是一类可以不受限制地自由使用、复制、研究、修改和分发的,尊重使用者自由的软体。这方面的不受限制正是自由软体最重要的本质,与自由软体相对的是专有软件(,一些人也会将其翻译为私有软体、封闭软体),后者的定义与是否收取费用无关,事实上,自由软体不一定是免费软体,同时自由软件本身也并不抵制商业化。自由软体受到选定的「自由软体授权协议」保护而发布(或是放置在公有领域),其发布以原始码为主,二进制档案可有可无。
用户.
自由软件对全世界的商业发展特别是硬件有巨大的贡献,多数嵌入式设备系统厂商鉴于自身无需支付授权费用和实用性方面的原因考虑也会在自由软件的基础上开发操作系统。世界上绝大多数操作系统多少都会包含有自由软件组件(例如BSD的TCP/IP协议栈广泛被包括MacOS,Windows在内的专有商业操作系统使用)。随著越来越多的自由软体支援 Microsoft Windows 平台,还有得益于 Android 平台的普及,目前有上亿的用户在日常生活或工作中使用自由软体。
自由软件直接使用者往往是计算机方面的专业人士,或者有能力理解和改变原始码的人。随着Ubuntu
[],Manjaro
[] 等对普通用户更友好的 GNU/Linux 操作系统的普及,普通用户也能在缺少相关知识的情况下开箱即用。
自由软件许可证.
大多数自由软件都使用类似的自由软件许可证,使用最多的自由软件许可如下
意义与历史.
自由软体的英文为「--
」。在英文里「"--
"」一词有「自由」、「免费」的双重含意,对于如何区分自由软体()和免费软体(),自由软体运动社区的创始人——-{zh-hans:理查德·斯托曼; zh-hant:里查·史托曼;}-做出了以下的定义:“自由软体的重点在于自由权,而非价格。要了解其所代表的概念,你应该将「free」想成是「言论自由」()一词中的含义,而不是「免费啤酒」()一词中的含义。”自由软体代表用户可以自由地运行、拷贝、分发、学习、修改并改进该软件。自由软件的定义可以追溯至GNU宣言。
大部分自由软体都在互联网上自由发布,往往不收取任何费用。一些或是以离线实体的方式发行,有时会酌情收取的费用(例如:工本费和运输费),而人们可用任何价格来贩售这些软体。所以,自由软体也可以是商业软体:因为自由软件许可证并不限制贩卖软体或者提供商业服务,这些并没有违反例如GPL等自由软体许可证。因此,“自由软件”是关乎自由的问题,与价格无关,软件如何定价并不影响它是否被归类为自由软件。
自由软体的定义.
自由软体基金会(FSF)对自由软体的定义首次于1989年发表。这份定义后来被布鲁斯·裴伦斯(Bruce Perens)改写为《Debian自由软件指导方针》
[]。
根据斯托曼和自由软体基金会(FSF)的定义,自由软件赋予使用者四种自由:
如果一软件的使用者具有上述四种权利,则该软件得以被称之为「自由软件」。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示其拥有自由软件所赋予的自由权利。
自由软体不是没有版权.
大部分的自由软体可以无需费用自由获取,并且它的原始码可以自由修改并散布,但它并不是没有版权。版权是当某项作品完成时就自然产生了,不需申请或注册,而其内涵通常包括署名、发表(公开)、授予他人使用等权利。如合法享有著作权者无条件放弃所有著作权,则该作品就被“释入公有领域”。需要注意的是,被释入公有领域后,原著作权持有者就无法再对其他人如何使用该作品施加任何法律上的限制。因此科技巨头可以合法地使用该等作品进行二次创作(例如制作新软件),而该等二次创作品则在法律上享有完整的著作权,不受原著作权持有者的支配。
这并不符合自由软件的定义。自由软件必须能将“自由”无限传承下去。因此自由软件并未“释入公有领域”,而是将“传承自由属性”作为一项允许他人使用自由软件的条件。如任何人使用了自由软件二次开发的软件未向他人开放原始码,则其对该自由软件的二次开发,即属违反著作权法。因此,自由软体在法律上并未放弃著作权,而是订明了若干“自由”的定义,并要求使用者如欲行使这些自由,必须对衍生作品维持相同授权。
相反的例子是非自由软件(封闭软件)。如果,当使用者付费购买或者免费获得某套软体时,所得到的只是“使用权”,使用者必须接受该软体的软件许可证才能使用这个软体;而许可证列明软体的原作者则仍然保有修改权,未经原作者同意进行修改属违反许可证之行为,则该等软件属于封闭软件。请注意,自由软件也有许可证,常见的如GNU通用公共许可证,但这些许可证不会限制你获取原始码或者限制你修改软件,唯一的要求是你对修改后的软件必须应用同样的或更宽松的许可证。即你修改后形成的新软件,其他人也可以获取其原始码并修改,你不得限制他们这样做,否则你当初的修改行为就因不符合GNU通用公共许可证而构成侵犯(之前参与编写这个软件的人所享有的)著作权。
自由软体不使用封闭格式.
封闭软体通常会使用专属的封闭格式,并且不允许使用者分发,这极大地限制了使用者的自由。而自由软体则完全不同,由于自由软体的原始码是公开的,所以它所使用的任何格式都是透明的。自由软体永远不会只发布专属的封闭格式软件来限制使用者修改的自由。#重定向
-{H|zh-cn:重定向;zh-tw:重新导向;}-
自由软体的精神领袖.
自由软体的精神领袖是理查德·马修·斯托曼。他被人称为「最后的真正黑客」,他认为一个好的软体,应该自由自在地让人取用。软体不应该拿来做为相互倾轧、剥削的工具。所以他起草GNU通用公共许可证来保障自由软体的自由,并创办了自由软体基金会来贯彻他的理念。领袖们有时被称作终身仁慈独裁者。#重定向
-{H|zh-cn:重定向;zh-tw:重新导向;}-
自由软件与开源软件.
最早的开放源代码定义是在1998年创建,来自Debian自由软件指导方针。虽然大多数的开放原始码软体同时也是自由软体,但是,GNU项目认为“开源”这个词并没有抓住自由软件的真正涵义,容易让人过于着重软件的质量、流行与成功而忽视或抛弃自由软件精神的道德观和社会价值,力主自由软件是一个道德底线。
FreeBSD、OpenBSD以及NetBSD的社群人员往往认为「Copyleft」是一种对自由的过度限制,是一种自由的侵害,因此他们倾向于使用较为宽松的BSD、MIT类似的协议,然而这类协议因为缺少相关的说明并不能避免其成果被专利流氓利用。一些公司/群体为了避免专利流氓的侵害而且也不想使用例如GPLv3、MPL2.0等Copyleft协议的情况下会选择使用Apache2.0协议。
对于BSD、MIT这类较为宽松的自由软件协议,GNU项目认为这是对专有软件的松懈()和宽容式(),因为这些协议不能避免其衍生作品成为限制用户自由的专有软件,一旦你允许他们这么做,那么你就无法捍卫其他人的自由了。
[],例如FreeBSD在PlayStation 4系统软件的使用以及BSD的TCP/IP协议栈在专有软件的使用等。
形式上的差异.
开源软件与自由软体是两个不同的概念,-{只}-要符合开源软件定义的软件就能被称为开源软件。而自由软件有比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为「自由」。但一般,绝大多数开源软件也都符合自由软件的定义。
两者内涵的差异.
」一词有「自由」、「免费」的双重含意),那么「开放原始码」的名字则会引起的误解则更多。“开源”很容易让人认为是-{只}-要把原始码「公开」出来就算是开源了,即“你可以看到源代码”。但是如果使用者的自由仍然得不到尊重,那么即使公开原始码也没有意义。有的软体公司只是为了想找使用者帮它除错、吸收社区贡献的功能,这样子会破坏了自由软体的原意。一个例子是Tivo公司生产的机顶盒。虽然它基于GNU/Linux,TiVo公司也按照许可证发布了源代码,但是却禁止用户在机顶盒上运行自己的程序,或重新安装系统。
自由软体的精神领袖理查德·马修·斯托曼很反对人们把开放原始码和自由软体混为一谈。。
自由软件与免费软件.
自由及开放源代码软件列表
免费软体()是一种不须付费就可取得的软体,但是通常有其他的限制,使用者并没有使用、复制、研究、修改和分发的自由。该软体的原始码不一定会公开,有些免费软件即使所谓开源但是因为有会限制用户软件自由如限制用户修改重分发或者限定/限制特定人群使用等行为的限制性条款存在并不是自由软件。
Tivo化.
是一种限制软件自由的行为,即通过检测可执行文件签名,禁止用户安装或运行修改后的可执行文件,这种行为被 Richard Stallman 称为“专制暴君”()。这个名字源自于Tivo公司在其数字视频录像机的产品中使用了GNU和Linux内核的源码但是其从设计上限制了用户的软件自由,用户不能在其产品上自由运行和使用修改后的系统。因此自由软件基金会出版了GPLv3,GNU项目软件的授权协议也随之升级,然而因为各种因素很多Linux内核开发者对升级表示反对。
数字限制管理.
数字限制管理()或数字限制机制()是自由软件社群对数字版权管理的一种讽刺性说法,因为这种行为限制了用户的软件自由权利。
[]自由软件基金会针对此种从设计上就限制用户软件自由的行为发起了Defective By Design运动。#重定向
JavaScript陷阱.
JavaScript陷阱()指用户在浏览器中使用专有软件却毫不知情的现象,RMS在GNU项目网站上给出了具体的定义。
为了解决这个问题,GNU项目创造了提供探测并拦截用户访问的网页上非自由、非平凡的JavaScript功能的给重视软件自由的用户使用。一些自由软件社群,为了解决此类问题也作出了一些努力,例如由自由软件基金会支持的为此专门成立了行动小组。