自由软件运动与GNU项目

自由的追求

【内容摘要】
  自由软件意味着自由的权利,而不仅仅是免费获取软件的能力。自由软件的本质:“使用者可以以任何目的运行程序、研究该软件如何开展工作、重新分发拷贝,此外还可以向公众重新发布它的原版或修改版。”


  理查德·马修·斯托曼(Richard Matthew Stallman,简称RMS)是自由软件之父,他是自由软件运动的精神领袖、GNU计划以及自由软件基金会的创立者。作为一个著名的黑客,他的主要成就包括Emacs及后来的GNU Emacs、GNU C编译器及GDB调试器。他编写的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。

自由软件运动与GNU项目_第1张图片

图1. Richard Matthew Stallman

  提起自由软件运动,人们总是不由想起比尔·盖茨和理查德·斯托曼。也许在此之前你并不知道理查德·斯托曼是谁,但你肯定知道比尔·盖茨。概括来说,比尔·盖茨是微软公司的创始人,软件版权制度的受益者,世界上的头号富翁;理查德·斯托曼是自由软件基金会的创始人,自由软件运动的领袖。
  比尔·盖茨和理查德·斯托曼,一个疾呼保护版权,打击盗版;另一个提倡自由复制,源码共享。他们是软件世界的两极,一个代表金钱,另一个代表自由。他们是针锋相对的两方。但是,他们的人生又是如此相似。他们的年龄相仿,都在大城市出生和长大,都进了哈佛大学,最早都是程序员。因为后来一些偶然的事件,使他们选择了不同的信念,走上了不同的道路。
  在计算机工业的发展史上,是先有硬件,再有软件的。最早的软件都是由硬件厂商编写,附在硬件上一起发售的。通常,这些软件本身都是免费的,代码可以被共享。但是,从上个世纪70年代起,随着硬件平台的成熟,导致硬件价格不断下跌,制造商开始期望软件能够带来额外的收入。于是,开始出现种种保护软件、对其收费的措施,越来越多的厂商开始单独销售软件,也不再提供软件的源代码,软件工业开始独立出来了。
  1976年,比尔·盖茨发表了“致计算机爱好者的公开信”。当时他21岁,两年前刚刚从哈佛大学退学,为一种叫“MITS Altair”的小型计算机全职工作,开发可以在其上运行的一种BASIC语言版本。他写这封公开信的目的就是为了谴责盗版,因为有人把他写的软件视为共享品,而在非法拷贝。他写道:
  “大多数地计算机爱好者心里一定清楚,你们当中地许多人都盗窃别人的软件。硬件是一定要付钱的,而软件却成了要共享的东西。有谁会在于编写软件的人是不是得到了应有的报酬呢?”……他接着声称,这种盗版行为的后果只会阻碍大家去编写好的软件。最后,他反问道:“有谁肯去做一无所获的技术工作?又有哪一位计算机爱好者愿意投入三年的工作量用于编程、纠错、撰写产品文档,最后却免费发布其产品?”
  后来的事情都已经成了历史,他提倡的软件版权专有模式获得了胜利。微软公司成了巨无霸,他本人成了亿万富翁。但是,并不是每一个人都认同这种模式的。程序员不再能自由得到和交流代码,让很多人感到非常无奈。更有人认为这是一种阻碍自由进步、禁锢思想、抑制创造的犯罪,从而立志要反抗它。理查德·斯托曼就是一个这样的人。
  斯托曼1953年出生于纽约,比盖茨大两岁。1970年进入哈佛大学,1974年以优异成绩毕业于物理学专业,而这一年刚好就是盖茨从哈佛大学退学的那一年。在大学期间,斯托曼就为麻省理工学院的人工智能(AI)实验室工作,充当程序员。毕业以后,他继续留在那里。在人工智能实验室,斯托曼已经进行了很多自由软件的开发,感到需要一个更大的团队。但是,一次实验室设备的更新让他感受到MIT的专利软件LispOS和他的理念格格不入。并且,一家软件公司买走了他们使用的软件的版权,挖走了计算中心的程序员,最后只剩下了斯托曼和另一个人,无事可干。
  他为专有软件的增长和随之而来的用户不再能够修改他们电脑上的程序而忧心忡忡。软件开发者被束缚,有悖自由精神的现象随之普遍发生。从这件事以后,斯托曼就决心发起自由软件运动,提供开放源码的软件,让所有人自由使用,把使用软件的自由还给程序员。在1983年春天,斯托曼发起了GNU项目,旨在开发一个自由的类Unix的操作系统。GNU 项目的创立,标志了自由软件运动的开始。GNU是“GNU’s Not Unix”的无穷递归缩写,意为GNU不是UNIX(注:Gnu在英文中原意为非洲牛羚,发音与new相同)。目标是构建一整套完全由自由软件构成的UNIX OS体系。

自由软件运动与GNU项目_第2张图片

图2. GNU的牛头标志

  最初,他几乎是一个人与整个业界对抗,他既无钱也无权,唯一有的只是理想。他知道自己的目标几乎是一个不可完成的任务。它需要极度的投入和牺牲,这可能也正是它的魅力所在。正因如此,GNU项目一开始只是开发在UNIX上运行的自由软件。他先写了一些软件,免费提供他人使用,以此打开了GNU的知名度。他后来回忆道,“我没有把握完成这项工作,但是对我来说,知道是否能完成这项工作并不重要。关键在于,我已经开始行动了”。
  后来,斯托曼靠出售Emacs的磁带赚了点小钱,于是在1985年10月,创立了自由软件基金会(Free Software Foundation, FSF)。说是基金会,实际上根本没多少钱。斯托曼本人睡在计算中心的办公室里,当时他根本没有把握自己能获得收入。他说,“关键在于,我已经下定决心要干这件事了,那时候没有什么能够阻止我”。
  同在1985年,自由软件基金会发布了“自由软件通用许可证”,即GPL。这个许可证开头第一句这样写道:“大多数软件的许可证,设计用来剥夺你分发和修改它们的自由。GPL许可证与此恰恰相反,它就是为了保护你分发和修改自由软件的自由,确保这些软件对所有用户都是自由的。”总的来说,GPL许可证允许你做所有的事情,除了限制别人的自由。任何采用它的软件就是自由软件。
  后来,斯托曼与志同道合者开发出了GCC(GNU C Compiler)编译器。这是一个伟大的编译器,不仅自由免费,而且比其他商用专利编译器性能都要好。如今的GCC不仅能够支持C的编译,还能支持C++、Java等多种程序设计语言的编译。GNU的拳头产品,大概在1990年左右全部发布:Emacs、GCC、GLIBC、Bash shell。GNU的所有产品为了反专利,都使用GPL(General Public License)。因为GNU的理念是“版权制度是促进社会进步的手段,版权本身不是自然权利。”而这恰恰和比尔·盖茨那封著名的信真是相映成趣。
  比尔·盖茨曾经说过,“有谁肯去做一无所获的技术工作?又有哪一位计算机爱好者愿意投入三年的工作量用于编程、纠错、撰写产品文档,最后却免费发布其产品?”现在,他应该知道他错了,这样的人是存在了。自由软件运动至少证明了一点,在和金钱的较量中,热爱自由的人们不一定会输。
  自由软件的概念提出以来,在世界范围内的影响越来越大,越来越多的程序员加入了自由软件运动。以Linux为代表的一个完整的操作系统已经形成,在性能上完全可以替代、并且超过了微软的Window系统。这证明了无数志愿者出于兴趣和理想的无偿劳动和奉献,也完全可以做出最复杂的、质量第一流的工作。
  现在,虽然自由软件基金会已经发展壮大了。但是,斯托曼依然过着简朴的生活。他没有自己的汽车,住在租来的房子里,也没有结婚没有孩子,因为他觉得那样会变成挣钱的奴隶。他说,“自由软件运动的目的就是使得人们可以在不接受其他什么人统治的前提下,使用计算机,如果我一直在开发经营性软件,我就是在把自己的人生用来建造囚禁他人的监狱”。(斯托曼的征婚广告:http://stallman.org/extra/personal.html)
  附上一张有点意思的照片:

自由软件运动与GNU项目_第3张图片

图3. Richard Stallman和Julian Assange共同拿着Snowden的照片

  最后,引用英国IT作家Glyn Moody的一句话:“自由软件不仅仅是关于软件代码的,它们也与自由、分享有关,与社会有关。它们与创造有关,与美有关。这些代码深处寄托着我们最美好的心愿以及对最丑恶的东西的反抗,它将和人们的恒心共久长。”


  更多关于自由软件运动及理查德·斯托曼的介绍,可以查阅《FREE AS IN FREEDOM》一书,此书中文名为《若为自由故》。值得一提的是,这本书使用的是GFDL许可证(GNU Free Documentation License),也就是说,这是市面上极为少有的一本“自由”图书。在GFDL条款的保护下,读者可以自由地复制、分发和修改本书。可以访问http://faifchs.github.io/获取本书(中文)的电子版本,读者可以像给自由软件打补丁那样为该书打补丁,将Free as in Freedom的故事延续下去。当然你也可以阅读英文原版http://www.oreilly.com/openbook/freedom/。
  另外,推荐阅读《The Cathedral & the Bazaar》,中文名为《大教堂与集市》。这本书被称为开源运动的《圣经》,颠覆了传统的软件开发思路,影响了整个软件开发领域。作者Eric S. Raymond是开源运动的旗手、黑客文化第一理论家,他讲述了开源运动中惊心动魄的故事,提出了大量充满智慧的观念和经过检验的知识,给所有软件开发人员带来启迪。


  这个故事告诉我们:当你决定坚持一件事情,全世界都会为你让路。

你可能感兴趣的:(Linux系统运维,Linux系统运维,自由软件,gnu)