当前位置: 首页 > 工具软件 > GNU Ada > 使用案例 >

Richard Matthew Stallman和GNU

宋飞文
2023-12-01

理查德·马修·斯托曼(Richard Matthew Stallman, RMS,生于1953年),自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者、著名黑客。他的主要成就包括Emacs及后来的GNU Emacs,GNU C 编译器及GNU 调试器。 他所写作的GNU通用公共许可证(GNU GPL)是世上最广为采用的自由软件许可证,为copyleft观念开拓出一条崭新的道路。他最大的影响是为自由软件运动竖立了道德、政治以及法律框架。他被许多人誉为当今自由软件的斗士、伟大的理想主义者。

GNU的故事

斯托曼1953年出生于美国纽约曼哈顿地区,1971年进入哈佛大学学习,同年受聘于麻省理工学院人工智能实验室(AI Laboratory),成为一名职业黑客。 在AI实验室工作期间,斯托曼开发了多种今后影响深远的软件,其中最著名的就是Emacs。斯托曼在AI是一名典型的黑客,是整个黑客文化的一份子。

然而进入八十年代后,黑客社群在软件工业商业化的强大压力下日渐土崩瓦解,甚至连AI实验室的许多黑客也组成了Symbolic公司,试图以专利软件来取代实验室中黑客文化的产物--免费可自由流通的软件。

斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后,他于1985年发表了著名的GNU宣言(GNU Manifesto),正式宣布要开始进行一项宏伟的计划:创造一套完全自由免费,兼容于Unix的操作系统GNU(GNU’s Not Unix!)

1984年1月,斯托曼已启动了GNU计划,他担心MIT会要求产品的所有权,会给产品强加入他们的销售条件,最终又会成为专有软件,因而他辞去了MIT工作。辞职后,他为买不起电脑而发愁时,发现自己原来在人工智能实验室的办公室,还没有分给其他人用时,他就每天晚上溜进去工作。

GNU工程启动后,斯托曼听说有一个自由大学编译器套件(VUCK)。他去询问能否用入GNU。答复是嘲弄式的,说对大学是自由的,但对软件本身不行。于是,他决定为GNU编写的第一个软件就是一个多语言、多平台的编译器。他想利用Pastel编译器的源代码,但最终放弃。他从头编写了新的编译器,名为GCC(the GNU Compiler Collection)

1984年9月,斯托曼开始开发字处理器GNU Emacs,1985年初,它开始可以工作。这使它可以在Unix系统上进行文本编辑。此时,许多人想使用Emacs,因此一个现实的问题是:如何传播它?

当然,他将其放到了MIT计算机的匿名服务器上。但那时互联网还未普及,人们很难通过FTP获得拷贝,而且失业的斯托曼也需要收入。于是,他宣布任何人都可以用150美元的价格获得全部程序。当然,所支付的费用是远低于当时的专有软件的价格的,并且用户可以得到软件的源代码。这样,自由软件的分销商业模式就此诞生。如今,整个基于Linux的GNU系统都是如此。

由于Emacs的成功,斯托曼设立了一个基金会:自由软件基金会(Free Software Foundation,FSF)

他于1989年与一群律师起草了广为使用的GNU通用公共协议证书(GNU General Public License, GNU GPL),为了防止不肖厂商利用自由软件,使其专有化,创造性地提出了“反版权”(或“版权属左”,或“开权”,copyleft)的概念,让所有的GNU程序遵循一种“Copyleft”原则,即可以拷贝,可以修改,可以出售,只是有一条:源代码所有的改进和修改必须向每个用户公开,所有用户都可以获得改动后的源码。Copyleft保证了自由软件传播的延续性。

GNU工程激励了许许多多年轻的黑客,他们编写了大量自由软件,GNU计划中除了最关键的Hurd操作系统内核之外,其他绝大多数软件已经完成。

1991年芬兰大学生Linus Torvalds在GPL条例下发布他自己创作的Linux操作系统内核,至此GNU计划正式完成,操作系统被命名为GNU/Linux(或简称Linux)

Linux把所有GNU软件和硬件连接了起来,但Linux并不能代表整个操作系统,Linux只是个内核,整个系统还包含数以百计的软件工具和实用程序,大多是由GNU黑客们完成。

斯托曼是一名坚定的自由软件运动倡导者与其他提倡开放源代码的人不同,斯托曼并不是从软件质量的角度而是从道德的角度来看待自由软件。他认为使用专利软件是非常不道德的事,只有附带了源代码的程序才是符合其道德标准的。斯托曼希望,有一天软件业者不是靠的 “Copyright”版权法,迫使客户花费巨额资金购买软件,而是依仗提供服务(如技术支援、训练)来获取应得的报酬。简言之,未来软件业的基本准则就是“资源免费,服务收费”。对此许多人表示异议,并也因此有了自由软件运动与开源软件运动之分,与斯托曼持不同政见者将“自由软件”这个名字改成了“开源软件”,看起来好像两者兼容,但斯托曼认为,两者最大的区别就是自由软件将自由精神放在首位。但是对商人来说,自由(free)与免费(free)是同一个词。与斯托曼布道的“自由精神”不同,他们更愿意谈论实际问题,也就是能不能赚到利润的问题。。

关键词

1、GNU:读作"革奴",是一个自由的操作系统,其内容软件完全以GPL方式发布。这个操作系统是GNU计划的主要目标,名称来自GNU’s Not Unix!的递归缩写,因为GNU的设计类似Unix,但它不包含具著作权的Unix代码。作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU的内核,称为Hurd,是自由软件基金会发展的重点,但是其发展尚未成熟。在实际使用上,多半使用Linux内核FreeBSD等替代方案,作为系统核心,其中主要的操作系统是Linux的发行版。Linux操作系统包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux(见GNU/Linux命名争议)。

2、GCC(the GNU Compiler Collection):GCC是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC的初衷是为GNU操作系统专门编写一款编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,甚至在微软的Windows上也可以使用GCC。原名为GNU C语言编译器(GNU C Compiler),只能处理C语言。但其很快扩展,变得可处理C++,后来又扩展为能够支持更多编程语言,如Fortran、Pascal、Objective -C、Java、Ada、Go以及各类处理器架构上的汇编语言等,也包括了这些语言的库(如libstdc++,libgcj等),所以改名GNU编译器套件(GNU Compiler Collection)。

虽然我们称GCC是C语言的编译器,但使用gcc由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)

3、自由软件基金会(Free Software Foundation,FSF):自由软件基金会是一个致力于促进和保护计算机用户自由的非营利性组织,从其建立到1990年代中自由软件基金会的基金主要被用来雇用编程师来发展自由软件。从1990年代中开始写自由软件的公司和个人太多了,因此自由软件基金会的雇员和自愿者主要在自由软件运动的法律和结构问题上工作。

4、GNU通用公共协议证书(GNU General Public License, GNU GPL):

GNU 包含3个协议条款,

  • GPL:GNU通用公共许可证(GNU General Public License)

  • LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License), ) ,旧称 GNU Library General Public License (GNU 库通用公共许可证);

  • GFDL : GNU自由文档许可证(GNU Free Documentation License )的缩写形式。

详细的资料对比可以查看关于开源授权协议 GPL 和 LGPL

关于本文

参考资料百度百科

 类似资料: