我们维护本文来彰显自由软件定义,说明什么软件才合适被称为「自由软件」。
「自由软件」关於「自由」而不是价格,「自由 (Free) 」这个概念并不是指「免费的啤酒」,而是指「言论自由」【因为英文的自由和免费视同一个字: free】。
自由软件所指称的软件,其使用者有使用、复制、散布、研究、改写、再利用该软件的自由。更精确地说,自由软件赋予使用者四种自由:
- 不论目的为何,有使用该软件的自由(自由之零)。
- 有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身的需求(自由之一)。取得该软件之源码为达成此目的之前提。
- 有重新散布该软件的自由,所以每个人都可以藉由散布自由软件来敦亲睦邻(自由之二)。
- 有改善再利用该软件的自由,并且可以发表改写版供公众使用,如此一来,整个社群都可以受惠。如前项,取得该软件之源码为达成此目的之前提(自由之三)。
如果一软件的使用者具有上述四种权利,则该软件得以被称之为「自由软件」。也就是说,使用者必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版 在任何地方给任何人 使用。如果使用者不必问任何人或是支付任何的许可费用从事这些行为,就表示她/他拥有自由软件所赋予的自由权利。
使用者也应该有自由改写软件的权利,并且可以将这些软件再利用在工作上或是娱乐上。
使用软件的这份自由权适用於任何人、任何组织、任何电脑系统、任何工作性质,不用特别和软件作者或是其他特别的人或单位报备。
再散布软件的自由必须同时适用於原版和改写版软件的二进制码和源码上,如果无法制作二进制码的版本,则此动作可以略过,但是如果后来的使用者找到其它可以制作二进制码的方式,她们必须有再散布二进制码的自由。
为了成就改写并发表改写版的自由,使用者必须有取得该软件源码的管道,所以,取得源码为自由软件之本。
为了使这些自由成真,只要使用者没犯下滔天大罪,这些自由权利不能被改变。如果使用者并未做错事,而该软件的作者却拥有取消或撤回其许可方式的权力,那么该软件不是自由软件。
但是,如果额外的规定不和上述四项主要的自由权利相冲的话,这些有关散布自由软件的额外规定是可被接受的。例如,另类版权 copyleft 规定说,当重新散布该软件时,作者不能加限制拒绝其他人主要的自由权利,这个规定并不和上述的主要自由相冲,反而更进一步保障了使用者的自由软件权益。
使用者可以付费取得 GNU 的软件,或者,使用者也可以免费取得这些软件,但是,不管使用者是如何取得这些软件的,她/他们必须永远有权利复制或是改写这些软件,甚至 贩售 这些软件。
自由软件因此并不是「非商业软件」。自由软件必须适用於商业用途。自由软件的商业开发模式已很常见;这样的自由商业软件相当重要。
如果不影响到后来的使用者发行改写的权利规定,则额外加入的规范如何将一个改写后的自由软件制作为套件的相关规定亦可行。同理,像这类「如果你用这种方式发行软件,你必须让这个软件也能在这种情况下可得」的措辞也是在许可之下的(这类规定也让使用者有该不该发行该软件的选择)。如果许可证要求「在当你发行修订版时,若先前的开发者要求一份拷贝,则你必须提供」的条件,它也是符合自由的。
在 GNU 工程中,我们使用 copyleft 这类许可方式来保护每个使用者都享有这些软件自由,但是 非 copyleft 的自由软件 也同时存在。我们相信有某些重要的原因使得 copyleft 的许可方式较其它自由软件许可方式要好 ,但是如果你的软件不是 在 copyleft 的许可之下,我们也使用它。
欲知自由软件、以 copyleft 许可的软件、和其它种类的软件的相连性,请见 「自由软件的种类」 一文。
有时候,政府 外销管制 和交易许可的规定会限制使用者全球性散布软件的权利和自由,虽然软件开发者/作者没有权力去排除或是消弭这些限制,但是,她/他们可以、 也必须拒绝将这些条件列入自由软件的使用法则中,如此这般,这些官方规定将不会影响到使用者的软件自由,和自由软件相关的人、事、物也因此不在这些政府部门管辖范围之内。
大部份的自由软件的许可证是基於 copyleft ,而可以加诸於其上的要求类型是有限制的。如果一份基於版权的许可证遵守了如上所述的自由时,那么就不太可能会遇上我们从未预期过的其它类型的问题(虽然偶尔还是会有)。不过,有一些自由软件的许可证是基於合同的条款,而合同可以被加诸较大程度的可能限制。这表示像是这样的许可证,会有许多可能的方式变得受限到无法接受,因而成为「非自由」的。
我们实在无法列出所有无法接受的可能的合同限制。如果一份基於合同的许可证,以一种基於版权的许可证所无法的不寻常方式,限制了使用者,并且不能如本文所述的视为合格〔的自由条款〕,我们将会试著审度这合同,并且很有可能认定它是非自由的。
当谈到自由软件时,最好避免使用「给」或是「免费」这类的措辞,因为这些措辞会给人给人「free」是指「价格上的免费」的误导,而忽略了使用软件自由的真义。有些词语像 「盗版」就有类似的涵义,我们希望自由软件的使用者不会想被这样指称。有关讨论这些措辞的用法,详见 「容易混淆的词语,请尽量避免」 一文,我们也有 「自由软件一词的翻译」 的多种语言版本。
最后,请注意,这些有关自由软件定义的标准需要审慎的诠释。我们根据某一软件选定的许可方式是否符合上述四点软件自由的精神和重点文字,来决定该软件是否符合自由软件的标准。如果某一软件含有不公平、违背上述四点自由软件精神的限制,就算该软件发行了,我们拒绝使用它。有时候,一份许可证会引发一些讨论,在接受它成为一份自由软件许可证之前,需要我们和一些律师法律专家们共同来判断和思考,当我们达成共识的时候,我们会更新自由软件标准,让使用者更容易了解什么许可方式是符合或是不符合自由软件定义的。
如果你对某份特定的许可方式是否符合自由软件的许可方式有兴趣,请见我们的 「许可方式一览表」 一文,如果你感兴趣的许可方式不在我们的列表中,请直接透过 email 问我们。来信请寄 <licensing@gnu.org> 。
可能的情况下,如果你真的需要一份新的许可证,那么在我们的协助下你可以确定那许可证是否真是自由软件许可证,从而避开许多实际上的问题。
其它团体已经开始使用「开放源码 」一词,以用来指称与「自由软件 」在某种程度意义相当,但是仍不尽相同的事物。我们倾向於使用「自由软件 」的原因在於,一旦你曾听过它意指自由,而非免费,那么 你就可以从它的称呼上知道它所著重的是自由了 。
分享到:
相关推荐
而OSIA(Open Source Initiative Association)则负责认证符合自由软件定义的许可证,通过认证的软件可以使用OS或OSI的商标标识。 自由软件的管理涉及如何合法合规地使用这些软件,包括遵循相应的许可协议,确保在...
自由软件许可证,如GPL(GNU General Public License),确保了软件的自由传播和修改,同时也保护了开发者的工作不被他人滥用。 然而,自由软件运动也面临着挑战。一方面,专有软件公司通过专利和版权法保护其产品...
- 《自由软件定义》明确了什么是自由软件,解释了为什么软件应当是自由的。 - 《为什么软件不应该有所有者》探讨了私有软件所带来的问题,如限制用户自由、阻碍技术创新等。 - 《名字的重要性》和《为什么“自由...
Richard Stallman提出的自由软件定义中,这四个自由被视为保障用户权利的核心。 Linux的重要性在于它提供了开放的标准、开放的架构和开源的源代码,这对于用户来说意味着更高的灵活性、安全性、稳定性和成本效益。...
这一指导方针基于自由软件定义,确保了所有包含在Debian中的软件都符合自由软件的基本原则。这不仅保证了软件的质量,也维护了Debian作为自由软件社区的声誉。 **1.3 Debian项目的内部运作** **1.3.1 Debian开发者...
- **自由软件定义**: 自由软件是指用户拥有以下三个层次自由的软件: - 研究程序运行机制,源代码公开并根据用户自己的需要修改它的自由; - 重新分发拷贝,以使其他人能够共享软件的自由; - 改进程序,为使他人...
《若为自由故——自由软件之父理查德·斯托曼传》和《理查德·斯托曼与自由软件运动》这两本书深入探讨了IT领域的关键人物——理查德·斯托曼(Richard Stallman)和他的自由软件理念。理查德·斯托曼,被誉为自由...
- **自由软件**:遵循自由软件定义,用户可以自由使用、复制、修改和分发。 - **符合国际标准**:Linux与各种国际标准兼容,如POSIX、ANSI、ISO、IETF和W3C标准,确保了与其他系统的互操作性。 - **多用户、多...
《软件定义串口转换器详解》 在现代通信技术中,串口通信作为一种常见的接口方式,广泛应用于各种设备之间。然而,传统的串口硬件限制了其灵活性和扩展性。为了解决这一问题,"软件定义串口转换器"应运而生。这种...
Python实现一个可自由定义网络图、流程图以及简单的神经网络可视化(目前支持Tensorflow2.0+模型可视化)工具源码 安装 1、pip安装 pip install ndraw -U 2、源码安装 下载源码,打开命令行 python setup.py bdist_...
综上所述,《制造开源软件-如何成功运营自由软件项目》主要涉及了开源项目管理、社区建设和商业模式等多个方面的内容。通过对这些关键知识点的学习与实践,相信每位读者都能够更好地理解和参与到开源运动中来。
### 2010年全球自由软件日华南农业大学分站─郭华星演讲 #### 核心知识点概览 - **自由软件的概念及其历史** - **自由软件与理科结合的可能性** - **GNU/Linux操作系统** - **自由软件的四大自由** #### 详细知识...
网络暴力与网络自由[定义].pdf
PHPWAMP是一款专门为满足这一需求而设计的服务器软件,它提供了对PHP版本的自由定义以及定时重启服务的功能,使得开发者可以在不同的项目中灵活地切换PHP版本,同时保证服务的稳定运行。 首先,我们来详细了解一下...
软件定义与分类是测试工作的基础,对于初入行业的测试人员来说,理解这些概念至关重要。软件定义涵盖了计算机程序、程序所需的数据以及相关的文档资料,这些元素共同构成了一个完整的软件系统。软件测试则是发现程序...
VMware软件定义的数据中心(Software-Defined Data Center, SDDC)架构是一种现代数据中心的构建方式,它将传统的硬件基础设施转变为软件控制的资源池,从而实现了数据中心资源的高度自动化、灵活性和可扩展性。...