The GNU Project

by Richard Stallman

originally published in the book "Open Sources"

 [image of What's GNU] [ Czech | English | French | Indonesian | Italian | Korean | Russian | Spanish ]

The first software-sharing community

第一个软件共享社团

When I started working at the MIT Artificial Intelligence Lab in 1971, I became part of a software-sharing community that had existed for many years. Sharing of software was not limited to our particular community; it is as old as computers, just as sharing of recipes is as old as cooking. But we did it more than most.

当我于1971年开始为麻省理工学院(MIT)人工智能实验室工作时,我成为那时 已经存在了一些年的一个软件共享社团的成员。软件的共享其实并不局限于我们 的特定社团;它与计算机是同龄的,如同菜方的共享是与烹调同样悠久。但是 我们比大多数人做的更多。

The AI Lab used a timesharing operating system called ITS (the Incompatible Timesharing System) that the lab's staff hackers (1) had designed and written in assembler language for the Digital PDP-10, one of the large computers of the era. As a member of this community, an AI lab staff system hacker, my job was to improve this system.

人工智能实验室使用一个名叫ITS(不兼容分时系统)的分时操作系统,它是由 实验室员工电脑黑客们为当年的一种大计算机PDP-10设计并用汇编语言编写的。 作为社团的一个成员,人工智能实验室的一个员工电脑系统黑客,我的工作是来 改进这个系统。

We did not call our software "free software", because that term did not yet exist; but that is what it was. Whenever people from another university or a company wanted to port and use a program, we gladly let them. If you saw someone using an unfamiliar and interesting program, you could always ask to see the source code, so that you could read it, change it, or cannibalize parts of it to make a new program.

我们没有称我们的软件为“自由软件”,因为这个术语当时还不存在;但我们 的软件的确是“自由软件”。

(1) The use of "hacker" to mean "security breaker" is a confusion on the part of the mass media. We hackers refuse to recognize that meaning, and continue using the word to mean, "Someone who loves to program and enjoys being clever about it."

一部分大众传播媒体混淆地将“黑客”一词用来表示“安全违犯者”。我们作为黑 客拒绝认可这个含义,并继续用这个词表示“那些喜爱编程并享受聪明于编程 的乐趣的人。”

The collapse of the community

自由软件社团的崩溃

The situation changed drastically in the early 1980s when Digital discontinued the PDP-10 series. Its architecture, elegant and powerful in the 60s, could not extend naturally to the larger address spaces that were becoming feasible in the 80s. This meant that nearly all of the programs composing ITS were obsolete.

当二十世纪八十年代处,Digital公司不再继续其PDP-10系列时,情形彻底改变了。

The AI lab hacker community had already collapsed, not long before. In 1981, the spin-off company Symbolics had hired away nearly all of the hackers from the AI lab, and the depopulated community was unable to maintain itself. (The book Hackers, by Steve Levy, describes these events, as well as giving a clear picture of this community in its prime.) When the AI lab bought a new PDP-10 in 1982, its administrators decided to use Digital's non-free timesharing system instead of ITS.

人工智能实验室黑客社团在不久以前已经崩溃了。1981年,抽资脱离的Symbolics 公司已经从人工智能实验室雇佣走了几乎所有的黑客,人口减少的社团不能维持 自身。(Steve Levy所著的<<黑客>>叙述了这些事件并给出了该社团在鼎盛时的 美景。)当人工智能实验室于1982年购买一台新的PDP-10时,其管理层决定使用 Digital的非免费分时系统而不是ITS。

The modern computers of the era, such as the VAX or the 68020, had their own operating systems, but none of them were free software: you had to sign a nondisclosure agreement even to get an executable copy.

VAX或68020等当今的现代计算机,拥有其自己的操作系统,但它们均不是自由软件: 你不得不签署一个不泄露协议即使只是获得一个可执行代码拷贝。

This meant that the first step in using a computer was to promise not to help your neighbor. A cooperating community was forbidden. The rule made by the owners of proprietary software was, "If you share with your neighbor, you are a pirate. If you want any changes, beg us to make them."

这意味着使用计算机的第一步是承诺不去帮助你的邻居。一个协同运转的社团被 禁止了。私有软件拥有者制定的规则是,“如果你帮助你的邻居,你就是一个侵犯 专利权者。如果你需要任何更改,求我们来做。”

The idea that the proprietary software social system--the system that says you are not allowed to share or change software--is antisocial, that it is unethical, that it is simply wrong, may come as a surprise to some readers. But what else could we say about a system based on dividing the public and keeping users helpless? Readers who find the idea surprising may have taken proprietary social system as given, or judged it on the terms suggested by proprietary software businesses. Software publishers have worked long and hard to convince people that there is only one way to look at the issue.

认为私有软件社会体制--不允许你去共享或改变软件--是反社会的,缺乏 职业道德,并完全错误的思想,也许对一些读者来说会产生惊讶。可是我们对于 一个建立在分割公众并让使用者无助之上的体制又能够说些什么呢?对上述思想 感到惊讶的读者或许将私有社会体制当作理所当然的,或着使用私有软件行业暗 示的条款作判断。软件出版者长时间辛苦地努力去使人们信服,只有一种方式来 看待这个问题。

When software publishers talk about "enforcing" their "rights" or "stopping piracy", what they actually *say* is secondary. The real message of these statements is in the unstated assumptions they take for granted; the public is supposed to accept them uncritically. So let's examine them.

当软件出版者谈到“坚持”他们的“权利”或“阻止侵犯版权”时,他们实际所“说”的 是次要的。这些声明真正的讯息是他们以未申明的假定方式将这当成理所当然; 公众假设会非批评地接受这些。还是让我们来仔细检查这些吧。

One assumption is that software companies have an unquestionable natural right to own software and thus have power over all its users. (If this were a natural right, then no matter how much harm it does to the public, we could not object.) Interestingly, the US Constitution and legal tradition reject this view; copyright is not a natural right, but an artificial government-imposed monopoly that limits the users' natural right to copy.

一个假设就是,软件公司有毫无疑问的自然权利去拥有软件并因而有在其所有用户 之上的权利。(如果这是一个自然权利,那么无论它对公众多么有害,我们也不能 反对。)有趣的是,美国宪法和法律惯例否决这种观点;版权不是一个自然权利, 而是一个人为的,政府强加的限制用户拷贝的自然权利的垄断。

Another unstated assumption is that the only important thing about software is what jobs it allows you to do--that we computer users should not care what kind of society we are allowed to have.

另一个未申明的假设是,关于软件的唯一重要事情它允许你作什么工作--我们计算机 用户不应该在意我们被承认拥有哪种社会。

A third assumption is that we would have no usable software (or, would never have a program to do this or that particular job) if we did not offer a company power over the users of the program. This assumption may have seemed plausible, before the free software movement demonstrated that we can make plenty of useful software without putting chains on it.

第三个假设是,如果我们不提供软件公司在用户之上的程序的权利,我们将没有可以 使用的软件(或,将决不会有一个程序来做这个或那个特定的工作)。这个假设在自 由软件运动证明我们能够不必被其束缚而制造丰富的有用软件之前,也许看起来象是 似是而非。

If we decline to accept these assumptions, and judge these issues based on ordinary common-sense morality while placing the users first, we arrive at very different conclusions. Computer users should be free to modify programs to fit their needs, and free to share software, because helping other people is the basis of society.

如果我们拒绝接受这些假设,并基于普通的通常意义下的道德来判断这些问题, 把用户放在首位,我们得到了非常不同的结论。计算机用户应该自由地去修改 程序以适应他们的需求,并自由地共享软件,因为帮助别人是社会的基础。

There is no room here for an extensive statement of the reasoning behind this conclusion, so I refer the reader to the web page, http://www.gnu.org/philosophy/why-free.html.

这儿没有该结论背后广泛推理的空间,因此我指点读者去下边网页,

A stark moral choice.

一个赤裸的道德选择。

With my community gone, to continue as before was impossible. Instead, I faced a stark moral choice.

我的社团没有了,不可能像以前那样继续。作为替代,我面对一个赤裸的道德 抉择。

The easy choice was to join the proprietary software world, signing nondisclosure agreements and promising not to help my fellow hacker. Most likely I would also be developing software that was released under nondisclosure agreements, thus adding to the pressure on other people to betray their fellows too.

容易的选择是加入私有软件世界,签署保密协议并承诺不去帮助我的黑客伙伴。 极有可能我也去开发在保密协议下发布的软件,因而对其他人增加压力迫使他们 也去背叛他们的伙伴。

I could have made money this way, and perhaps amused myself writing code. But I knew that at the end of my career, I would look back on years of building walls to divide people, and feel I had spent my life making the world a worse place.

我可能已经这样挣了钱,并或许自己开心地写代码。但是我知道在我的事业终点, 我将回望筑墙隔开人们的这些年,会感到我花了我的一生使得这个世界变成更坏 的地方。

I had already experienced being on the receiving end of a nondisclosure agreement, when someone refused to give me and the MIT AI lab the source code for the control program for our printer. (The lack of certain features in this program made use of the printer extremely frustrating.) So I could not tell myself that nondisclosure agreements were innocent. I was very angry when he refused to share with us; I could not turn around and do the same thing to everyone else.

当有人拒绝给我和MIT人工智能实验室有关我们打印机控制程序源代码时,我已 经经历了处在保密协议接受端。(该程序某些特色的缺少适得打印机的使用极 其困难。)因此我不能告诉我自己保密协议是清白的。当他们拒绝让我们分享其 代码时,我非常生气;我不能够转过身来对每个人做这同样的事情。

Another choice, straightforward but unpleasant, was to leave the computer field. That way my skills would not be misused, but they would still be wasted. I would not be culpable for dividing and restricting computer users, but it would happen nonetheless.

另一个选择,直截了当但使人不愉快,是离开计算机领域。那样的话,我的技术 将不会被滥用,但会被浪费。我将不会因分开和限制计算机用户而被指责,虽然 如此,这种情形会继续发生。

So I looked for a way that a programmer could do something for the good. I asked myself, was there a program or programs that I could write, so as to make a community possible once again?

所以我找寻一个程序员可以做一些好事的方法。我问我自己,有没有一个或一些 程序我可以写,进而有可能再次形成一个社团。

The answer was clear: what was needed first was an operating system. That is the crucial software for starting to use a computer. With an operating system, you can do many things; without one, you cannot run the computer at all. With a free operating system, we could again have a community of cooperating hackers--and invite anyone to join. And anyone would be able to use a computer without starting out by conspiring to deprive his or her friends.

答案是清晰的:我们首先需要的是一个操作系统。它是开始使用一台计算机的 至关重要的软件。有了操作系统,你可以做很多事情;没有操作系统,你完全不 能运行计算机。有了自由操作系统,我们能够再次拥有一个共同合作的黑客社团 --并邀请任何人参加。任何人都能够使用计算机而不必从图谋丧失他或她的朋友 开始。

As an operating system developer, I had the right skills for this job. So even though I could not take success for granted, I realized that I was elected to do the job. I chose to make the system compatible with Unix so that it would be portable, and so that Unix users could easily switch to it. The name GNU was chosen following a hacker tradition, as a recursive acronym for "GNU's Not Unix."

作为一个操作系统开发者,我有做这个工作的恰当技能。所以即使我不能把成功 当作必然,我认识到我被选做这件事。我选择将该系统做成与Unix兼容因而它可 被移植,并使Unix拥护容易地转换到它。名字GNU被依照黑客传统选中,作为一个 递归的"GNU's Not Unix."首字母缩写。

An operating system does not mean just a kernel, barely enough to run other programs. In the 1970s, every operating system worthy of the name included command processors, assemblers, compilers, interpreters, debuggers, text editors, mailers, and much more. ITS had them, Multics had them, VMS had them, and Unix had them. The GNU operating system would include them too.

一个操作系统指的不仅仅是一个内核,刚刚能运行其他程序。在二十世纪七十年代, 每个可以称作操作系统的系统包括命令处理器,汇编程序,编译器,解释程序, 调试器,文本编辑器,邮件程序,以及其它许多程序。ITS,Multics, VMS和Unix 都有这些。GNU操作系统也将包括它们。

Later I heard these words, attributed to Hillel (1):

后来我听到希勒尔的这些话(1):

If I am not for myself, who will be for me?
If I am only for myself, what am I?
If not now, when?
如果我不为我自己,谁将为了我?
如果我只为我自己,我是什么?
如果不是现在,什么时候?

The decision to start the GNU project was based on a similar spirit.

决定开始GNU计划正是基于一个类似的精神。

(1) As an Atheist, I don't follow any religious leaders, but I sometimes find I admire something one of them has said.

(1)作为一个无神论者,我不跟随任何一个宗教领袖,但我有时候发现我钦佩 他们中的一个说过的话。

Free as in freedom

如同自由自主般地自由

The term "free software" is sometimes misunderstood--it has nothing to do with price. It is about freedom. Here, therefore, is the definition of free software: a program is free software, for you, a particular user, if:

”自由软件“术语有时被错误地理解--它与价格无关。自由软件是关于自由。因此这里 是自由软件的定义:对你,一个特定的用户,一个程序是自由软件,当:

Since "free" refers to freedom, not to price, there is no contradiction between selling copies and free software. In fact, the freedom to sell copies is crucial: collections of free software sold on CD-ROMs are important for the community, and selling them is an important way to raise funds for free software development. Therefore, a program which people are not free to include on these collections is not free software.

由于“自由的”涉及自由,未涉及价格,卖拷贝和自由软件之间没有矛盾。事实上, 卖拷贝的自由是至关重要的:收藏CD-ROMs上的自由软件对社团是重要的,同时, 出售它们是为自由软件发展筹集资金的重要方法。

Because of the ambiguity of "free", people have long looked for alternatives, but no one has found a suitable alternative. The English Language has more words and nuances than any other, but it lacks a simple, unambiguous, word that means "free," as in freedom--"unfettered," being the word that comes closest in meaning. Such alternatives as "liberated", "freedom" and "open" have either the wrong meaning or some other disadvantage.

由于“自由”含糊性,人们用了很长时间找寻其它选择,但是没有人找到一个合适 的选择。英语比其它语言有更多的单词和细微差别,但它缺少一个简单的,明确 的,单词表示“自由”,就象自由自主--“无拘无束的,”就是一个具有最靠近含义的单 词。诸如“解放的”,“自由自主”和“开放”的可选事物,都要么有错误的含义或一些其 它缺点。

GNU software and the GNU system

GNU软件和GNU系统

Developing a whole system is a very large project. To bring it into reach, I decided to adapt and use existing pieces of free software wherever that was possible. For example, I decided at the very beginning to use TeX as the principal text formatter; a few years later, I decided to use the X Window System rather than writing another window system for GNU.

开发一个完整系统是一个很大的计划。为了让其成为实际,我决定只要有可能就 去改编和使用现有的自由软件。例如,在最初我决定用TeX作为主要的文本格式 化程序;一些年后,我决定用X Window系统而不是为GNU写另一个视窗系统。

Because of this decision, the GNU system is not the same as the collection of all GNU software. The GNU system includes programs that are not GNU software, programs that were developed by other people and projects for their own purposes, but which we can use because they are free software.

由于这个决定,GNU系统与所有GNU软件的堆积不同。GNU系统包括非GNU软件 程序,这些程序是由其他人和项目为了他们自己的目的开发的。我们能用它 们因为它们是自由软件。

Commencing the project

着手该计划

In January 1984 I quit my job at MIT and began writing GNU software. Leaving MIT was necessary so that MIT would not be able to interfere with distributing GNU as free software. If I had remained on the staff, MIT could have claimed to own the work, and could have imposed their own distribution terms, or even turned the work into a proprietary software package. I had no intention of doing a large amount of work only to see it become useless for its intended purpose: creating a new software-sharing community.

我于1984年1月从MIT辞去我的工作并开始编写GNU软件。离开MIT是必要的,这样 可以使MIT无法干涉将GNU作为自由软件发布。如果我还在职,MIT也许已经要求 拥有这些作品,并可能强加他们自己的发行条款,或将它们改成私有软件包。我 没有意图做大量工作而仅仅看到它变得没有用,因为做这件事情的既成目的是: 创造一个新的共享软件社团。

However, Professor Winston, then the head of the MIT AI Lab, kindly invited me to keep using the lab's facilities.

尽管如此,Winston教授,后来的MIT人工智能实验室领导,友善地邀请我继续 使用实验室的设施。

The first steps

初期的脚步

Shortly before beginning the GNU project, I heard about the Free University Compiler Kit, also known as VUCK. (The Dutch word for "free" is written with a V.) This was a compiler designed to handle multiple languages, including C and Pascal, and to support multiple target machines. I wrote to its author asking if GNU could use it.

开始GNU计划的不久之前,我听说了叫做VUCK的自由大学编译工具箱。(荷兰单词 “自由”和一个字母V.连写)这是一个设计来处理多种语言的编译器,包括C和 Pascal,并支持多重目标机器。我曾写信给其作者询问GNU是否可以使用它。

He responded derisively, stating that the university was free but the compiler was not. I therefore decided that my first program for the GNU project would be a multi-language, multi-platform compiler.

他嘲弄地回答了,声明该大学是免费的而该编译器不是。因此我决定为GNU计划 的我的第一个程序将是一个多种语言,多种平台的编译器。

Hoping to avoid the need to write the whole compiler myself, I obtained the source code for the Pastel compiler, which was a multi-platform compiler developed at Lawrence Livermore Lab. It supported, and was written in, an extended version of Pascal, designed to be a system-programming language. I added a C front end, and began porting it to the Motorola 68000 computer. But I had to give that up when I discovered that the compiler needed many megabytes of stack space, and the available 68000 Unix system would only allow 64k.

希望避免自己编写整个编译器的必要,我得到了在Lawrence Livermore实验室开发 的多平台编译程序Pastel的源代码。它支持并且用一种设计成为一个系统编程语言 的扩展Pascal编写。我加入一个C的前端,并开始将它移植到Motorola 68000计算机。 但是当我发现该编译器需要数兆字节的堆栈空间时,我不得不放弃。可用的68000 Unix系统仅仅允许64k字节。

I then realized that the Pastel compiler functioned by parsing the entire input file into a syntax tree, converting the whole syntax tree into a chain of "instructions", and then generating the whole output file, without ever freeing any storage. At this point, I concluded I would have to write a new compiler from scratch. That new compiler is now known as GCC; none of the Pastel compiler is used in it, but I managed to adapt and use the C front end that I had written. But that was some years later; first, I worked on GNU Emacs.

我随后了解到Pastel编译器的运行是,分析整个输入文件成为一个语法树,转换 整个语法树成一个“指令”链,然后生成完整输出文件,而不曾释放任何存储空间。 从这一点,我决定我将不得不从头开始写一个新的编译器。那个新的编译器就是 现在所知的GCC;其中没有一点Pastel编译器的内容,但是我设法改编和使用我 已写好的C前端。

GNU Emacs

GNU Emacs

I began work on GNU Emacs in September 1984, and in early 1985 it was beginning to be usable. This enabled me to begin using Unix systems to do editing; having no interest in learning to use vi or ed, I had done my editing on other kinds of machines until then.

我于1984年9月开始着手GNU Emacs,它于1985年初开始有用了。这使得我开始 使用Unix系统作编辑;因为没有兴趣学习使用vi或ed,直到那时我是在其它类型 机器上做我的编辑的。

At this point, people began wanting to use GNU Emacs, which raised the question of how to distribute it. Of course, I put it on the anonymous ftp server on the MIT computer that I used. (This computer, prep.ai.mit.edu, thus became the principal GNU ftp distribution site; when it was decommissioned a few years later, we transferred the name to our new ftp server.) But at that time, many of the interested people were not on the Internet and could not get a copy by ftp. So the question was, what would I say to them?

这时候,人们开始想用GNU Emacs,这提出了如何发行它的问题。当然,我将它放 在我用的MIT机器的匿名FTP服务器上。(这台计算机,prep.ai.mit.edu,因此成 为主要的GNU FTP发布站点;当它一些年后退役时,我们将其名字转到我们新的FTP 服务器。)但是在那时,一些感兴趣的人不在Internet上,不能通过FTP获得拷贝。 所以问题是,我将对他们说什么?

I could have said, "Find a friend who is on the net and who will make a copy for you." Or I could have done what I did with the original PDP-10 Emacs: tell them, "Mail me a tape and a SASE, and I will mail it back with Emacs on it." But I had no job, and I was looking for ways to make money from free software. So I announced that I would mail a tape to whoever wanted one, for a fee of $150. In this way, I started a free software distribution business, the precursor of the companies that today distribute entire Linux-based GNU systems.

我兴许会说,“找一个上网的朋友做一个拷贝给你。”或者我兴许会象我为原来的 PDP-10 Emacs所做的:告诉他们,“邮寄给我一盘磁带和一个贴足邮资的回信封, 我将Emacs放在磁带上寄回去。”但是我没有工作,我正在寻找从自由软件挣钱的 方法。所以我宣布我会邮寄一盘磁带给任何想要的人,收取$150。用这种方法, 我开始自由软件发行的工作,我是现今发行整个基于Linux GNU系统的公司的先驱。

Is a program free for every user?

是一个对任何人都自由的程序?

If a program is free software when it leaves the hands of its author, this does not necessarily mean it will be free software for everyone who has a copy of it. For example, public domain software (software that is not copyrighted) is free software; but anyone can make a proprietary modified version of it. Likewise, many free programs are copyrighted but distributed under simple permissive licenses which allow proprietary modified versions.

如果一个程序在它离开其作者双手时是自由软件,这并非必要地意味着它将是 自由的对于每一个拥有其一份拷贝的人。例如,公众领域软件(没有被版权保 护的软件)是自由软件;但是任何人可以制作一个其修改过的私有版本。同样 地,一些自由程序被版权保护但是基于简单许可证发行,允许私有的修改版本。

The paradigmatic example of this problem is the X Window System. Developed at MIT, and released as free software with a permissive license, it was soon adopted by various computer companies. They added X to their proprietary Unix systems, in binary form only, and covered by the same nondisclosure agreement. These copies of X were no more free software than Unix was.

这个问题的典型例证是X Window系统。由MIT开发,并用一个许可证方式作为 自由软件发表,它很快即被不同的计算机公司所采用。他们将X以仅二进制形式 加到他们的私有Unix系统中,并被同样的保密协议控制着。这些X的拷贝一点也 不比Unix更加是自由软件。

The developers of the X Window System did not consider this a problem--they expected and intended this to happen. Their goal was not freedom, just "success", defined as "having many users." They did not care whether these users had freedom, only that they should be numerous.

X Window系统的开发人员以前不认为这是一个问题--他们期望并有意让其发生。 他们的目标不是自由,仅仅是“成功”,定义为“有许多用户。”他们不在意这些 用户是否拥有自由,仅仅希望他们人数众多。

This lead to a paradoxical situation where two different ways of counting the amount of freedom gave different answers to the question, "Is this program free?" If you judged based on the freedom provided by the distribution terms of the MIT release, you would say that X was free software. But if you measured the freedom of the average user of X, you would have to say it was proprietary software. Most X users were running the proprietary versions that came with Unix systems, not the free version.

这导致一个荒谬的情形,两种不同的自由量计算方法对同一个问题“这是自由程序 吗?”给出不同的回答。如果你基于MIT释放证书的发行条款给出的自由作判断,你 就会说X是自由软件。但是如果你以X一般用户的自由来衡量,你就不得不说它是私 有软件。大多数X用户当时正在使用随Unix系统而来的私有版本,不时自由版本。

Copyleft and the GNU GPL

Copyleft和GNU GPL

The goal of GNU was to give users freedom, not just to be popular. So we needed to use distribution terms that would prevent GNU software from being turned into proprietary software. The method we use is called "copyleft".(1)

GNU的目标是给用户自由,而不是仅仅成为流行。所以我们需要使用将会阻止GNU 软件被转变成私有软件的发行条款。我们所用的方法被称之为“copyleft”。(1)

Copyleft uses law, but flips it over to serve the opposite of its usual purpose: instead of a means of privatizing software, it becomes a means of keeping software free.

Copyleft使用著作权法,但是翻动它去服务于其通常意图的反面:它成为一种保持 软件自由的手段,而不是私有化软件的方法。

The central idea of copyleft is that we give everyone permission to run the program, copy the program, modify the program, and distribute modified versions--but not permission to add restrictions of their own. Thus, the crucial freedoms that define "free software" are guaranteed to everyone who has a copy; they become inalienable rights.

Copyleft的中心思想是我们给每个人运行该程序,拷贝程序,修改程序和发布其 修改版本的许可--但是没有增加他们自己的限制的许可。因此,定义“自由软件”的 至关重要的自由是保证每个人拥有一个拷贝;这些成为不能剥夺的权利。

For an effective copyleft, modified versions must also be free. This ensures that work based on ours becomes available to our community if it is published. When programmers who have jobs as programmers volunteer to improve GNU software, it is copyleft that prevents their employers from saying, "You can't share those changes, because we are going to use them to make our proprietary version of the program."

对于一个有效的copyleft,修改后的版本必须也是自由的。这确保了建立在我们 工作基础之上的作品,只要其发布,就成为对我们社团可利用的。当作程序员工 作的程序员们志愿改善GNU软件时,copyleft防止他们的雇主们说,“你不能共享 这些修改,因为我们正准备使用它们来制作该程序我们的私有版本。”

The requirement that changes must be free is essential if we want to ensure freedom for every user of the program. The companies that privatized the X Window System usually made some changes to port it to their systems and hardware. These changes were small compared with the great extent of X, but they were not trivial. If making changes were an excuse to deny the users freedom, it would be easy for anyone to take advantage of the excuse.

如果我们要确保程序每个用户的自由,修改必须是自由的这个需求是本质。那 些私有化X Window系统的公司通常作了一些修改以将其移植到它们的系统和硬件。 这些改动相比X的大规模而言是小的,但是它们并非微不足道。如果进行修改是 拒绝用户自由的一个借口,任何人来利用该借口将是非常容易的。

A related issue concerns combining a free program with non-free code. Such a combination would inevitably be non-free; whichever freedoms are lacking for the non-free part would be lacking for the whole as well. To permit such combinations would open a hole big enough to sink a ship. Therefore, a crucial requirement for copyleft is to plug this hole: anything added to or combined with a copylefted program must be such that the larger combined version is also free and copylefted.

一个相关问题涉及到结合一个自由程序与非自由代码。如此的结合将不可避免地 是非自由的;非自由部分的任何自由缺失将也是整个的缺乏。允许这样的组合将 打开一个大得足够沉掉一艘船的洞。因此,copyleft的一个至关紧要的需求是堵 上这个洞:任何加到或与一个被copyleft的程序的代码必须也是copyleft的,从 而使更大的组合版本也是自由的和copyleft的。

The specific implementation of copyleft that we use for most GNU software is the GNU General Public License, or GNU GPL for short. We have other kinds of copyleft that are used in specific circumstances. GNU manuals are copylefted also, but use a much simpler kind of copyleft, because the complexity of the GNU GPL is not necessary for manuals.

我们为大多数GNU软件使用的copyleft的明确实现是GNU普通公共版权,或简称 GNU GPL。我们在特定场合下有其它种类copyleft可以使用。GNU手册也是copyleft 的,但是一个非常简化的copyleft类型,因为GNU GPL的复杂性对其手册是不需要 的。

(1) In 1984 or 1985, Don Hopkins (a very imaginative fellow) mailed me a letter. On the envelope he had written several amusing sayings, including this one: "Copyleft--all rights reversed." I used the word "copyleft" to name the distribution concept I was developing at the time.

在1984或1985年,Don Hopkins(一个非常有想象力的朋友)寄给我一封信。在 信封上他写了一些有趣的话,包括这个:“Copyleft--所有权利颠倒的。”我用单词 “copyleft”来命名我当时正在发展的发布概念。

The Free Software Foundation

自由软件基金会

As interest in using Emacs was growing, other people became involved in the GNU project, and we decided that it was time to seek funding once again. So in 1985 we created the Free Software Foundation, a tax-exempt charity for free software development. The FSF also took over the Emacs tape distribution business; later it extended this by adding other free software (both GNU and non-GNU) to the tape, and by selling free manuals as well.

随着使用Emacs兴趣的增长,其他人加入了GNU计划,我们决定这是再次寻求资金 的时候了。在1985年,我们创立了自由软件基金会,一个免税的为自由软件发展 的慈善团体。FSF也接手了Emacs磁带发行工作;后来它通过往磁带上增加其它自 由软件(既有GNU也有非GNU),也通过出售自由手册扩展了该业务。

The FSF accepts donations, but most of its income has always come from sales--of copies of free software, and of other related services. Today it sells CD-ROMs of source code, CD-ROMs with binaries, nicely printed manuals (all with freedom to redistribute and modify), and Deluxe Distributions (where we build the whole collection of software for your choice of platform).

FSF接受捐款,但是其大部分收入常常来自销售--自由软件的拷贝,其它相关的服 务。今天它卖源代码CD-ROMs,二进制代码CD-ROMs,精细打印的手册(均有再发 布和修改的自由),以及豪华发行(这儿我们为你选择的平台制作完整的软件 收藏)。

Free Software Foundation employees have written and maintained a number of GNU software packages. Two notable ones are the C library and the shell. The GNU C library is what every program running on a GNU/Linux system uses to communicate with Linux. It was developed by a member of the Free Software Foundation staff, Roland McGrath. The shell used on most GNU/Linux systems is BASH, the Bourne Again Shell(1), which was developed by FSF employee Brian Fox.

自由软件基金会员工们已经编写和维护了一系列的GNU软件包。两个值得注意的 是C库和外壳。GNU C库是每个运行于GNU/Linux系统的程序使用来与Linux通信 的。它是由自由软件基金会的一个成员,Roland McGrath开发的。被大多数 GNU/Linux系统使用的外壳程序是BASH,the Bourne Again Shell(1),它是由 FSF员工Brian Fox开发的。

We funded development of these programs because the GNU project was not just about tools or a development environment. Our goal was a complete operating system, and these programs were needed for that goal.

我们资助了这些程序的开发因为GNU计划不仅仅关于工具或开发环境。我们的目标 是一个完整操作系统,而这些工具对于这个目标是需要的。

(1) "Bourne again Shell" is a joke on the name ``Bourne Shell'', which was the usual shell on Unix.

(1)“Bourne again Shell”是一个对名为“Bourne Shell”的Unix常用shell的笑话。

Free software support

自由软件支持

The free software philosophy rejects a specific widespread business practice, but it is not against business. When businesses respect the users' freedom, we wish them success.

自由软件哲学抵制一种特殊的分布广泛的商业实践,但是它不是反商业的。当 商业尊重用户的自由,我们祝愿它们成功。

Selling copies of Emacs demonstrates one kind of free software business. When the FSF took over that business, I needed another way to make a living. I found it in selling services relating to the free software I had developed. This included teaching, for subjects such as how to program GNU Emacs and how to customize GCC, and software development, mostly porting GCC to new platforms.

销售Emacs拷贝显示了一种自由软件生意。当FSF接手该工作时,我需要另一个 谋生方法。我在销售我所开发的自由软件相关服务中找到了它。它包括教学,主 题诸如如何对GNU Emacs编程,如何定制GCC,和通常是移植GCC到新平台的软件开 发。

Today each of these kinds of free software business is practiced by a number of corporations. Some distribute free software collections on CD-ROM; others sell support at levels ranging from answering user questions, to fixing bugs, to adding major new features. We are even beginning to see free software companies based on launching new free software products.

当今,这每种自由软件生意被许多的公司实践着。有些公司发行自由软件收藏 CD-ROM;其它提供从回答用户问题到改正程序错误,增加大的新功能等多层次 上的支持。我们甚至开始看到基于发起新的自由软件产品的自由软件公司。

Watch out, though--a number of companies that associate themselves with the term "open source" actually base their business on non-free software that works with free software. These are not free software companies, they are proprietary software companies whose products tempt users away from freedom. They call these "value added", which reflects the values they would like us to adopt: convenience above freedom. If we value freedom more, we should call them "freedom subtracted" products.

密切注意,许多公司尽管它们将它们自己与“open source”发生联系,实际上它们 的生意基于与自由软件合作的非自由软件。它们不是自由软件公司,它们是私有 软件公司,其产品诱惑用户远离自由。它们称此为“增值”,反映了它们希望我们 采用的价值:自由之上的便利。如果我们更珍惜自由,我们应该称它们为“减去 自由的”产品。

Technical goals

技术目标

The principal goal of GNU was to be free software. Even if GNU had no technical advantage over Unix, it would have a social advantage, allowing users to cooperate, and an ethical advantage, respecting the user's freedom.

GNU的首要目标是自由软件。即便GNU不比Unix有技术优势,它却有一个允许用户 合作的社会优点,和一个尊重用户自由的与伦理有关的优点。

But it was natural to apply the known standards of good practice to the work--for example, dynamically allocating data structures to avoid arbitrary fixed size limits, and handling all the possible 8-bit codes wherever that made sense.

但是应用众所周知的好的经验标准于该工作是自然的--例如,动态地分配数据结构 以避免武断的固定大小限制,并在任何有意义之处处理所有可能的8位代码。

In addition, we rejected the Unix focus on small memory size, by deciding not to support 16-bit machines (it was clear that 32-bit machines would be the norm by the time the GNU system was finished), and to make no effort to reduce memory usage unless it exceeded a megabyte. In programs for which handling very large files was not crucial, we encouraged programmers to read an entire input file into core, then scan its contents without having to worry about I/O.

另外,我们丢弃了小内存大小的Unix中心,决定不支持16位机器(32位机器将 在GNU系统被完成时成为标准是清楚的),并不去为减少内存使用而作任何努力 除非超过了1兆字节。在处理非常大的文件不是至关紧要的程序中,我们鼓励 程序员们将整个文件读入核心,然后浏览其内容而不比顾虑输入输出。

These decisions enabled many GNU programs to surpass their Unix counterparts in reliability and speed.

这些决定使得一些GNU程序在可靠性和速度上超越了它们对应的Unix程序。

Donated computers

捐赠的计算机

As the GNU project's reputation grew, people began offering to donate machines running UNIX to the project. These were very useful, because the easiest way to develop components of GNU was to do it on a UNIX system, and replace the components of that system one by one. But they raised an ethical issue: whether it was right for us to have a copy of UNIX at all.

随着GNU计划的名胜增长,人们开始提供捐赠运行UNIX的计算机给该计划。这些是 非常有用的,因为开发GNU部件的最轻松方法是在一个UNIX系统上做,并一个一个 地替换该系统的部件。但是他们提出了一个与伦理有关的问题:我们拥有UNIX拷 贝从根本上说是否正确。

UNIX was (and is) proprietary software, and the GNU project's philosophy said that we should not use proprietary software. But, applying the same reasoning that leads to the conclusion that violence in self defense is justified, I concluded that it was legitimate to use a proprietary package when that was crucial for developing free replacement that would help others stop using the proprietary package.

UNIX是私有软件,而GNU计划的哲学说我们不该使用私有软件。但是,运用与导致 自我防卫中暴力是正当的结论同样的推理,我作出结论,在开发将帮助其他人停止 使用私有软件包的自由软件代替者的关键时刻使用私有软件包是合理的。

But, even if this was a justifiable evil, it was still an evil. Today we no longer have any copies of Unix, because we have replaced them with free operating systems. If we could not replace a machine's operating system with a free one, we replaced the machine instead.

但是,尽管这是一个合理的罪恶,它仍然是罪恶。今天我们不再有任何Unix拷贝, 因为我们已经用自由操作系统代替了它们。如果我们不能替换一台计算机的操作 系统成为自由操作系统,我们则替换该计算机。

The GNU Task List

GNU任务列表

As the GNU project proceeded, and increasing numbers of system components were found or developed, eventually it became useful to make a list of the remaining gaps. We used it to recruit developers to write the missing pieces. This list became known as the GNU task list. In addition to missing Unix components, we listed added various other useful software and documentation projects that, we thought, a truly complete system ought to have.

随着GNU计划的进行,以及越来越多的系统部件被发现和开发,最终做一个剩余 差距列表成为一件有意义的事情。我们用它来招聘开发者编写遗漏的部分。这个 列表成为众所周知的GNU任务列表。在遗漏的Unix部件之外,我们列出了额外的 各种各样的其它有用软件和文档计划,我们人为,这些是一个真正完整的系统所 应当拥有的。

Today, hardly any Unix components are left in the GNU task list--those jobs have been done, aside from a few inessential ones. But the list is full of projects that some might call "applications". Any program that appeals to more than a narrow class of users would be a useful thing to add to an operating system.

今天,已经没有什么Unix部件还留在GNU任务列表中--那些工作已经被完成了,除了 一些无关紧要的。但是该列表满是可以叫做“应用”的项目。任何吸引多于一个有限 用户种类的程序都将是加到操作系统的有益之物。

Even games are included in the task list--and have been since the beginning. Unix included games, so naturally GNU should too. But compatibility was not an issue for games, so we did not follow the list of games that Unix had. Instead, we listed a spectrum of different kinds of games that users might like.

即便是游戏也被包括在任务列表上--而且是从最初开始。Unix包括游戏,所以GNU 自然地也包括。但是对游戏来说兼容性不是一个问题,所以我们没有跟着Unix的游戏 列表走。作为代替,我们列出了一系列不同种类的用户可能喜欢的游戏。

The GNU Library GPL

GNU库GPL

The GNU C library uses a special kind of copyleft called the GNU Library General Public License, which gives permission to link proprietary software with the library. Why make this exception?

GNU C库使用一个特殊种类的叫做GNU库通用公共版权(LGPL)的copyleft,它给予 链接到该库的私有软件以许可。为什么让此成为例外?

It is not a matter of principle; there is no principle that says proprietary software products are entitled to include our code. (Why contribute to a project predicated on refusing to share with us?) Using the LGPL for the C library, or for any library, is a matter of strategy.

这不是一个原则问题;没有法则说私有软件产品有资格包括我们的代码。 (为什么对一个断言拒绝与我们共享的项目作贡献呢?)对C库或任何库使用 LGPL,是一个策略上的事情。

The C library does a generic job; every proprietary system or compiler comes with a C library. Therefore, to make our C library available only to free software would not have given free software any advantage--it would only have discouraged use of our library.

C库做的是普通的工作;每个私有系统或编译器都带有C库。因此,只将我们的C库 给自由软件用不会给自由软件带来任何好处--这将只会阻止使用我们的库。

One system is an exception to this: on the GNU system (and this includes GNU/Linux), the GNU C library is the only C library. So the distribution terms of the GNU C library determine whether it is possible to compile a proprietary program for the GNU system. There is no ethical reason to allow proprietary applications on the GNU system, but strategically it seems that disallowing them would do more to discourage use of the GNU system than to encourage development of free applications.

有一个系统是这个的例外:在GNU系统中(这包括GNU/Linux),GNU C库是唯一的 C库。所以GNU C库的发行条款决定了它是否可以用来为GNU系统编译一个私有程序。 允许私有应用在GNU系统上运行没有与伦理相关的原因,但是从战略上看,不接受 它们似乎是更多地阻碍使用GNU系统,而不是鼓励自由应用的开发。

That is why using the Library GPL is a good strategy for the C library. For other libraries, the strategic decision needs to be considered on a case-by-case basis. When a library does a special job that can help write certain kinds of programs, then releasing it under the GPL, limiting it to free programs only, is a way of helping other free software developers, giving them an advantage against proprietary software.

这就是为什么使用库GPL对于C库是一个好的策略。对于其它库,策略性的决定需要 一个一个地考虑。当一个库是做一种能帮助编写特定种类程序的特殊工作,那么将 其用GPL发行,限制其只能被用于自由软件,是一种帮助其它自由软件开发者的方 法。这给了他们针对私有软件的一个优势。

Consider GNU Readline, a library that was developed to provide command-line editing for BASH. Readline is released under the ordinary GNU GPL, not the Library GPL. This probably does reduce the amount Readline is used, but that is no loss for us. Meanwhile, at least one useful application has been made free software specifically so it could use Readline, and that is a real gain for the community.

考虑一下GNU Readline,一个被开发用来为BASH提供命令行编辑的库。Readline是 用普通的GNU GPL发行的,而不是库GPL。这可能真的减少了Readline的使用量,但 是这对我们没有损失。其间,至少一个有用的应用软件被特别地做成自由软件从而 可以使用Readline,那是自由社团的真的收获。

Proprietary software developers have the advantages money provides; free software developers need to make advantages for each other. I hope some day we will have a large collection of GPL-covered libraries that have no parallel available to proprietary software, providing useful modules to serve as building blocks in new free software, and adding up to a major advantage for further free software development.

私有软件开发者们有金钱提供的优势;自由软件开发者们需要相互获得优势。我 希望有一天我们将拥有对私有软件不存在类似可利用的巨大的受GPL保护的库集合, 提供作为新自由软件建筑木块的有用模块,和积累成一个将来自由软件发展的主要 优势。

Scratching an itch?

抓一个疥疮

Eric Raymond says that "Every good work of software starts by scratching a developer's personal itch." Maybe that happens sometimes, but many essential pieces of GNU software were developed in order to have a complete free operating system. They come from a vision and a plan, not from impulse.

Eric Raymond说“每个好的软件作品都开始于抓一个开发者的个人痒。”也许那有时 会发生,但是许多GNU软件的基本部分是为了有一个完整自由操作系统软件而被编写 的。它们来自于一个幻想和一个计划,而不是来自于冲动。

For example, we developed the GNU C library because a Unix-like system needs a C library, the Bourne-Again Shell (bash) because a Unix-like system needs a shell, and GNU tar because a Unix-like system needs a tar program. The same is true for my own programs--the GNU C compiler, GNU Emacs, GDB and GNU Make.

例如,我们开发了GNU C库因为一个类Unix系统需要一个C库,Bourne-Again Shell  (bash)因为一个类Unix系统需要一个命令行解释器,以及GNU tar因为一个类Unix系 统需要一个tar程序。对我自己的程序也同样如此--GNU C编译器,GNU Emacs,GDB和 GNU Make。

Some GNU programs were developed to cope with specific threats to our freedom. Thus, we developed gzip to replace the Compress program, which had been lost to the community because of the LZW patents. We found people to develop LessTif, and more recently started GNOME and Harmony, to address the problems caused by certain proprietary libraries (see below). We are developing the GNU Privacy Guard to replace popular non-free encryption software, because users should not have to choose between privacy and freedom.

一些GNU程序被开发来应付对我们自由的特殊威胁。因而,我们开发了gzip来代替 因LZW专利而使社团失去的Compress程序。我们发现人们开发LessTif,更近期开始 了GNOME和Harmony,来解决因某些私有软件库(见下文)带来的问题。因为用户不 应该在秘密和自由之间作选择,我们正在开发GNU Privacy Guard以代替流行的非 自由加密软件。

Of course, the people writing these programs became interested in the work, and many features were added to them by various people for the sake of their own needs and interests. But that is not why the programs exist.

当然,人们编写这些程序进而对它们感兴趣,多方面的人们源于他们自己的需要 和兴趣而给它们增加了许多功能。但是那不是为什么这些程序存在的原因。

Unexpected developments

未预料的开发

At the beginning of the GNU project, I imagined that we would develop the whole GNU system, then release it as a whole. That is not how it happened.

在GNU计划刚开始时,我设想我们将开发整个GNU系统,然后完整发布。那不是它 实际如何发生的。

Since each component of the GNU system was implemented on a Unix system, each component could run on Unix systems, long before a complete GNU system existed. Some of these programs became popular, and users began extending them and porting them---to the various incompatible versions of Unix, and sometimes to other systems as well.

由于GNU系统的每个部件都是在Unix系统上实现的,在一个完备的GNU系统存在 之前很久,每个部件都可以在Unix系统上运行。

The process made these programs much more powerful, and attracted both funds and contributors to the GNU project. But it probably also delayed completion of a minimal working system by several years, as GNU developers' time was put into maintaining these ports and adding features to the existing components, rather than moving on to write one missing component after another.

该过程使得这些程序更加强有力,并吸引了GNU计划的资金和贡献者。但是这 或许也延迟了数年一个最小运转系统的完成,因为GNU开发者们的时间被投入到 维护这些部件和给已有部件增加功能中,而不是转移到编写一个接一个遗漏的 部件上。

The GNU Hurd

GNU Hurd

By 1990, the GNU system was almost complete; the only major missing component was the kernel. We had decided to implement our kernel as a collection of server processes running on top of Mach. Mach is a microkernel developed at Carnegie Mellon University and then at the University of Utah; the GNU HURD is a collection of servers (or ``herd of gnus'') that run on top of Mach, and do the various jobs of the Unix kernel. The start of development was delayed as we waited for Mach to be released as free software, as had been promised.

1990年,GNU系统基本完成;唯一主要遗漏的部件是操作系统核心。我们已经 决定将核心实现成在Mach之上运行的服务器进程集合。Mach是在卡耐基梅龙大学, 后在犹他大学开发的微核;GNU HURD是一个运行于Mach之上的服务器集合(或“角 马兽群”),完成Unix核心的各种任务。开发的启动由于我们等待Mach如其许诺的 那样被作为自由软件发行而推迟。

One reason for choosing this design was to avoid what seemed to be the hardest part of the job: debugging a kernel program without a source-level debugger to do it with. This part of the job had been done already, in Mach, and we expected to debug the HURD servers as user programs, with GDB. But it took a long time to make that possible, and the multi-threaded servers that send messages to each other have turned out to be very hard to debug. Making the HURD work solidly has stretched on for many years.

选择该设计的一个原因是为了避免看起来是最困难的一部分工作:在没有一个源 代码级调试器的条件下调试核心程序。在Mach中,这部分工作已经被完成,我们 期待着用GDB象用户程序般调试HURD服务器。但是这花了很长时间才成为可能, 并且相互发送消息的多线程服务器成了非常难调试的。让HURD稳固地工作已经延 长了很多年。

Alix

Alix

The GNU kernel was not originally supposed to be called the HURD. Its original name was Alix--named after the woman who was my sweetheart at the time. She, a Unix system administrator, had pointed out how her name would fit a common naming pattern for Unix system versions; as a joke, she told her friends, "Someone should name a kernel after me." I said nothing, but decided to surprise her with a kernel named Alix.

GNU核心原本并不设想被称作HURD。它的原名是Alix--按我当时的情人命名。她, 一个Unix系统管理员,指出她的名字是如何适用于一个Unix系统版本的普通命名 模式;作为一个笑话,她对她的朋友们说,“有人应该按我的名字命名一个核心。” 我没说什么,却决定用一个名叫Alix的核心使她惊奇。

It did not stay that way. Michael Bushnell (now Thomas), the main developer of the kernel, preferred the name HURD, and redefined Alix to refer to a certain part of the kernel--the part that would trap system calls and handle them by sending messages to HURD servers.

这没有保持那样。Michael Bushnell(现在的Thomas),核心的主要开发者, 首选名字HURD,并重定义Alix来指核心中的某些部分--捕获系统调用并以发送 消息给HURD处理器来处理它们的部分。

Ultimately, Alix and I broke up, and she changed her name; independently, the HURD design was changed so that the C library would send messages directly to servers, and this made the Alix component disappear from the design.

最终,Alix和我分手了,她改了名字;与此无关地,HURD设计被改变因而C库直接 发送消息给服务器,这导致Alix部件从设计中消失。

But before these things happened, a friend of hers came across the name Alix in the HURD source code, and mentioned the name to her. So the name did its job.

但是在这些事情发生前,她的一个朋友偶遇HURD源代码中的Alix名字,并向她提 及此事。所以该名字起了作用。

Linux and GNU/Linux

Linux和GNU/Linux

The GNU Hurd is not ready for production use. Fortunately, another kernel is available. In 1991, Linus Torvalds developed a Unix-compatible kernel and called it Linux. Around 1992, combining Linux with the not-quite-complete GNU system resulted in a complete free operating system. (Combining them was a substantial job in itself, of course.) It is due to Linux that we can actually run a version of the GNU system today.

GNU Hurd还没有准备好为产品使用。幸运的是,另一个核心可以利用。在1991 年,Linus Torvalds开发了一个兼容Unix的核心并称之为Linux。大约在1992年, 结合Linux与不是非常完整的GNU系统导致了一个完整的自由软件操作系统。( 当然,结合它们本身是一件实质性的工作。)那是由于我们今天可以实际运行一 个GNU系统版本的Linux。

We call this system version GNU/Linux, to express its composition as a combination of the GNU system with Linux as the kernel.

我们称此系统版本GNU/Linux,以表达它的成分是GNU系统和Linux作为核心的组 合。

Challenges in our future

我们将来的挑战

We have proved our ability to develop a broad spectrum of free software. This does not mean we are invincible and unstoppable. Several challenges make the future of free software uncertain; meeting them will require steadfast effort and endurance, sometimes lasting for years. It will require the kind of determination that people display when they value their freedom and will not let anyone take it away.

我们已经证明了我们开发一个广谱自由软件的能力。这并非意味着我们是无敌的 和不可停止的。一些挑战适得其反自由软件的将来不可预测;与它们会战将需要 坚实的努力和持久,有时持续数年。这将需要人们显示的那种他们珍惜他们的自 由并不让任何人将其拿走的决心。

The following four sections discuss these challenges.

下边四个段落讨论这些挑战。

Secret hardware

秘密的硬件

Hardware manufactures increasingly tend to keep hardware specifications secret. This makes it difficult to write free drivers so that Linux and XFree86 can support new hardware. We have complete free systems today, but we will not have them tomorrow if we cannot support tomorrow's computers.

硬件厂商愈加倾向于对硬件规范保密。这使得编写让Linux和XFree86能支持新硬 件的自由驱动程序变得困难。现在我们已经完成了自由操作系统,但是我们如果 不能支持明天的计算机我们将会在明天失去它们。

There are two ways to cope with this problem. Programmers can do reverse engineering to figure out how to support the hardware. The rest of us can choose the hardware that is supported by free software; as our numbers increase, secrecy of specifications will become a self-defeating policy.

有两种方法来应付这个问题。程序员可以作反向工程以发现怎样支持这些硬件。 我们中的其他人可以选择被自由软件支持的硬件;随着我们的人数增加,规范的 保密将成为一个弄巧成拙的策略。

Reverse engineering is a big job; will we have programmers with sufficient determination to undertake it? Yes--if we have built up a strong feeling that free software is a matter of principle, and non-free drivers are intolerable. And will large numbers of us spend extra money, or even a little extra time, so we can use free drivers? Yes, if the determination to have freedom is widespread.

反向工程是一个大的工作;我们会有程序员具备足够的决心去担负这件工作?是 的--如果我们已经建立了一个认为自由软件是自然法则的坚固信念,非自由软件 是无法忍受的。我们中的大多数人会花额外的钱,或甚至一点额外的时间从而可 以使用自由驱动程序?是的,如果拥有自由的决心是广泛传播的。

Non-free libraries

非自由库程序

A non-free library that runs on free operating systems acts as a trap for free software developers. The library's attractive features are the bait; if you use the library, you fall into the trap, because your program cannot usefully be part of a free operating system. (Strictly speaking, we could include your program, but it won't run with the library missing.) Even worse, if a program that uses the proprietary library becomes popular, it can lure other unsuspecting programmers into the trap.

一个运行于自由操作系统之上的非自由库其行为象一个针对自由软件开发者的陷 阱。库的有吸引力的功能是诱饵;如果你使用该库,你就跌入了陷阱,因为你的 程序不能有用地成为自由操作系统的一个部分。(严厉地说,我们可以包含你的 程序,但是它将不回在没有该库的条件下运行。)更糟糕的是, 如果一个使用私有软件库的程序流行起来,它可引诱其他信任的程序员们落入陷 阱。

The first instance of this problem was the Motif toolkit, back in the 80s. Although there were as yet no free operating systems, it was clear what problem Motif would cause for them later on. The GNU Project responded in two ways: by asking individual free software projects to support the free X toolkit widgets as well as Motif, and by asking for someone to write a free replacement for Motif. The job took many years; LessTif, developed by the Hungry Programmers, became powerful enough to support most Motif applications only in 1997.

这个问题的第一个例子是80年代的Motif工具箱。尽管当时还没有自由操作系统, 但是Motif以后会对自由操作系统造成什么问题是很清楚的。GNU计划以两种方式 做了响应:通过请求个别的自由软件项目在支持Motif的同时也支持自由X工具箱 小部件,并请求一些人编写替代Motif的自由软件。该工作花费许多年时间;由 Hungry程序员们开发的LessTif,在1997年才成为足够强有力支持大多数Motif应 用。

Between 1996 and 1998, another non-free GUI toolkit library, called Qt, was used in a substantial collection of free software, the desktop KDE.

在1996年和1998年间,另一个非自由GUI工具箱库,叫做Qt,被用在桌面KDE这一 广泛的自由软件中。

Free GNU/Linux systems were unable to use KDE, because we could not use the library. However, some commercial distributors of GNU/Linux systems who were not strict about sticking with free software added KDE to their systems--producing a system with more capabilities, but less freedom. The KDE group was actively encouraging more programmers to use Qt, and millions of new "Linux users" had never been exposed to the idea that there was a problem in this. The situation appeared grim.

自由GNU/Linux系统无法利用KDE,因为我们不能使用其库。尽管如此,一些不严 格坚持自由软件的商业GNU/Linux系统发行商将KDE加入到他们的系统中--产生了 一个具有更强能力的系统,却具有更少的自由。KDE小组积极地鼓励更多的程序 员们使用Qt,成百万的新“Linux用户”从来都不知道这样有一个问题的想法。情形 是严酷的。

The free software community responded to the problem in two ways: GNOME and Harmony.

自由软件社团以两种方法对这个问题作出响应:GNOME和Harmony。

GNOME, the GNU Network Object Model Environment, is GNU's desktop project. Started in 1997 by Miguel de Icaza, and developed with the support of Red Hat Software, GNOME set out to provide similar desktop facilities, but using free software exclusively. It has technical advantages as well, such as supporting a variety of languages, not just C++. But its main purpose was freedom: not to require the use of any non-free software.

GNOME即GNU网络对象模型环境(Network Object Model Environment),是GNU的 桌面项目。从1997年开始,由Miguel de Icaza在Red Hat Software支持下开发, GNOME开始提供类似的桌面工具,散失排外地只使用自由软件。它也有技术上的优 势,如支持多种语言,而不仅仅是C++。但是它的主要目的是自由:不需要使用任 何非自由软件。

Harmony is a compatible replacement library, designed to make it possible to run KDE software without using Qt.

Harmony是一个兼容替代库,设计用来在没有Qt的情况下有可能运行KDE软件。

In November 1998, the developers of Qt announced a change of license which, when carried out, should make Qt free software. There is no way to be sure, but I think that this was partly due to the community's firm response to the problem that Qt posed when it was non-free. (The new license is inconvenient and inequitable, so it remains desirable to avoid using Qt.)

在1998年10月,Qt的开发者们宣布了一个许可证的改变,当其实施后,应该使得 Qt成为自由软件。虽然没办法确信,但是我想这是部分归功于社团对Qt是非自由 软件时造成的问题坚定响应。(新的许可证是不便的和不公正的,所以仍旧值得 去避免使用Qt。)

[Subsequent note: in September 2000, Qt was rereleased under the GNU GPL, which essentially solved this problem.]

How will we respond to the next tempting non-free library? Will the whole community understand the need to stay out of the trap? Or will many of us give up freedom for convenience, and produce a major problem? Our future depends on our philosophy.

我们将如何响应下一个诱惑人的非自由库呢?整个社团将理解需要远离陷阱吗? 或者我们中的许多人为了方便而放弃自由,从而产生一个大的问题?我们的将来 依赖于我们的哲学。

Software patents

软件专利

The worst threat we face comes from software patents, which can put algorithms and features off limits to free software for up to twenty years. The LZW compression algorithm patents were applied for in 1983, and we still cannot release free software to produce proper compressed GIFs. In 1998, a free program to produce MP3 compressed audio was removed from distribution under threat of a patent suit.

我们面临的最坏威胁来自于软件专利,它可以延迟算法和功能对自由软件的限制 最多达20年。LZW压缩算法专利是1983年申请的,我们仍旧不能发布自由程序来 产生正确的压缩GIFs。在1998年,一个产生MP3的自由软件程序由于担心专利官司 威胁而被从发行中拿掉。

There are ways to cope with patents: we can search for evidence that a patent is invalid, and we can look for alternative ways to do a job. But each of these methods works only sometimes; when both fail, a patent may force all free software to lack some feature that users want. What will we do when this happens?

有办法应付专利:我们可以研究寻找证据证明一个专利是无效的,我们可以寻找 其它方法来完成有关工作。但是这每个方法只是有时起作用;当它们都失败时,一 个专利可能迫使所有的自由软件缺少某些用户想要的功能。当这发生时我们将做些 什么呢?

Those of us who value free software for freedom's sake will stay with free software anyway. We will manage to get work done without the patented features. But those who value free software because they expect it to be techically superior are likely to call it a failure when a patent holds it back. Thus, while it is useful to talk about the practical effectiveness of the "cathedral" model of development, and the reliability and power of some free software, we must not stop there. We must talk about freedom and principle.

我们中的那些因自由缘故而重视自由软件的人们将无论如何与自由软件待在一起。 我们将设法不用专利保护的功能而完成工作。但是那些因为他们期望技术出众而 重视自由软件的人们有可能在专利抑制自由软件时认为这是自由软件的失败。因 而,在有意义地谈论“大教堂”模式的实际效力和一些自由软件的可靠性和能力时, 我们必定不能停在那儿。我们必须探讨自由和原则。

Free documentation

自由文档

The biggest deficiency in our free operating systems is not in the software--it is the lack of good free manuals that we can include in our systems. Documentation is an essential part of any software package; when an important free software package does not come with a good free manual, that is a major gap. We have many such gaps today.

我们自由操作系统的最大不足不是在软件中--是缺乏我们可以包括在我们系统中 的好的自由手册。文档资料是任何软件包的基本部分;当一个重要的自由软件包 没与好的自由手册一起出现,那将是一个大的差距。今天我们有许多这样的差距。

Free documentation, like free software, is a matter of freedom, not price. The criterion for a free manual is pretty much the same as for free software: it is a matter of giving all users certain freedoms. Redistribution (including commercial sale) must be permitted, on-line and on paper, so that the manual can accompany every copy of the program.

自由文档资料,如同自由软件,是自由问题,不是价格问题。自由手册的标准几乎 与自由软件完全相同:它是为了给予所有用户确定的自由。重新发行(包括商业销 售)必须被许可,不论是在线还是书面形式,因而手册能够伴随程序的每个拷贝。

Permission for modification is crucial too. As a general rule, I don't believe that it is essential for people to have permission to modify all sorts of articles and books. For example, I don't think you or I are obliged to give permission to modify articles like this one, which describe our actions and our views.

预选修改也是只管紧要的。作为一个普通规则,我不相信人们拥有修改所有种 类文章和书籍的许可是只管紧要的。例如,我不任为你或我被迫使给予修改象 本文这样描述我们行为和我们观点文章的许可权。

But there is a particular reason why the freedom to modify is crucial for documentation for free software. When people exercise their right to modify the software, and add or change its features, if they are conscientious they will change the manual too--so they can provide accurate and usable documentation with the modified program. A manual which does not allow programmers to be conscientious and finish the job, does not fill our community's needs.

但是有一个特殊的原因关于为什么修改自由软件文档资料的自由是至关紧要的。 当人们行使他们的权利去修改软件,增加或改变其功能时,如果他们是尽职的他 们将也修改文档资料--因而他们能随着修改过的程序一起提供正确和可用的文档 资料。一个不允许程序员们尽职并完成该工作的手册不符合我们社团的需要。

Some kinds of limits on how modifications are done pose no problem. For example, requirements to preserve the original author's copyright notice, the distribution terms, or the list of authors, are ok. It is also no problem to require modified versions to include notice that they were modified, even to have entire sections that may not be deleted or changed, as long as these sections deal with nontechnical topics. These kinds of restrictions are not a problem because they don't stop the conscientious programmer from adapting the manual to fit the modified program. In other words, they don't block the free software community from making full use of the manual.

一些种类的关于修改如何去做的限制没有造成问题。例如,保持原作者的版权 声明,发行条款,或作者列表的要求是很好的。要求修改后的版本包括它们修 改的原声明也是没有问题的,即使有整节的也许没有删除或修改的,只要这些 节涉及非技术主题。这些类型的限制不是问题因为它们不阻止尽职程序员修改 手册以适应修改过的程序。换种说法,它们不妨碍自由软件社团完全利用手册。

However, it must be possible to modify all the *technical* content of the manual, and then distribute the result in all the usual media, through all the usual channels; otherwise, the restrictions do obstruct the community, the manual is not free, and we need another manual.

尽管如此,必须有可能修改手册的所有*技术*内容,并将结果以所有常规媒体 形式通过所有常规渠道发行;否则,这些约束就阻碍了社团,手册不是自由的, 我们需要另一个手册。

Will free software developers have the awareness and determination to produce a full spectrum of free manuals? Once again, our future depends on philosophy.

自由软件开发者们将有知晓和决心去生产一个全谱的自由手册吗?我们的将来 再次取决于哲学。

We must talk about freedom

我们必须探讨自由

Estimates today are that there are ten million users of GNU/Linux systems such as Debian GNU/Linux and Red Hat Linux. Free software has developed such practical advantages that users are flocking to it for purely practical reasons.

估计当今有数千万的用户使用诸如Debian GNU/Linux和Red Hat Linux的GNU/Linux 系统。自由软件已经发展了这样的应用优势致使用户纯粹为了应用原因聚集到 它身边。

The good consequences of this are evident: more interest in developing free software, more customers for free software businesses, and more ability to encourage companies to develop commercial free software instead of proprietary software products.

这种现象好的结果是显然的:更多开发自由软件的兴趣,更多自由软件商业的用 户,更多能力鼓励公司开发商业自由软件而不是私有软件产品。

But interest in the software is growing faster than awareness of the philosophy it is based on, and this leads to trouble. Our ability to meet the challenges and threats described above depends on the will to stand firm for freedom. To make sure our community has this will, we need to spread the idea to the new users as they come into the community.

但是对软件的兴趣增长快于对其基于的哲学了解,这带来了麻烦。我们面对上边 描述的挑战和威胁的能力依赖于坚决代表自由的意志。为了让我们的社团拥有这 个意志,我们需要在新的用户来到社团时向他们传播这样的思想。

But we are failing to do so: the efforts to attract new users into our community are far outstripping the efforts to teach them the civics of our community. We need to do both, and we need to keep the two efforts in balance.

但是我们正在这点上失败:吸引新用户加入社团的努力大大超越了教育他们我们 社团公民素质的努力。我们需要做这两件事,我们需要保持这两个努力的平衡。

"Open Source"

"公开源码"

Teaching new users about freedom became more difficult in 1998, when a part of the community decided to stop using the term "free software" and say "open source software" instead.

当1998年社团的一部分决定停止使用术语“自由软件”并改为说“开放源代码软件” 时,教导新用户有关自由变得更加困难。

Some who favored this term aimed to avoid the confusion of "free" with "gratis"--a valid goal. Others, however, aimed to set aside the spirit of principle that had motivated the free software movement and the GNU project, and to appeal instead to executives and business users, many of whom hold an ideology that places profit above freedom, above community, above principle. Thus, the rhetoric of "open source" focuses on the potential to make high quality, powerful software, but shuns the ideas of freedom, community, and principle.

一些喜欢该术语的人打算避免“自由”与“白送”的混淆--是一个正当的目标。可是 其他人,打算将激励了自由软件运动和GNU计划的原则精神抛到一边,并反而求助 于行政和商业用户,而这些用户中的许多人持有一种将利润置于自由,社团和原 则之上的意识形态。因而,“开放源代码”的花言巧语集中在制作高质量,强有力 软件的潜能上,但是避开自由,社团和原则的思想。

The "Linux" magazines are a clear example of this--they are filled with advertisements for proprietary software that works with GNU/Linux. When the next Motif or Qt appears, will these magazines warn programmers to stay away from it, or will they run ads for it?

“Linux”杂志是其一个清晰的例子--它们被与GNU/Linux一同工作的私有软件广告 所充斥。当下一个Motif或Qt出现时,这些杂志将警告程序员们远离它还是为它们 登载广告呢?

The support of business can contribute to the community in many ways; all else being equal, it is useful. But winning their support by speaking even less about freedom and principle can be disastrous; it makes the previous imbalance between outreach and civics education even worse.

商业支持可以许多方式为社团作贡献;其它都一样,商业支持是有益的。但是 为了赢得他们的支持而少说自由和原则可能损失惨重;它使得前述超越和公民 意识教育之间的失衡变得愈加糟糕。

"Free software" and "open source" describe the same category of software, more or less, but say different things about the software, and about values. The GNU Project continues to use the term "free software", to express the idea that freedom, not just technology, is important.

“自由软件”和“开放源代码”或多或少地描述了同一软件类别,但是它们谈论的 是软件和价值的不同的事情。GNU计划继续使用“自由软件”术语,来表达不仅 仅技术,自由是重要的思想。

Try!

尝试!

Yoda's philosophy ("There is no `try'") sounds neat, but it doesn't work for me. I have done most of my work while anxious about whether I could do the job, and unsure that it would be enough to achieve the goal if I did. But I tried anyway, because there was no one but me between the enemy and my city. Surprising myself, I have sometimes succeeded.

Yoda的哲学(“没有‘尝试’”)听起来幽雅,但是它对我不起作用。我已经在担忧 我是否可以完成任务的顾虑中,以及不确信如果我完成了任务,我做的是否足以 达到目标中做了我的大部分工作。但是无论如何我尝试了,因为在敌人和我的城 市之间除了我没有别人。令我自己惊讶,有时我成功了。

Sometimes I failed; some of my cities have fallen. Then I found another threatened city, and got ready for another battle. Over time, I've learned to look for threats and put myself between them and my city, calling on other hackers to come and join me.

有时我失败了;我的城市中有些已经失落。随后我发现另一个受威胁的城市,并 为另一场战斗做好准备。随着时间的消逝,我已经学会寻找威胁并把我自己放在 它们和我的城市之间,召唤其他黑客来加入我。

Nowadays, often I'm not the only one. It is a relief and a joy when I see a regiment of hackers digging in to hold the line, and I realize, this city may survive--for now. But the dangers are greater each year, and now Microsoft has explicitly targeted our community. We can't take the future of freedom for granted. Don't take it for granted! If you want to keep your freedom, you must be prepared to defend it.

现在,我常常不是唯一的一个。当我看见一大群黑客掘进坚持下去时感觉是一种 安慰和乐趣,我意识到,这个城市也许能生存--目前。但是危险每年都变得更大, 并且现在Microsoft已经明确地将目标对准社团。我们不能把自由的将来当作牢固 可靠的。别看作理所当然的!如果你想要保持你的自由,你必须准备好去捍卫自由。


[ Czech | English | French | Indonesian | Italian | Korean | Russian | Spanish ]

Return to GNU's home page. 返回GNU主页.

Please send FSF & GNU inquiries & questions to 请将垂讯和问题发给FSF & GNU & gnu@gnu.org. There are also other ways to contact the FSF. 也有其它方式 进行联系FSF.

Please send comments on these web pages to 请将对这些页面的意见发给 webmasters@gnu.org, send other questions to 其它问题发给 gnu@gnu.org.

Copyright (C) 1998, 2001 Richard Stallman. 版权所有 (C) 1998, 2001 Richard Stallman.

Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. 倘若本声明被保留,以任何媒体形式进行本文完整的逐字拷贝和发布 是被许可的。

Updated: 修改于: $Date: 2003/07/23 13:01:21 $ $Author: chstoneliu $

Name of translator:朱庆九 Zhu, Qing Jiu

Name of proofreader: Liu, Chao-Hong

Version of original English page that the Chinese is based on:the English page was of January 2002.