自由软件

自由软件（free software）是允许使用者自由地使用、复制、研究、修改和分发的软件。

## 概念的来源

1983年9月，理查德·斯托曼在net.unix-wizards和net.usoft新闻组上公布了GNU计划。因为先前在MIT经历了施乐打印机故障，惟软件原理不开放导致斯托曼无法把编写好的卡纸提醒程序上传打印机，专有软件日渐强大的势头让斯托曼感到他有义务去保护和传承他曾经在MIT所感受到的黑客文化。在 《Dr. Dobb’s Journal of Software Tools》这本杂志的 1985 年 3 月期上，他把之前在新闻组上的论述汇编成为了第一版的GNU 宣言。GNU宣言在行文中提到了freeware，但是与今天广为流传的免费软件义不同，这里的freeware是指一种能够分享软件代码原理的，允许大众买卖，自由分发的特殊软件类型。后来GNU计划的参与者为了避免歧义就使用了Free Software（中文：自由软件）这一词组。

## 定义

在英文里“free”一词有“自由”、“免费”的双重含意。为了避免歧义，斯托曼对 Free Software 中 free 的含义做出了如下解释：“自由软件的重点在于自由权，而非价格。要了解其所代表的概念，你应该将“free”想成是“言论自由”（free speech）一词中的含义，而不是“免费啤酒”（free beer）一词中的含义。”

### 自由软件允许商业行为

符合自由软件定义的许可证不会限制对于软件二进制档案的贩卖，一些许可证如GNU通用公共许可证（GNU GPL）甚至允许使用物理介质分发原始码的时候收取一定量的工本费。但是，对于GNU通用公共许可证来说，其条款要求版权所有者不可向用户索要授权费或版税，或就用户行使其所授任意权利时征收额外费用。

### 自由软件基金会的自由软件定义

自由软件基金会（FSF）对自由软件的定义并非一步到位，于1986年发表的GNU's Bulletin, vol. 1 no. 1定义了两种软件上的自由。

根据FSF如今的定义，自由软件能赋予使用者四种自由:

- 自由度0：无论用户出于何种目的，必须可以按照用户意愿，自由地运行该软件。
- 自由度1：用户可以自由地学习并修改该软件，以此来帮助用户完成用户自己的计算。作为前提，用户必须可以访问到该软件的源代码。
- 自由度2：用户可以自由地分发该软件的拷贝，这样就可以助人。
- 自由度3：用户可以自由地分发该软件修改后的拷贝。借此，用户可以把改进后的软件分享给整个社区令他人也从中受益。作为前提，用户必须可以访问到该软件的源代码。

根据SPDX的网站记录，FSF定义的自由软件受到该组织认可的各类自由软件许可证保护而发布（或是放置在公有领域）。

## 分歧

### 开源软件概念的出现

根据开放源代码促进会（OSI）的历史记录，在帕洛阿尔托的一次自由软件峰会上，因为部分参会者想避免Free Software这个标签所带来的哲学和政治含义，他们就提出使用开源软件（open source software）这一词组代指自由软件；OSI在2006年的FAQ则描述：“Open Source”词组，为自由软件的营销术语。gnu.org的一篇论述认为在早期，部分人使用“Open Source”是为了避免“Free”所带来的歧义。如今，自由软件基金会与开放源代码促进会分别认可的自由软件许可证与开源软件许可证已经不完全重叠。

最早的开源定义参考了Debian 自由软件指导方针，并于1998年首次发布。从OSI的创始人之一ESR看来，开放源代码运动的哲学是使用开放的开发方式，尽可能的使软件最佳化。而OSI的另一位创始人布鲁斯·佩伦斯则在Debian的官方邮件列表里公开表示：It's Time to Talk About Free Software Again虽然大多数的开放源代码软件同时也是自由软件，但是，gnu.org认为“开源”这个词并没有抓住自由软件的真正涵义，容易让人过于着重软件的质量、流行与成功而忽视或抛弃自由软件哲学的道德观和价值取向，力主使用“自由软件”这一概念。

### 对于许可证类型的偏好

根据gnu.org的记载，宽松许可证的支持者中有人认为使用这样的许可证是一种谦逊的行为，也有这类许可证的支持者则认为不应该对下游软件开发者说不，因此他们倾向于使用较为宽松的，类似BSD这样的许可证。不过，BSD，MIT这类许可证因为缺少相关的说明并不能避免其成果被专利流氓利用。同样是宽松许可证的Apache 2.0在许可证文本中则明确提到专利权，正确运用的情况下能保护著作权所有者的相关权利。TechCrunch的一篇文章举例，若开发者研发出了一种已经自行申请了专利的新图像处理算法，并将其加入了某使用Apache 2.0许可证的软件之后，该算法的专利保护效应能通过该许可证传播到所有该软件用户的软件上。Apache 2.0与GPL第三版的许可证条文中都包含专利反制条款，假使软件的用户对含有这类条款的软件的其他用户或者任何一个开发者提出专利侵权的主张或者诉讼，权利人有权终止该用户使用此类软件内含专利甚至许可证所授权的其他权利（视许可证而定）。

对于宽松的自由软件许可证，gnu.org认为，如果允许自由软件的衍生作品成为专有软件，那么你就无法捍卫他人的自由了。例如FreeBSD项目的软件被集成进专有的PlayStation 4系统，以及BSD系列许可证的TCP/IP协议栈在专有软件Microsoft Windows中的使用等。

## 开发自由软件的动机

部分经济学论文指出：软件市场中，软件分发的边际成本可以忽略不计。Ghosh (1998) 在其论文中把网络上流通的免费的财货比作“大汤锅”（cooking pot）；自由或开源软件的开发者把他们的软件倒入一口公共的“汤锅”，汤锅里的混合物可以被任何人自由的获取。ESR 认为激励人们编写软件并捐赠的动机是：开发并分发对于特定领域的软件解决方案所带来的荣誉感和自我实现。

根据来自麻省理工斯隆管理学院的研究者在2003年发表的一篇论文，研究人员透过网络问卷的方式统计到了软件开发者开发自由或开源软件中不同动机的比例。

论文总结了如下不同的动机类别：

- 开发者出于娱乐目的进行开发。
- 开发者出于对社区的义务而进行开发。
- 开发者认为收益大于成本时，会持续开发。(Lerner and Tirole 2002)
- 即时回报：开发者被雇佣开发自由软件；用户的需求得到满足。(von Hippel 2001)
- 延迟回报：可能的升职机会；开发者作为人力资本的（编程）技能升级。

上述论文统计到的结果是，开发者主要基于内在的满足感（在开发某个项目时所感受到的创造力）进行开发。

## 对自由软件的批评

Debian项目与OSI的前领导人布鲁斯·佩伦斯认为：尽管自由软件与开源软件对社会作出了诸多贡献，但是现存的自由软件和开源软件定义及其许可证并不能真正保护开发者的利益。因此他提出了Post Open这一概念。在他的设想中，Post Open的法律条款将明确开发者与使用其产品的公司之间的财务关系。他也致力于减少新FOSS许可证的产生。

Ruby开源社区的Coraline Ada Ehmke认为现有的自由/开源软件许可证并不能限制政府、大公司、群体甚至个人作恶。所以，她主持起草了一个新的许可证：Hippocratic许可证。据Wired的报道，这个新的许可证允许任意用途的修改和分发，但有一个重大例外：以这个许可证约束的软件不能用于对个体或者集体的灭绝，伤害；不能威胁到个体或集体的物理，精神，经济状况或者总体福祉。

## 影响

<image>

先以GNU/Linux为例。根据所有使用W3Counter技术的网页所收集的数据，搭载 Linux 内核的计算设备（包括并主要是Android OS）在2025年二月已经占全球计算设备份额的 46.64%，居操作系统市场份额的第一位。根据 w3techs 收集到的数据，在他们能识别操作系统类型的服务器中，56.1%的网页服务器使用Linux操作系统。

GCC作为最早的自由软件编译器套装之一，许多自由软件或专有软件——包括操作系统都是使用这一编译器套装进行编译的，其技术规范甚至成为了开源软件社区的事实标准。自由软件目录曾经由FSF与联合国教科文组织共同运营。

维基媒体基金会旗下的许多项目都使用了MediaWiki这一自由的Wiki引擎。根据新浪科技2021年的转载，维基百科作为自由内容的网络在线百科全书之一每日有接近 30 万名的“维基人”参与编辑。

在浏览器组件中，KDE项目的网页渲染引擎KHTML被Apple Inc.分叉出了WebKit，并作为Safari的渲染核心；而WebKit中的WebCore组件又被分叉成为了Chromium系浏览器的排版引擎Blink。

一些有名的编程语言及其实现使用宽松自由软件许可证，如Python和Go等。

## 外部链接

- 《自由软件，自由社会（第三版）》中文版在线自由阅读，北京GNU/Linux用户组翻译。
- 自由软件目录 - 自由软件基金会
- 中华民国软件自由协会