自由软件与开源软件的定义
2023-03-16 来源:你乐谷
自由软件与开源软件的定义
本文核心词:自由软件的定义
什么是自由软件?
Copyright © 1996–2002, 2004–2007, 2009–2015 自由软件基金会。此文最初于 1996 年发表在
来源:《自由软件,自由社会》第三版,许可:GFDL v1.3
自由软件的定义给出了一个标准,即一个特定的软件是否有资格被称为自由软件。我们时不时修改这一定义,以澄清和解决与之相关的各种细微问题。关于我们对自由软件定义所作的修改记录,请参阅
“自由软件”(Free Software)表示的是那些尊重用户和社区自由的软件。粗略的说,它赋予用户运行、复制、分发、学习、修改并改进软件的自由。因此,“自由软件”是有关用户的自由权益(liberty),而不是指免费(free)的价格。为了理解这个概念,你需要将“free”一词理解成“言论自由”中的“自由”,而不是“免费啤酒”里的“免费”。有时我们会称之为“Libre Software”,以避免带有免费的意思。
我们争取这些自由,是因为每个人都应该拥有它。有了这些自由,用户(包括个体和团体)就可以控制程序为己所用。当用户无法控制程序时,我们称这样的软件为“非自由”(Nonfree)或“专有”(Proprietary)程序。非自由的程序控制了用户,而开发者控制着程序:这就让程序成为了非正义权力的帮凶1。
如果一个软件的用户拥有以下四项基本自由,那么该软件可以被称为自由软件:
基于任何目的,按你的意愿运行软件的自由(自由之零)。
学习软件如何工作的自由,按你的意愿修改软件以符合你的计算的自由(自由之一)。可访问源代码是此项自由的先决条件。
分发软件副本的自由,因此你可以帮助他人(自由之二)。
将你修改过的软件版本再分发给其他人的自由(自由之三)。这样可以让整个社区有机会共享你对软件的改动。可访问源代码是此项自由的先决条件。
如果一个软件可以充分授予用户所有这些自由,它就是自由软件,否则就是非自由软件。即使我们可以依据它们与这四项自由有多大的差异来区分不同的非自由发行方式,我们依然认为这些非自由软件是不符合伦理的。
在任何情况下,这些自由都必须应用于所有要使用的代码,或引导其他人使用这些软件。例如,程序 A 会自动调用程序 B 来处理一些事情,如果我们独立发布 A 也意味着用户还需要 B,因此我们需要判断 A 和 B 是否都是自由的。如果我们修改了 A 使得它不再需要 B,那么只需要 A 是自由的,就可以忽略 B。
本文余下的内容,将会澄清关于特定自由是否适用的一些关键点。
再分发软件的自由(自由之二和自由之三)表示你可以在任何地方发布软件的副本给任何人,无论是否有过修改,无论是免费或收取费用。自由地再分发意味着(排除其他因素)你不需要必须事前征得任何发行许可或为此支付额外费用。
你应该有修改软件的自由并将软件用于私人的工作或娱乐,甚至不需要提到你的修改。如果你发布了自己的修改版,你不应被要求通知特定的人或以特定的方式发布。
运行软件的自由,即赋予任何个人或组织在任何计算机系统上,基于任何工作方式或任何目的运行软件,而无需与任何开发者或特定实体沟通的自由。在这个自由中,重要的只是用户的目的,而非开发者的目的;你作为用户有基于任何目的运行软件的自由;如果你将软件发布给了其他人,则他也有按自己目的运行软件的自由,但你不能将自己的目的强加给他。
以你的意愿运行软件的自由也表示你不能被要求禁止或停止运行该程序,这无关软件的功能,或对你来说它是否有用。