GNU宣言


本文版权为 Free Software Foundation, Inc. 所有, Copyright (C) 1985, 1993

任何人在拿到这份文件的同时便已授予他通过任何媒体,不加更改的复制与传播本文的副本的权利,前题是本版权宣告与授权声明必须保留不动,而且散播者必须授予接受者如同本声明一样再次传播的权利。

本文不许更改。

GNU宣言

   “GNU 宣言”一文乃是由 Richard Stallman 在 GNU 计划刚开始进行时
   所撰写,以争取其它人的加入及支持。在刚开始的几年,随着计划
   的发展,本文有些许的修订,但是现在看来最好保持目前最多人所看过
   的版本而不再做修订。

   从那时起,我们慢慢熟悉不同的用字可以避免某些特定的误解。在1993
   年所增加的注解可以澄清这些疑点。

   想获知 GNU 软件的最新动态,请参考最新版的 GNU's Bulletin。这份
   列表因为太长,所以不在此引用。

什麽是GNU? Gnu's Not UNIX

GNU,Gnu's Not Unix 的缩写,是我正在写的一个与 UNIX 兼容的软件系统,目的在於我能够自由的把此系统给想要用它的人。(1) 有一些自愿者在给予我帮助。我们非常的需要(希望)您也能够贡献时间、金钱、程序或者是设备来参加此计划。

到目前为止我们已经有了一个利用 Lisp 编写的Emacs文本编辑器,一个原码级的调试器,一个与 yacc 兼容的语法分析器,一个连接器,和大概 35 个应用程序。有一个 shell (命令解释器)已经接近完成。一个新的、具可移植性的、有优化功能的C编译器已经可以自我编译,并应可以在今年发布。还有一个初具规模的内核但是需要更多的特性以模拟 UNIX。当内核和编译器工作完成后,我们就能够发布一个适合软件开发的 GNU 系统。我们会使用 TeX 作我们的文本编辑器,但是也正在编写一个 nroff。我们也会用免费的、具可移植性的 X 视窗系统。之后我们会加一个可移植的 Common Lisp、一个 Empire 游戏、一个电子表格软件、和其他各式各样的东西,以及在线的文档。我们希望最后能提供普通 UNIX 系统所能提供的每一件有用的东西,甚至还要更多。

GNU 将能够执行 Unix 的程序,但是不会和 Unix 完全一样。我们会根据我们在其它操作系统上的经验来改进所有可以增加便利性的地方。特别是我们计划拥有支持更长文件名、文件版本号、一个不怕死机的文件系统,或许还要有自动文件名补全、与终端机无关的显示支持、可能最后还要有一个基于Lisp的视窗系统,以使好几个 Lisp 程序和普通的 Unix 程序能共享同一屏幕。C 和 Lisp 都将成为系统的程序语言。我们会设法支持 UUCP,MIT Chaosnet,及 Internet 的通讯协议。

GNU 最初的目标是在有虚拟内存的 68000/16000 系列机器上开发,因为这样的环境是最容易开发程序来实现 GNU 的运行。剩下来让 GNU 能在其它较小的机器上运行的工作,将会留给那些希望能在这些机器上使用的人。

为了避免令人不悦的混淆,请各位提到此计划的名字‘GNU’时务必要把‘G’的音发出来。

我为什么一定要写GNU

我认为:如果我喜欢一个程序的话,那我就应该分享给其他喜欢这个程序的人。这句话是我的金科玉律。软件商想各个击破用户,使他们同意不把软件和他人分享。我拒绝以这种方式破坏用户的团结。我的良心使我不会签下一个不开放的合约或是软件授权合约。有好几年我一直在 MIT AI 实验室对抗这种趋势与冷漠,但是最後事情糟糕到:我没办法在一个处理事情的方法与我的意愿相违的机构呆下去。

为了我能继续使用电脑而不感到羞愧,我决定要收集足够数量的自由软件以使我能够不使用那些没有自由的软件。我离开 AI 实验室为的就是不给 MIT 有任何法律上的借口来阻止我把 GNU 送给其他人。

为什么GNU将会和UNIX兼容

Unix并不是我理想的系统,但是它也不太差。Unix 基本的特性看来似乎是挺不错的,而且我想我能够在不牺牲原有特性之下加进 Unix 缺少的东西。况且一个和 Unix 兼容的系统也比较容易让较多的人接受。

如何获取GNU

GNU不是公共的,毫无约束的软件(public domain)。我们将会允许每一个人修改及传播 GNU,但是绝不允许传播者对他传播的程序再加进其他的限制。也就是说,不允许将修改后的程序据为己有。我希望能确保 GNU 所有的版本都能保持自由。

为什么有很多程序员愿意帮忙

我发现有很多程序员对 GNU 感兴趣且愿意提供帮助。

很多程序员对系统软件的商业化感到不悦。这可能使他们赚更多的钱,但是一般而言这使的他们有与其他程序员冲突而非大家都是同志的感觉。程序员对友谊的最基本表现就是把程序分享出来;而当前的市场运作基本上禁止程序员彼此之间视为朋友。软件购买者必须在友谊和守法之间做一选择。自然地,有很多选择了友谊。但是那些相信法律的人常常没办法安心的做下任一选择。他们变的愤世忌俗且认为写程序只不过是赚钱的一种方法而已。

通过编写和使用 GNU 而非私有程序,我们可以热情的对待每一个人并且遵守法律。此外,GNU 更是一个激发与集结大家和我们一起分享的旗帜与榜样。这能够给我们一种和谐的感觉,这感觉是我们为那些非自由软件工作所不能得到的。大概有一半和我谈过的程序员认为这是一个金钱所不能替换的、很重要的快乐。

怎样作出自己的贡献

我请电脑制造商捐献机器及金钱。我呼吁个人贡献程序与精力。

如果你贡献机器的话,你可以期待的一个结果就是 GNU 可以早些在你提供的机器上面运行。机器必须是完整的、马上可用的系统,可以在住宅区内使用,而且不需要复杂的冷却及电力系统。

我发现有很多的程序员渴望为 GNU 贡献闲暇的精力。对大部分工程而言,象这样业余的、分散的工作非常难以协调;大家独立写的各部份可能无法合在一起工作。但是就这个特定的取代 Unix 的任务来说就没有这个问题。一个完整的 Unix 系统包括了上百个工具程序,每一个程序都分别有各自的文档。大部分的接口规格都因 Unix兼容性的缘故而是固定的。如每一个贡献者能够写一个某个 Unix 工具的兼容替代品,让它在 Unix 下能正确的取代原来程序的工作,那么这些工具集合在一起时便能正常工作。即使允许 Murphy 再制造一些出乎意料的问题,把这些部份组合起来仍然是件可行的工作。(系统内核的工作就需要较密切的沟通,且只有一群紧密的小组能够参加)

如果有人贡献金钱,那么我就能够雇佣几个全职或临时的人。以程序员的标准来说,这薪水不是很高,但是我要找的是那些认为建立社群精神和赚钱同样重要的人。我认为使参加者节制物欲,是使他们能够全心全力投入 GNU 工作的一种方法。

为什麽所有的电脑用户都会受益

只要 GNU 完成,每个人都能够自由的取得优良的系统软件,就像空气一样。(2) ?

这不只是仅仅省下大家一笔 Unix 的版权费而已。这更意味著大家可以避免白白浪费掉重复设计系统的工作。这省下来的力气可以转而投入提高现有科技水准。

每一个人都能取得完整的程序源码。因此,需要更改系统的用户总是能自由的自行修改,或雇用任何能够胜任的程序员或公司来替他做这件事。用户不再需要看某一个拥有源码的程序员或公司的脸色,且在修改程序这件事上,他处於独立不受影响的地位。

学校将能够通过鼓励所有的学生学习与改进程序源码的方式提供更富教育性的环境。哈佛的电脑实验室曾经有这样一个政策:不允许一个不能公开展示原码的程序安装到系统里,而且拒绝安装某些程序以显示贯彻的决心。我从这件事得到不少启发。

最后,谁该拥有这个系统软件的顾虑及谁被允许或不允许运用这软件做什么事的限制都会被解除。

为了让使用程序者付费,包括授权数量,必须通过累赘的机制来决定用户需要为哪个程序付出多少钱,这总是会使社会付出大量成本。而且只有警方才能使每个人都遵守。想象一个必须用很高的成本制造空气的太空站:对每呼吸一升空气收费可能很公平,但是成天带著空气记录器的口罩是无法忍受的,即使每个人都有能力付空气费。而且到处都是监视器监视你是否为了逃避计费而拿掉呼吸罩,是很令人恼火的。倒不如拿开呼吸罩改收人头税以建设空气制造厂。

拷贝全部或部份的程序对一个程序员而言是和呼吸一样自然而有益的事。拷贝软件就应该这么自由。

就GNU的理想而言,一些容易澄清的反对意见

“如果它是免费的话就没有人会用它,因为这表示他们没有任何技术支持。”
“你必须对程序收费,用来支付提供支持所需的费用。”

如果有人宁愿花钱购买有售后服务的 GNU 而非免费得到没有服务的 GNU ,一家专门为那些免费拿到 GNU 的人提供服务的公司应该会很赚钱。(3)

我们必须辨别真正的编程和仅做售后服务在支持方式上的不同。前者是软件公司所不能依靠的。如果没有足够多的人和你有相同的问题,软件公司可能会让你陷入无助之地。

如果你的事业需要倚靠技术支持,唯一的方法就是准备好一切所需的原代码和工具。然后你可以聘请任何一位可以胜任的人来解决你的问题。你不会任由某人摆布。就 UNIX 而言,原代码的价格让大部分的企业无法考虑这种作法。用 GNU 的话这就很容易了。但是还是有可能出现找不到可以胜任的人的情况,但是这个问题不能归罪于发布方式。GNU 并不能解决世界上所有的问题,只是其中的一部份而已。

同时,对电脑一无所知的用户须要帮助:为他们做一些他们自己能轻易做到,但不知道如何做的事。

这样的服务可以由专门经营技术支持的公司提供。如果用户真宁愿花钱买一个有售後服务的软件,他们也将愿意为免费得到的软件买些服务。这些服务公司会在品质和价钱上竞争;用户将不会受限於特定的公司。同时,我们这些不须要服务的人也能够自由的使用程序而不须要在服务上花钱。

“没有广告的话你就没办法让很多人知道你的东西,而你必须对程序收钱以支付广告经费。”
“为一个可以免费得到的程序做广告是没有用的。”

有多种形式免费的或廉价的传播媒介可以用来让大量电脑用户知道像 GNU 之类的东西。可是刊登广告可以触及更多PC用户可能是真的。如果是这样的话,一个刊登广告提供拷贝及邮购 GNU 的企业应该可以赚到远超过其投资的广告费。在这种机制下,只有从广告中获益的用户才须要为之付费。

另一方面,如果很多人通过朋友拿到 GNU,而上述的企业没有成功,这就表明 GNU 并不须要借助广告来传播。为什麽自由市场的拥护者不想要让自由市场决定这件事?(4)

“我的公司需要一个专门的操作系统才能发挥有竞争力。”

GNU 将会把操作系统转出竞争的领域。你将无法在这方面占有优势,但同样的你的对手也无法在这方面胜过你。你和他们会在其他方面竞争,而在这方面互相获益。如果你的事业就是卖操作系统,你大概不会喜欢 GNU,不过这会很为难你。如果你的事业是在其他方面的话,GNU 可以让你省下购买操作系统所需要的昂贵经费。

我希望能见到 GNU 的发展受到许多制造商及用户的支持,以减低双方的花费。(5)

“难道程序员不应该从他的创造力获得回报吗?”

如果有甚么事值得回报的话,那非贡献于社会莫数了。创造力可以是一种对社会的贡献,但是必须以社会能够自由使用其成果为前提。如果程序员因写出有创意的程序就应得到报酬的话,同理如果他们对这些程序的使用设限的话,他们也该受到惩罚。

“难道程序员不能为他的创造力要求回报吗?”

希望工作有所报酬,或是使自己有最大的收入并没有什么不对的,只要不要用破坏性的手段。但是在现今软件领域内常用的手段却都是以破坏为基础的。

限制一个程序的使用,以从用户身上获取金钱是具有破坏性的,因为那些限制减少了程序的应用范围。这减少了人类能由此程序所得到的财富。如果可以任意的设限,其恶果就是任意的破坏。

一个好公民不会用这么有破坏性的手段来致富的原因是,如果大家都这样做的话,我们会因为彼此的互相攻击而变的更穷。这是不变的真理,或者说是金科玉律。因为我不愿见到每个人都藏私的後果,所以我认为这样做是不对的。特别是,想要由创造力获得回馈的欲望,并不能作为剥夺世界的整个或部份创造力的
正当理由。

“难道程序设计师不会因此而挨饿吗?”

我可以回答说,没有人被强迫当程序员啊!我们一般人没办法靠站在街上扮鬼脸赚钱。但是我们也并不能因此而谴责选择一辈子站在街上扮鬼脸,然後挨饿。我们能做其他的事。

可是这种回答是错误的,因为它认同问题本身隐含的假设:如果程序员没有软件的所有权的话,没有人会付程序员一分钱。大家都这么认为:完全是或完全不是。

让程序员不会挨饿的真正原因是他们仍然可以靠设计程序赚钱。只是没有像现在那么多罢了。

限制软件的拷贝并不是做软件生意的基本条件。这常被视为基本条件的原因是因为这样赚的钱最多。如果这种方法被禁止,或者被客户拒绝的话,软件事业就会用其他现在用的比较少的方法。世上永远有多种方法来组织任何一种事业。

在此新的环境中,程序设计可能不再像现在有这么高的利润。但是这不是用来反对这种改变的理由。没有人认为销售人员目前的薪水是不公平的,如果程序员赚一样多钱,那也不是一件不公平的事。(事实上,程序员仍然可以赚比这样多得多的钱。)

“难道人没有权力控制自己的创造力该如何运用吗?”

“控制自己思想的运用”实际上包含了控制他人的生活;而且通常会使得他人的日子更难过。

像律师等仔细研究过知识产权问题的人认为,实际上知识产权并非固有的(天生的)权力。政府所认同的那种知识产权是为了特定的目的而通过特别的立法程序创造出来的。

例如, 专利制度是为了鼓励发明者公开他们的发明的详细内容而设的。他的目的是为了帮助整个社会,而不是发明者。在那时候 17 年的专利有效期相对於科技的进步是相当短的。因为专利权只是制造商之间的问题,而且对他们而言,签一个专利合约的负担,和组织生产比较起来可以说很小,所以专利权对他们而言通常不会有什么伤害。他们没有妨碍到使用专利产品的个人。

古时候并没有知识产权的概念,那时在非文学的领域,作者常常大量引用他人的作品。这种做法是非常有用的,而且这也是很多作者的作品能够部份被保留下来的唯一途径。知识产权系统原是设立来鼓励创作的。在原先产生知识产权的领域(书籍)内,在只有出版公司才能很经济的大量复制的情况下,它并没有什么害处,并且没有妨碍到大部份的读者。

所有的知识产权只不过是社会所给予的权利,因为不管这个想法是否正确,一般认为给予这个权利可以对这整个社会有所帮助。但是在每一种个别状况下,我们必须思考:我们给予这些权利后真的变的更好了吗?我们到底给予了了什么权限?

以现在程序软件的情况而言,与一百年前的书籍的情况迥然不同。拷贝一个程序最简单的方法就是向邻近的人索取;一个程序有本质互异的原代码与目标代码;以及一个程序是拿来用的,而不是用来阅读与娱乐,这些事实结合在一起形成了一个特殊的情况:那就是一个人如果强行实施知识产权的话,就会对整个社会在物质上和精神上造成伤害。所以一个人不应该这样做,不管法律是否允许。

“竞争可以促进进步”

竞争的典型例子是赛跑:通过给予胜利者奖品,我们鼓励大家跑快一点。资本主义就是这样运作的,而且这种机制做的不错;但是他的支持者却犯了一个错误,就是假设这种机制永远是可行的。假设竞跑者忘了授予奖品的功用,而只求胜利的话,无论如何,他们可能会使用其他的手段——如,攻击其他的参赛者。如果赛跑变成了一场拳赛的话,那大家都会花更多的时间才会到达终点。

在道德上,软件的私有和不公开就相当於拳赛中的赛跑者。我很难过的说,目前发现的唯一调停者好像并不反对打架;他仅仅节制他们而已(“你每跑十码,就可以开一抢”)他真的应该把他们分开,然后惩罚那些甚至是意图打架的参赛者。

“会不会因为没有金钱上的触动而让大家都停止写程序了呢?”

实际上,有很多的人即使没有任何的酬劳也愿意写程序。写程序对某些人而言有着难以抗拒的吸引力,通常是那群很精通写程序人。就如同从来不缺乏坚持这种原则的专业级音乐家,即使这样做几乎不可能维持他们的生计。

但是虽然这个问题常常被问到,实际上却并不会发生。付费给程序员的状况不可能会消失,只是会变少而已。所以正确的问题应该是,有人愿意为一个较少的酬劳写程序吗?我的经验告诉我真的有人愿意。

有十多年的时间,很多世界级的顶尖程序设计者在 MIT 的人工智能实验室工作,所获得的报酬却远低於在别处所能得到的。他们得到了很多非金钱上的回抱,例如:名誉和赏识。而且创造也很有趣,乐趣本身就是一种报酬。

然而,当出现了一个既有乐趣,又能赚大钱的工作机会时,大部份的人就离去了。

这个事实显示了人还是会为了财富以外的东西写程序;但是如果有个赚大钱的机会,那他们就会期待、去争取它。工资低的组织的竞争力一定比工资高的组织差,但是如果禁止高薪政策的话那就不一定会差。

“我们非常迫切的需要程序员。如果他们要我们停止帮助邻近的夥伴的话,我们必须遵从”

你永远不会迫切到必须遵从这种要求的地步。记住一句话:宁愿花百防御,不花一分进贡。(millions for defense, but not a cent for tribute!)
?

“程序设计师也要设法维持生计啊!”

短期而言,这是对的。无论如何,程序员还有很多不需要贩卖软件使用权也可以维持生计的方法。贩卖软件使用权是目前普遍的方法是因为它帮程序员和商人赚最多的钱,而不是因为他是维持生计的唯一方法。如果你愿意找其他方法的话也很容易。这里就有几个例子:

一个制造新电脑的厂商,要支付移植操作系统到新机器的钱。

教学、软件维护等服务也需要程序员。

有新点子的人,可以把他们的程序以自由软件的形式发布,然后要求满意的用户捐献,或者是提供支持服务等。我已遇过用这种方法闯出一片天地的人了。

有相同需求的用户可以形成用户组,然后缴会费。一个团体可以和程序设计公司签合约,写一些该组织成员有兴趣使用的软件。 ?

各种的开发可以由软件税基金支持:

假设每个买电脑的人都要加付售价的 x% 作为软件税。然后政府把这笔钱交给一个类似 NSF 的组织来负责软件的开发。

但是如果电脑购买者对软件的发展有所贡献的话,那他可以减税。他可 以自己选择要捐赠哪个项目—通常选那些他最希望能够做到的计项目。减 税可以依贡献程度减到抵消掉全部的税为止。

而软件税率可依总纳税额决定,其比重可以由纳税人投票决定。

这样的结果是:

  • 电脑的用户团体支持软件的开发。
  • 此团体决定该需要什么样程度的支持。
  • 那些关心自己需求的项目的用户可以参加该项目的进行。

长远来看,免费提供软件是迈向大同世界的一步,在那个世界里没有人需要为了生计而辛勤工作。在每星期花固定的十小时做些必要的工作,如立法、家庭会议、修理机器人和探索小行星後,大家会有时间从事些有趣的活动,例如写程序。那时候就不须要靠写程序来过活了。

我们(利用现有的科技)已经大量减少了达到目前生产力所需要的工作量,但是只有其中的一部份转化成工作者的闲暇,因为要达到有生产力的活动往往伴随著很多没有生产力的活动。主要的原因是官僚式的繁文褥节对竞争的纠葛。自由软件的观念在软件的生产上可以大大的减少这些羁绊。为了使科技对生产力的增益能实质上减少我们的工作量,我们必须这么做。


注释

(1)? 这里的用字太粗心大意。本意是说,没有人必须为“可以”使用 GNU 系统而付费。但这里所用的文字却没有将这点说明清楚,所以一般被解释成 GNU 软件的传播只能索取很少费用或甚至是免费的,这并非本意;在本文稍后有提到出现以软件发布服务赚钱的公司的可能性。后来我就知道必须小心的区分“free”这个字当“自由”跟“免费”时的使用。“Free Software”是指用户可以自由散播及更改的软件。有些用户也许是免费拿到他们的软件,也有些是付费的——如果这些款项是用来支付软件的改进就更好了。重要的是,任何拥有软件的人有与其它人合作使用它的自由。

(2)? 这又是另一个我没能仔细区分“free”这个字两种不同意思的地方。这段叙述本身所代表的意思是没有错的——你可以通过你的朋友或从网络上,免费取得GNU 的软件。但它的确产生了误导。

(3)? 几家像这样的公司已经存在。

(4)? 虽然 Free Software Fundation 本身是慈善团体而非公司,但基金会靠提供服务来筹募经费。如果“没有人”选择由 FSF 订购软件,则基金会就无法运作。但这也不是限制每位用户付费。如果有一小部份的用户向 FSF 订购,则足够使基金会免於财务的困境。所以我们希望用户以这种方式来支持我们。你做了你的工作了吗?

(5)? 一些电脑公司最近集资赞助 GNU C Compiler 的后续开发。


posted @ 2005-09-28 23:33  jlins  阅读(319)  评论(0编辑  收藏  举报