summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTong Hui <tonghuix@gmail.com>2016-10-07 16:30:54 +0800
committerTong Hui <tonghuix@gmail.com>2016-10-07 16:30:54 +0800
commit2cd1e223f4a20079c4e86d581909635767281298 (patch)
tree674166fbe6eef46c6051d6e0c29ef33f361cdc2d
parent09dd681596bacde42449a31e0b8c369ab3b32bab (diff)
downloadfsfs-zh-2cd1e223f4a20079c4e86d581909635767281298.tar.xz
the gnu project detail proofread
-rw-r--r--docs/thegnuproject.md90
1 files changed, 45 insertions, 45 deletions
diff --git a/docs/thegnuproject.md b/docs/thegnuproject.md
index 4ef5176..bd58842 100644
--- a/docs/thegnuproject.md
+++ b/docs/thegnuproject.md
@@ -5,7 +5,7 @@
### 第一个软件分享社区
-当我在1971年开始在 MIT(麻省理工大学)的人工智能实验室工作的时候,我成为了那里的一个已存在数年之久的一个软件分享社区的一员。在我们这个特别的社区里,分享软件不受任何限制;这和计算机的历史一样悠久,正如分享菜谱的行为乃是和做饭的历史一样久远的。但我们分享得比大多数人更多。
+当我在1971年开始在 MIT(麻省理工学院)的人工智能实验室工作的时候,我成为了那里一个已存在数年之久的软件分享社区的一员。在我们这个特别的社区里,分享软件不受任何限制;这和计算机的历史一样悠久,正如分享菜谱的行为乃是和做饭的历史一样久远的。但我们分享得比大多数人更多。
人工智能实验室使用一个叫 ITS(不兼容分时系统)的分时操作系统,由实验室的黑客[^thegnu-1]员工们设计,并以 Digital PDP-10 ——当年的大型机之一——的汇编语言写成。作为这个社区和人工智能实验室系统黑客员工的一员,我的工作便是改进这个系统。
@@ -15,13 +15,15 @@
80年代初,Digital 关停了 PDP-10 系列,与此同时,形势发生了剧变。PDP-10 在60年代优雅而强大的架构无法自然地扩展到80年代开始可用的更大的地址空间上。这意味着几乎所有组成 ITS 的程序都要作废。
-人工智能实验室的黑客社区不久前就解体了。在1981年,附属的 Symbolics 公司几乎雇走了人工智能实验室的所有黑客,而严重减员使得社区已无法自持。(由 Steve Levy 撰写的《黑客》一书记述了这些事件,并给出了一幅社区全盛时期的清晰图景。)人工智能实验室在1982年买了一台新的 PDP-10,而其管理员打算使用 Digital 的非自由分时系统取代 ITS。
+人工智能实验室的黑客社区不久前就解体了。在1981年,附属的 Symbolics 公司几乎雇走了人工智能实验室的所有黑客,而严重减员使得社区已无法自持(由 Steve Levy 撰写的《黑客》一书记述了这些事件,并给出了一幅社区全盛时期的清晰图景[^thegnu-n])。人工智能实验室在1982年买了一台新的 PDP-10,而其管理员打算使用 Digital 的非自由分时系统取代 ITS。
+
+[^thegnu-n]: 《黑客:计算机革命的英雄》一书已由机械工业出版社于2011年出版,赵俐、刁海鹏、田俊静译。——译者注
那时的新计算机,如 VAX 或 68020,都自带着操作系统,但没有一个是自由软件:仅仅为了得到一份可以运行的副本,你就得签保密协议。
-这意味着使用计算机的第一步就是要你下保证不会去帮助你的邻居。协作的社区被禁止了。私权软件所有者订立的规则是:如果你和邻居分享,你就是海盗(在英语中也用该词表示“盗版者”——译者注)。想要改动,就来求我们吧。
+这意味着使用计算机的第一步就是要你下保证不会去帮助你的邻居。协作的社区被禁止了。私有软件所有者订立的规则是:如果你和邻居分享,你就是海盗(在英语中也用该词表示“盗版者”——译者注)。想要改动,就来求我们吧。
-说私有软件的社会制度——一个说你不许分享和改造软件的制度——是反社会的、是不道德的、是完全错误的,可能令不少读者吃惊。但是对于一个建立在分裂群众并保持用户无助的基础之上的制度,我们还能说些什么的呢?对上述观点吃惊的读者可能已经将私有软件的社会制度视为理所当然,或用带有私有软件行业暗示的词语来判断。软件出版商花了大量的力气和时间去使人们相信对这个问题只有一种看法。
+说私有软件的社会制度——不许分享和改造软件的制度——是反社会的、是不道德的、是完全错误的,可能令不少读者吃惊。但是对于一个建立在分裂群众并保持用户无助的基础之上的制度,我们还能说些什么呢?对上述观点吃惊的读者可能已经将私有软件的社会制度视为理所当然,或用带有私有软件行业暗示的词语来判断。软件出版商花了大量的力气和时间去使人们相信对这个问题只有一种看法。
当软件出版商谈论“行使”他们的“权利”或“停止盗版” [^thegnu-2] 时,他们实际“说”的是次要的。这些声明真正传达的是他们将未阐明的假设视为理所当然;公众被要求不加审视地接受这些。还是让我们来仔细审视一番吧。
@@ -33,7 +35,7 @@
如果我们拒绝接受这些假设,并基于普通常识下的道德把用户放在首位来判断这些问题,我们会得到非常不同的结论。计算机用户应当有自由去修改程序以适应他们的需求,并自由地共享软件,因为帮助别人是社会的根基。
-篇幅所限,结论背后的展开叙述不在此详述,读者请参阅文章《为何软件不应有主》于 <http://gnu.org/philosophy/why-free.html>,以及《现在自由软件更加重要》。
+篇幅所限,结论背后的展开叙述不在此详述,读者请参阅文章《为何软件不应有主》于 <http://gnu.org/philosophy/why-free.html>,以及《如今自由软件更加重要》。
### 严酷的道德抉择
@@ -49,19 +51,19 @@
答案很清晰:我们首先需要的是一个操作系统。它是开始使用一台计算机的至关重要的软件。有了操作系统你可以做很多事;没有操作系统你就完全无法使用计算机。有了自由的操作系统,我们就可以再次拥有互助的黑客社区——并邀请任何人加入。而且任何人都能使用计算机而毋须图谋去剥夺他们的朋友。
-作为一个操作系统开发者,我拥有适当的技艺。故我觉上天降此大任于我,纵不觉注定成功。我决定将系统做成和 Unix 兼容以使其可移植,而且这样 Unix 用户可以很容易切换到它。追随黑客传统,我选了 GNU 这个名字,即 “GNU’s Not Unix” 的递归缩写。
+作为一个操作系统开发者,我拥有适当的技艺。故我觉上天降此大任于我,纵不觉注定成功。我决定将系统做成和 Unix 兼容以使其可移植,而且这样 Unix 用户可以很容易切换到它。追随黑客传统,我选了 GNU 这个名字,即“GNU’s Not Unix”(意为“GNU 不是 Unix”)的递归缩写。
-一个操作系统并不意味着仅仅是一个内核,这样几乎没有足够的水来运行其他程序。在20世纪70年代,能称得上操作系统的软件都包含了命令处理器、汇编器、编译器、解释器、调试器、文本编辑器、邮件程序,以及其它许多程序。ITS、Multics、VMS 和 Unix 都有这些。GNU 操作系统也得有。
+一个操作系统并不意味着仅仅是一个内核,这样几乎没有足够的水平来运行其他程序。在20世纪70年代,能称得上操作系统的软件都包含了命令处理器、汇编器、编译器、解释器、调试器、文本编辑器、邮件程序,以及其它许多程序。ITS、Multics、VMS 和 Unix 都有这些。GNU 操作系统也得有。
后来我听到希勒尔的这些话:[^thegnu-3]
-> 我不为我谁为我?
-> 我只为我我为何?
-> 此时不作更待何时?
+> 我不为我谁为我?
+> 我只为我我为何?
+> 此时不作更待何时?
启动 GNU 工程的决定正是基于类似的情怀。
-### Free是“freedom”的“free”
+### Free 是“freedom”的“free”
“free software”一语常常引发误解——它无关价格、它关乎自由。以下是自由软件的定义:
@@ -71,11 +73,9 @@
- 不论目的为何,有使用该软件的自由。
- 有修改软件以符合自身需求的自由。(为使得该自由有效行使,你必须能够访问源代码,
因为在没有源代码的情况下修改程序非常困难。)
-- 有重新发行该软件副本的自由,既可免费亦可收费。
+- 有重新分发该软件副本的自由,既可免费亦可收费。
- 有发行该软件的修改版的自由,这样社区将从你的改进中受益。
-
-
因为 “free” 指的是自由,而不是价格,所以在销售副本和自由软件之间没有矛盾。事实上,销售副本的自由是很重要的:以 CD-ROM 形式卖出的自由软件集对社区很重要,并且出售它们是为自由软件开发筹集资金的重要方法。因此,无法给予人们这些自由的程序就不是自由软件。
因为 “free” 一词的二义性,人们用了很长时间找寻替代词,但更好的词汇尚未找到。英语比其它语言有更多的单词和词汇间的微妙差别,但它缺少一个简单而明确的单词用来表示“自由”,就像在“freedom”一词中——最接近此含义的单词是 “unfettered”。诸如 “liberated",“freedom” 和 “open” 等替代都有错误的含义或一些其它缺点。
@@ -84,7 +84,7 @@
开发一个系统是个非常大的工程。为了达成目标,我决定尽可能适配并使用现有的自由软件。例如,一开始我就决定用 TeX 来做主要的文本排版器;若干年后,我决定使用 X 窗口系统而不是为 GNU 再写一个窗口系统。
-由于上述决定,和其他类似的决定,GNU 系统不同于所有 GNU 软件的集合。GNU 系统包含非 GNU 的软件,这些程序是由其他人或工程为了他们自己的目的而开发的。我们之所以能用它们是因为它们是自由软件。
+由于上述决定,和其他类似的决定,GNU 系统不同于所有 GNU 软件的集合。GNU 系统包含非 GNU 的软件,这些程序是由其他人或项目为了他们自己的目的而开发的。我们之所以能用它们是因为它们是自由软件。
### 工程启动
@@ -96,7 +96,7 @@
GNU 工程开始前不久,我听说了自由大学编译器工具包,又称 VUCK(荷兰语的“自由”一词以*V*开头)。该编译器设计成支持多种编程语言,包括 C 和 Pascal,并支持多种目标机器,我曾写信给其作者询问 GNU 是否可以使用它。
-他带着嘲弄回答了,说大学是自由的而编译器不是。因此我决定我第一个为了 GNU 工程而写的程序就是一个多种语言,多平台的编译器。
+他带着嘲弄回答了,说大学是自由的而编译器不是。因此我决定首先为 GNU 工程而写的程序就是一个支持多种语言,多平台的编译器。
我希望能避免只靠自己编写整个编译器,因此我要来了 Lawrence Livermore 实验室开发的多平台编译器 Pastal 的源码。它支持一种适合系统编程的 Pascal 语言的扩充版本,并由该语言写成。我给它加上了一个 C 语言前端,并开始将其移植到 Motorola 68000计算机。但当我发现该编译器需要数兆字节的栈空间,而可用的 68000 Unix 系统仅允许 64k 时,我只得放弃。
@@ -108,19 +108,19 @@ GNU 工程开始前不久,我听说了自由大学编译器工具包,又称
这时候,人们开始想用 GNU Emacs,因此出现了该如何发行它的问题。当然,我把它放在了我在 MIT 时用的计算机的匿名 ftp 服务器上(那台计算机 `prep.ai.mit.edu`,因而成了主要的 GNU ftp 发行站点,当它一年后退役时,我将其域名转移到我们的新 ftp 服务器上)。但在那时,不少感兴趣的人们并不在互联网上因而无法通过 ftp 得到副本。所以问题是,我该跟他们说什么?
-我可以说,“找个上网的朋友帮你下载一个。”或者我可以像对原来 PDP-10 Emacs 那样操做:跟他们说,“寄一盘磁带和 SASE (贴足邮资写明发信人)来,我会把 Emacs 写到磁带上寄回去。”但我没有工作,而我正在寻找通过自由软件挣钱的方法。所以我宣布我会寄一盘磁带给任何想要的人,要价 150 美元。我以这种方式启动了发行自由软件的事业,那是今天发行整个 GNU/Linux 系统的公司们的先驱。
+我可以说,“找个上网的朋友帮你下载一个”。或者我可以像对原来 PDP-10 Emacs 那样做:跟他们说,“寄一盘磁带和 SASE (贴足邮资写明发信人)来,我会把 Emacs 写到磁带上寄回去。”但我没有工作,而我正在寻找通过自由软件挣钱的方法。所以我宣布我会寄一盘磁带给任何想要的人,要价 150 美元。我以这种方式启动了发行自由软件的事业,那是今天发行整个 GNU/Linux 系统的公司们的先驱。
### 是一个对任何用户都自由的程序吗?
-如果一个程序离开作者的手时是自由软件,这并不一定意味着它对拥有其副本的每一个人都是自由软件。例如,公有领域的软件 [^thegnu-4](没有版权的软件)是自由软件;但任何人都可以制作由它修改而来的私有版本。类似的,不少自由程序是被版权保护但按照一个简单的、允许私有修改版的纵容性协议发行。
+如果一个程序离开作者的手时是自由软件,这并不一定意味着它对拥有其副本的每一个人都是自由软件。例如,公有领域的软件 [^thegnu-4](没有版权的软件)是自由软件;但任何人都可以制作由它修改而来的私有版本。类似的,不少自由程序是被版权保护但按照一个简单的、允许私有修改版的宽容性协议发行。
-这个问题的典型例子是 X 窗口系统。这是一个由 MIT 开发并以一个放纵性协议发行的自由软件,它很快被各个计算机公司接受。它们把 X 以仅有二进制的形式加到它们的私有 Unix 系统中,并被同样的保密协议控制着。这些 X 的副本和 Unix 一样,已经不再是自由软件。
+这个问题的典型例子是 X 窗口系统。这是一个由 MIT 开发并以一个宽容性协议发行的自由软件,它很快被各个计算机公司接受。它们把 X 以仅有二进制的形式加到它们的私有 Unix 系统中,并被同样的保密协议控制着。这些 X 的副本和 Unix 一样,已经不再是自由软件。
X 窗口系统的开发者们并不认为这是一个问题——他们期望并有意使其发生。他们的目标不是自由,而仅仅是“成功”,那种定义为“有许多用户”的成功。他们不在意这些用户是否拥有自由,只是希望他们人数众多。
这导致一个矛盾的情形,两种不同的自由度计算方法对同一个问题“这个程序自由吗?”给出不同的回答。如果你基于 MIT 许可证的发行条款给出的自由作判断,你就会说 X 是自由软件。但是如果你以一般 X 用户的自由来衡量,你就只能说它是私有软件。大多数 X 用户当时正在使用的是随 Unix 系统而来的私有版本,而不是自由版本。
-### 左版和 GNU GPL
+### 左版(Copyleft)和 GNU GPL
GNU 的目标是给与用户自由,而不仅仅是流行。所以我们需要使用可以阻止 GNU 软件被转变成私有软件的发行条款。我们使用的方法叫“左版” [^thegnu-5]
@@ -134,15 +134,15 @@ GNU 的目标是给与用户自由,而不仅仅是流行。所以我们需要
一个有关的问题涉及将自由的程序和非自由的代码结合到一起。这样的结合体将不可避免变得不自由;任何一个在非自由部分上缺失的自由也将在整体上缺失。允许这样的结合将会打开足以沉掉一艘船的缺口:任何添加或结合到左版程序上的东西必须使得更大的结合版也是自由和左版的。
-我们为大多数 GNU 软件使用的左版的明确使用 GNU 通用公共许可证,或简称 GNU GPL。我们在特定场合下有其它种类的左版可以使用。GNU 手册也是左版的,但使用一个非常简化的左版类型,因为GNU GPL 的复杂性对手册是不需要的[^thegnu-6]。
+我们明确为大多数 GNU 软件使用了左版的 GNU 通用公共许可证,或简称 GNU GPL。我们在特定场合下有其它种类的左版可以使用。GNU 手册也是左版的,但使用一个非常简化的左版类型,因为GNU GPL 的复杂性对手册是不需要的[^thegnu-6]。
### 自由软件基金会
随着使用 Emacs 的兴趣的增长,开始有其他人加入 GNU 工程,我们感到再次筹集资金的时候到了。所以我们在 1985 年建立了自由软件基金会(FSF),一个发展自由软件的免税慈善机构。FSF 也接手了发行 Emacs 磁带的工作;后来通过将其他自由软件(既有 GNU 的也有非 GNU 的)加到磁带上,和卖软件的自由手册扩展了该业务。
-FSF 的大部分收入曾经来自销售自由软件的副本和其他相关服务(源代码的 CD-ROM、二进制文件的 CD-ROM、精心印刷的手册,都有着再发行和修改的自由),以及豪华的发行(我们为客户选择的平台定制的完整的软件集)。今天 FSF 仍然销售手册和其他部件 [^thegnu-7],但大部分的资金来自成员的会费。你可以通过 <http://fsf.org/join> 来加入 FSF。
+FSF 的大部分收入曾经来自销售自由软件的副本和其他相关服务(源代码的 CD-ROM、二进制文件的 CD-ROM、精心印刷的手册,都有着再发行和修改的自由),以及豪华的发行版(我们为客户选择的平台定制的完整的软件集)。今天 FSF 仍然销售手册和其他部件 [^thegnu-7],但大部分的资金来自成员的会费。你可以通过 <http://fsf.org/join> 来加入 FSF。
-自由软件基金会的雇员已经编写并维护了大量的 GNU 软件包。两个值得注意的是 C 库和 shell。GNU C 库是运行于 GNU/Linux 系统上的任一程序用于和 Linux 通信的组件,由自由软件基金会的成员之一,Roland McGrath 所开发。用于大部分 GNU/Linux 系统的 shell 是 BASH,“再 Bourne Shell”[^thegnu-8],由 FSF 雇员 Brian Fox 编写。
+自由软件基金会的雇员已经编写并维护了大量的 GNU 软件包。两个值得注意的是 C 库和 shell。GNU C 库是运行于 GNU/Linux 系统上的任一程序用于和 Linux 通信的组件,由自由软件基金会的成员之一,Roland McGrath 所开发。用于大部分 GNU/Linux 系统的 shell 是 BASH,“Bourne Again Shell”[^thegnu-8],由 FSF 雇员 Brian Fox 编写。
我们资助了这些程序的开发是因为 GNU 工程并不仅仅与工具和开发环境有关。我们的目标是一个完整的操作系统,而该目标需要这些程序。
@@ -160,7 +160,7 @@ FSF 的大部分收入曾经来自销售自由软件的副本和其他相关服
GNU的首要目标是作为自由软件。即使 GNU 对 Unix 没有技术优势,它也有允许用户合作的社会优势;它还有道德优势:尊重用户的自由。
-但是将好的实践的已知标准应用到工作上是很自然的——例如,动态地分配数据结构以避免武断地固定大小限制,并在任何有意义之处处理所有可能的 8 位代码。
+但是将已知好的实践检验过的标准应用到工作上是很自然的——例如,动态地分配数据结构以避免武断地固定大小限制,并在任何有意义之处处理所有可能的 8 位代码。
另外,我们放弃了面向小内存的 Unix 设计,决定不支持 16 位机器(显然 32 位机器在 GNU 系统完成时将成为主流),并且不为了减少内存使用而作任何努力,除非超过了一兆字节。在处理非常大但不是至关紧要的文件的程序中,我们鼓励程序员们将整个文件读入内存,然后扫描其内容而不必顾虑输入输出的问题。
@@ -176,13 +176,13 @@ Unix 以前是(并且现在还是)私有软件,而 GNU 工程的哲学说
### GNU任务清单
-随着 GNU 工程的进行,以及越来越多的系统组件被找到或开发,最终使得整理一份未完成工作的清单变得很有用。我们用它来招募开发者来编写缺失的部分。它被称为 GNU 任务清单。除了尚未完工的 Unix 组件外,我们列出了额外的各种各样的其它有用的软件和文档工程,我们认为,这些是一个真正完整的系统所应当拥有的。
+随着 GNU 工程的进行,以及越来越多的系统组件被找到或开发,最终使得整理一份未完成工作的清单变得很有用。我们用它来招募开发者来编写缺失的部分。它被称为 GNU 任务清单。除了尚未完工的 Unix 组件外,我们列出了额外的各种各样的其它有用的软件和文档项目,我们认为,这些是一个真正完整的系统所应当拥有的。
-如今,[^thegnu-9]留在 GNU 任务清单中的 Unix 组件除了一些无关紧要的之外已经几乎没有了——它们都已经被完成了。但清单中充满了可以被称为“应用程序”的工程。将任何不止能吸引一小部分用户的程序加到操作系统中都是有益的。
+如今[^thegnu-9],留在 GNU 任务清单中的 Unix 组件除了一些无关紧要的之外已经几乎没有了——它们都已经被完成了。但清单中充满了可以被称为“应用程序”的项目。将任何不止能吸引一小部分用户的程序加到操作系统中都是有益的。
就连游戏都在任务清单里——而且从一开始就有。Unix 包含游戏,所以 GNU 自然也该包含。但兼容性对游戏来说不是问题,所以我们没有跟着 Unix 已有的游戏列表走。作为代替,我们列出了用户可能会喜欢的一系列不同种类的游戏。
-### GNU库GPL
+### GNU 库 GPL
GNU C 库使用一种特别的左版,称作 GNU 库 GPL(LGPL)[^thegnu-10],允许将私有软件链接到该库上。为什么需要这样的特例?
@@ -194,17 +194,17 @@ C 库做的是通用的工作:每个私有系统或编译器都附带 C 库。
对于其他的库,策略性的决定需要具体问题具体分析。当一个库做的是一种能帮助编写特定种类程序的特殊工作时,那么将其用 GPL 发行,限制其只能被用于自由软件,是一种帮助其它自由软件开发者的方法。这给了他们面对私有软件的一个优势。
-考虑 GNU Readline,一个被开发用来为 BASH 提供命令行编辑功能的库。Readline 是用普通的 GNU GPL 而不是库 GPL 发行的。这可能确实减少了 Readline 的使用量,但这对我们没有损失。与此同时,至少有一个有用的应用特地为了能够使用 Readline 而变成了自由软件,那是社区真正的收获。
+考虑 GNU Readline,一个被开发用来为 BASH 提供命令行编辑功能的库。Readline 是用普通的 GNU GPL 而不是库 GPL 发行的。这可能确实减少了 Readline 的使用量,但这对我们没有损失。与此同时,至少有一个可用的应用特地为了能够使用 Readline 而变成了自由软件,那是社区真正的收获。
-私有软件有金钱提供的优势;自由软件开发者则要相互取得优势。我希望有朝一日我们能拥有大量受 GPL 保护的、没有可用的私有替代品的库,提供作为新自由软件的砖石的有用模块,并为进一步的自由软件开发添加巨大的优势。
+私有软件有金钱提供的优势;自由软件开发者则要相互取得优势。我希望有朝一日我们能拥有大量受 GPL 保护的、没有可用的私有替代的库,提供作为新自由软件的砖石的有用模块,并为进一步的自由软件开发添加巨大的优势。
### 搔到痒处?
-Eric Raymond[^thegnu-11] 说“每一个优秀的软件作品都从搔到开发者个人的痒处(意为“解决开发者个人的问题”——译者注)开始 [^12]。”也许有时是这样。但不少 GNU 软件的关键部分是为了一个完整的自由操作系统而开发的。它们来自愿景和计划,而不是冲动。
+Eric Raymond[^thegnu-11] 说“每一个优秀的软件作品都从搔到开发者个人的痒处(意为“解决开发者个人的问题”——译者注)开始 [^thegnu-12]。”也许有时是这样。但不少 GNU 软件的关键部分是为了一个完整的自由操作系统而开发的。它们来自愿景和计划,而不是冲动。
例如,我们开发了 GNU C 库因为类 Unix 系统需要一个 C 库,开发了 BASH 因为类 Unix 系统需要一个 shell,还有 GNU tar 因为类 Unix 系统需要一个 tar 程序。我们自己的程序也同样如此—— GNU C 编译器,GNU Emacs,GDB 和 GNU Make。
-有些 GNU 程序是为应对我们的自由的特定威胁而开发的。为此,我们开发了 gzip 来取代因 LZW 专利而从社区流失的 Compress 程序。我们发现有人开发 LessTif,最近更开始了 GNOME 和 Harmony,来解决因某些私有软件库(见下文)所带来的问题。我们正在开发 GNU 隐私卫士来取代流行的非自由加密软件,因为用户不应该在隐私和自由之间作出选择。
+有些 GNU 程序是为应对我们的自由的特定威胁而开发的。为此,我们开发了 gzip 来取代因 LZW 专利而从社区流失的 Compress 程序。我们发现有人开发 LessTif,最近更开始了 GNOME 和 Harmony,来解决因某些私有软件库(见下文)所带来的问题。我们正在开发 GNU 隐私卫士(即 GnuPG 简称 GPG。基于 OpenPGP 协议实现的自由的用于加密、数字签名及产生非对称匙对的软件。——译者注)来取代流行的非自由加密软件,因为用户不应该在隐私和自由之间作出选择。
当然,写这些程序的人们变得对这项工作感兴趣,许多人为了自己的兴趣和需要给它们添加了很多功能。但那并不是这些程序存在的原因。
@@ -253,27 +253,27 @@ GNU Hurd 尚不适合用于生产,我们也不知道它还能不能适合。
有两种方法来应付这个问题。程序员可以采取逆向工程的手段来了解如何支持这些硬件。其他的人则可以选用被自由软件支持的硬件;随着我们的人数增加,规格保密将成为一个自取灭亡的策略。
-逆向工程是件大工作;我们会有程序员具备足够的决心去担负这件工作吗?是的——如果我们已经建立了认为自由软件是个原则问题,而私有驱动程序不可容忍的坚固信念。我们中的大多数人会额外花钱,或甚至额外花时间,从而我们可以使用自由驱动程序吗?是的,如果拥有自由的决心被广泛传播。
+逆向工程是件大工作;我们会有程序员具备足够的决心去担负这件工作吗?是的——如果我们已经建立了认为自由软件是个原则问题,而私有驱动程序不可容忍的坚定信念。我们中的大多数人会额外花钱,或甚至额外花时间,从而我们可以使用自由驱动程序吗?是的,如果拥抱自由的决心被广泛传播。
\[2008 脚注:这个问题同样延伸到 BIOS. 有一个自由的 BIOS,LibreBoot[^thegnu-14](coreboot 的一个发行版);这个问题对计算机变得重要起来,因为 LibreBoot 可以不用非自由的“Blob”就能支持它们。\]
#### 不自由的库
-运行于自由操作系统上的非自由库表现得就像针对自由软件开发者的陷阱一般。库的诱人特性是诱饵;如果你用了这个库,你就掉进了陷阱,因为你的程序无法有用地成为自由操作系统的一部分。(严格来说,我们可以包含你的程序,但没有了该库它就无法*运行*。)更糟糕的是,如果一个使用私有库的程序流行起来,它可引诱其他没有怀疑的程序员们落入陷阱。
+运行于自由操作系统上的非自由库表现得就像针对自由软件开发者的陷阱一般。库的诱人特性是诱饵;如果你用了这个库,你就掉进了陷阱,因为你的程序无法有用地成为自由操作系统的一部分(严格来说,我们可以包含你的程序,但没有了该库它就无法*运行*)。更糟糕的是,如果一个使用私有库的程序流行起来,它可引诱其他没有怀疑的程序员们落入陷阱。
这样的程序的第一个实例是80年代的 Motif 工具箱,尽管那时还没有自由操作系统,但是很显然 Motif 以后会对自由操作系统引发什么问题。GNU 工程通过两种方式回应这个问题:通过请求个别的自由软件工程在支持 Motif 的同时也支持自由的 X 部件工具箱,并请求一些人编写替代 Motif 的自由软件。该工作花费许多年时间;由匈牙利程序员们开发的 LessTif,在1997年才变得足够强而得以支持大多数 Motif 应用程序。
-在1996到1998年间,另一个不自由的 GUI 工具箱库,叫 Qt,被用在 KDE 桌面这一包含大量自由软件的集合中。
+在1996到1998年间,另一个不自由的 GUI 工具箱库,叫 Qt,被用在 KDE 桌面这一包含大量自由软件的集合中。
自由的 GNU/Linux 系统不能使用 KDE,因为我们不能使用那个库。但是一些不严格坚持自由软件的 GNU/Linux 系统商业发行者将 KDE 加入到它们的系统中——而产生了有更强能力,和更少自由的系统。KDE 小组积极地鼓励更多的程序员们使用 Qt,成百万的新“Linux 用户”从来都不知道有这样一个问题的存在。情形相当糟糕。
自由软件社区以两种方法应对这个问题: GNOME 和 Harmony。
-GNOME,GNU 网络对象模型环境,是 GNU 的桌面工程。从1997年开始,由 Miguel de Icaza 在 Red Hat Software 的支持下开发,GNOME 开始提供类似的桌面工具,但排它地只使用自由软件。它也有技术上的优势,如支持多种语言,而不仅仅是 C++。但是它的主要目的是自由:不需要使用任何非自由软件。
+GNOME,GNU 网络对象模型环境(现在已经不再用这个缩写——译者注),是 GNU 的桌面项目。从1997年开始,由 Miguel de Icaza 在红帽软件的支持下开发,GNOME 开始提供类似的桌面工具,但排它地只使用自由软件。它也有技术上的优势,如支持多种语言,而不仅仅是 C++。但是它的主要目的是自由:不需要使用任何非自由软件。
Harmony 是一个兼容的替代库,设计为使得无需 Qt 运行 KDE 软件成为可能。
-在1998年11月,Qt 的开发者声名改动许可证,当其实施后,应该会使得 Qt 成为自由软件。虽然没办法确信,但是我想这应该部分归功于社区对 Qt 是非自由软件时所造成的问题的坚定回应。(新的许可证既不方便也不公正,所以仍旧值得去避免使用 Qt 。)
+在1998年11月,Qt 的开发者声名改动许可证,当其实施后,应该会使得 Qt 成为自由软件。虽然没办法确信,但是我想这应该部分归功于社区对 Qt 是非自由软件时所造成的问题的坚定回应(新的许可证既不方便也不公正,所以仍旧值得去避免使用 Qt)。
\[后记:2000年9月, Qt 按 GNU GPL 发行,实际解决了这个问题。\]
@@ -291,21 +291,21 @@ Harmony 是一个兼容的替代库,设计为使得无需 Qt 运行 KDE 软件
我们自由操作系统的最大不足不是在软件中——而是缺乏可以包含在我们系统中的优秀自由手册。文档资料是任何软件包的要害部分;当一个重要的自由软件包没有与优秀的自由手册一起出现,那就是一个重大缺陷。今天我们有许多这样的缺陷。
-自由文档,像自由软件一样,是自由问题,不是价格问题。自由手册的标准几乎与自由软件完全相同:它是为了给予所有用户某种自由。必须允许重新发行(包括商业销售),不论是在线还是书面形式,因而手册能够伴随每个程序的每个副本。
+自由文档,像自由软件一样,是自由问题,不是价格问题。自由手册的标准几乎与自由软件完全相同:它是为了给予所有用户某种自由。必须允许重新发布(包括商业销售),不论是在线还是书面形式,因而手册能够伴随每个程序的每个副本。
改动的许可同样至关重要。作为一个普遍规律,我不相信人们有必要拥有修改所有种类文章和书籍的许可。例如,我不认为你或我应该被迫给予修改像本文这样描述我们行为和我们观点的文章的许可权。
-但是有一个特殊的原因说明为什么修改自由软件文档资料的自由是要紧的。当人们行使他们修改软件的权利,并且增加或改变其功能时,如果他们是尽职的,则他们也将修改文档资料——因而他们能随着修改过的程序一起提供正确和可用的文档资料。一个不允许程序员们尽职并完成该工作的手册不符合我们社区的要求。
+但是有一个特殊的原因说明为什么修改自由软件文档资料的自由是要紧的。当人们行使他们修改软件的权利,并且增加或改变其功能时,如果他们是尽职的,则他们也会同时修改文档和资料——因而他们能随着修改过的程序一起提供正确和可用的文档资料。一个不允许程序员们尽职并完成该工作的手册不符合我们社区的要求。
关于修改应该如何完成的一些限制并不会造成问题。例如,保持原作者的版权声明,发行条款,或作者列表的要求是正当的。要求修改后的版本包括它们是修改版本的声明也是没有问题的,即使有整个章节不能删除或修改,只要这些章节处理的是非技术主题。这些类型的限制不是问题,因为它们不阻止尽职程序员修改手册以适应修改过的程序。换种说法,它们不妨碍自由软件社区完全利用该手册。
-然而,必须能够修改手册中的所有*技术性*内容,并将结果以所有常规介质,通过所有常规渠道发行;否则,这些限制将对社区造成阻碍,手册将变得不自由,而我们需要另一手册。
+然而,必须能够修改手册中的所有*技术性*内容,并将结果以所有常规介质,通过所有常规渠道分发;否则,这些限制将对社区造成阻碍,手册将变得不自由,而我们需要另一手册。
自由软件开发者们会有觉悟和决心去生产全系列的自由手册吗?再说一次,我们的未来取决于哲学。
### 我们必须谈论自由
-估计当今有数千万的用户使用诸如 Debian GNU/Linux 和 Red Hat “Linux” 这样的 GNU/Linux 系统。自由软件已经发展到了这样实用的优势,使得用户纯粹为了实用原因而聚集到它身边。
+估计当今有数千万的用户使用诸如 Debian GNU/Linux 和红帽“Linux”这样的 GNU/Linux 系统。自由软件已经发展到了这样实用的优势,使得用户纯粹为了实用原因而聚集到它身边。
这种现象的好结果是明显的:更多人有兴趣开发自由软件,更多用户参与到自由软件产业,以及更能鼓励公司开发商业自由软件而不是私有软件产品。
@@ -319,11 +319,11 @@ Harmony 是一个兼容的替代库,设计为使得无需 Qt 运行 KDE 软件
一些喜欢该术语的人想要避免“自由”与“免费”的混淆——这个目标是正当的。其他人却打算将激励了自由软件运动和 GNU 工程的原则精神抛到一边,反而迎合行政和商业用户,而这些用户中的许多人持有一种将利润置于自由,社区和原则之上的意识形态。因而,“开源”的花言巧语集中在制作高质量,强有力软件的潜能上,但是避开自由,社区和原则的思想。
-“Linux”杂志是一个清晰的例子——其中充满了利用 GNU/Linux 运行的私有软件的广告。当下一个 Motif 或 Qt 出现时,这些杂志将警告程序员们远离它还是为它登载广告呢?
+“Linux”杂志是一个清晰的例子——其中充满了利用 GNU/Linux 运行私有软件的广告。当下一个 Motif 或 Qt 出现时,这些杂志将警告程序员们远离它还是为它登载广告呢?
-商业支持能以许多方式为社区作贡献;其它种类的支持也都一样,它是有益的。但是为了赢得他们的支持而少说自由和原则可能损失惨重;它使得前述“推广和公民意识教育”之间的失衡变得愈加糟糕。
+商业支持能以许多方式为社区作贡献;其它种类的支持也都一样,它是有益的。但是为了赢得他们的支持而减少对自由和原则宣讲可能损失惨重;它使得前述“软件推广和公民意识教育”之间的失衡变得愈加糟糕。
-“自由软件”和“开放源码”或多或少地描述了同一个软件的类型,但对软件本身和价值观的描述是不同的。GNU 工程继续使用“自由软件”这个术语,来表达自由,而不仅仅是技术,是重要的思想。
+“自由软件”和“开放源码”或多或少地描述了同一个软件的类型,但对软件本身和价值观的描述是不同的。GNU 工程继续使用“自由软件”这个术语,来表达自由是重要的思想,而不仅仅是技术。
### 尝试!
@@ -347,9 +347,9 @@ Harmony 是一个兼容的替代库,设计为使得无需 Qt 运行 KDE 软件
[^thegnu-7]: 于我们的在线商店中可见,位于 <http://shop.fsf.org>。
-[^thegnu-8]: “Bourne Again Shell” 是对 “Bourne (与表示出生的born谐音——译者注)Shell”,Unix 上的一般 shell 玩的文字游戏。
+[^thegnu-8]: “Bourne Again Shell” 是对 “Bourne Shell”——Unix 上普遍使用的 shell 玩的文字游戏。(Bourne 与表示出生的 born 谐音——译者注)
-[^thegnu-9]: 写于1998年。2009年我们不再维护长任务列表。社区的自由软件开发得很快,我们没法全部追踪到。取而代之,我们有一个高优先级工程的列表——一个更短的列表,列举了我们十分想要鼓励人们去写的项目。
+[^thegnu-9]: 写于1998年。2009年我们不再维护长任务列表。社区的自由软件开发得很快,我们没法全部追踪到。取而代之,我们有一个高优先级项目的列表——一个更短的列表,列举了我们十分想要鼓励人们去写的项目。
[^thegnu-10]: 这个许可证现在叫 GNU Lesser General Public License(GNU宽通用公共许可证),以免给出所有库都该使用它的印象。更多信息见 “Why You Shouldn’t Use the Lesser GPL for Your Next Library” 于 <http://www.gnu.org/philosophy/why-not-lgpl.html>。