1.1 GNU-Linux联姻
作为底层软件的操作系统,要负责任务调度、内存分配和处理计算机外围硬件(如打印机、磁盘驱动器、显示器、键盘和鼠标)的接口。它主要由两部分组成:内核和系统程序。内核是为运行在计算机上的其他程序分配计算机资源,如内存、磁盘空间和CPU周期等。系统程序则完成较高层次的日常维护工作,通常在客户机/服务器关系中扮演服务器角色。Linux是Linus Torvalds在1991年向世界宣布的系统内核的名称。自那以后,很多人都加入到了对该系统的改善、拓展、提高稳定性和安全性的工作中。
1.1.1 GNU-Linux的历史
本节主要介绍GNU和Linux的联姻历史。
1. 回顾1983年
Richard Stallman(www.stallman.org)宣布 要开发一个包含内核和系统程序在内的操作系统的GNU项目,并且作出了GNU声明 ,该声明是这样开始的:
GNU,仅代表GNU自身而非UNIX,是一个完全与UNIX兼容的软件系统,开发此系统是为了可自由地分发给每个能使用它的用户。
过了一些年后,Stallman意识到上面的话容易引起误解,于是就对其加上了如下脚注:
这里的措辞不够严谨。我们的本意是没有用户为获得GNU系统的使用权而必须付费。但是好像没有表达清楚这一点,使有的用户这样理解:GNU副本的发布将收取很少的费用或者不收费。这绝不是我们本来的意图。接下来的声明中会提到,提供发布服务的公司可获得利润。后来,我对free一词作为“自由”和作为“免费”两种不同理解进行了仔细地区分。自由软件是指用户可自由修改和发布的软件。用户可免费获得软件,也可为软件付费,这部分基金将有助于软件的改善提高,当然是越多越好。这里“自由”强调的是拥有软件副本的每个用户,在使用软件的同时可自由地同其他用户交流合作。
声明中,Stallman在对这个项目和迄今为止所取得的进展说明之后,继续说到:
我为什么要开发GNU系统?
我信奉的一句箴言是:如果我喜欢一个程序,那么就必须同其他喜欢这个程序的人一起分享。软件销售商想离间用户并征服他们,使得每个用户都不同意与其他用户来共享软件。我拒绝采用这种方式来破坏用户间的团结。我不能昧着良心签署不可告人的协议和软件许可协议。多年来,我一直都工作在人工智能(Artificial Intelligence,AI)实验室来抵制这种趋势及其他冷漠的做法,但最终他们的做法实在让我难以忍受,我再也不能生活在一个与我的意愿相违背的制度下。
为了能在名誉不受损的情况下继续使用计算机,我决定将足够多的自由软件组织起来,以使得在没有免费软件时工作仍然可以开展。我已经从AI实验室辞职,以防止MIT(麻省理工学院)任何阻止我发布GNU的合法借口。
2. 下一场景,1991
GNU项目正很好地朝着目标发展着。除内核外,GNU操作系统的大部分都已经完成。Richard Stallman后来写到:
20世纪90年代早期,我们已经将除内核外的整个系统组织起来了。当时,我们也正在开发一个称为GNU Hurd 的内核,该内核运行在Mach 之上。开发此内核的过程要比我们当初料想的困难许多,但我们绝不会放弃,直到把它完成 。
……一些人认为一旦Linus Torvalds完成了内核的开发,他的朋友再四处寻找一些其他自由软件,那么,毫无疑问,开发一个类UNIX系统的大部分必需工作都已完成。
他们所找到的必然是GNU系统。可获得的自由软件 已经可以构成一个完整的系统,因为GNU Project自1984年就开始了。最初的GNU声明中就树立了开发一个类UNIX的GNU系统的目标。GNU最初的公告给出了GNU系统计划的雏形。直到Linux的出现,GNU系统才接近尾声 。
现在,GNU“操作系统”运行在FreeBSD(www.freebsd.org)、NetBSD(www.netbsd.org)、之前发行的Hurd、Darwin(developer.apple.com/darwin)4个内核之上,前两个内核与Linux二进制具有兼容性,而后两个则没有。
1.1.2 自由代码
自由软件的传统可追溯到UNIX系统以象征性的价格向大学发布的那段日子,这促成了它的成功和可移植性。然而,当UNIX被商业化,制造商将源代码作为版权所有,使得其他人不能获得,自由软件的传统至此结束。UNIX商业版本的另一个问题与其复杂性有关。当制造商们将UNIX调整为某种特定的体系结构时,该系统的可移植性变差,并且不再适用于讲授和试验。
MINIX 在UNIX系统的基础上,Doug Comer教授开发了XINU(www.cs.purdue.edu /research/ xinu.html),Andrew Tanenbaum教授开发了MINIX(www.cs.vu.nl/~ast /minix.html),这两个系统看起来教育应用的意图更强些。Linus Torvalds克服了MINIX的缺点,开发了Linux。为了使得MINIX便于讲授,当需要在代码的简洁性和高效性之间作出选择时,Tanenbaum选择了前者,这意味着MINIX系统缺乏用户需要的某些功能。而Linux选择后者来完成开发。
通过Internet可免费获得Linux系统,也可通过邮寄,支付一定的材料费和运输费获得GNU代码,还可高价购买GNU代码,以支持自由软件的发展。可购买商业发行版的Linux压缩包,其中包括安装说明、软件和技术支持。
GPL Linux和GNU软件是在GNU 公用许可协议(General Public License,GPL)下发布的(www.gnu.org/licenses/licenses.html)。GPL表示在协议许可范围内可拥有代码的复制、修改和重新发布的权利,但在重新发布代码的同时要发布相同的代码许可,代码和许可不能分离。如果在遵照GPL协议情况下,从Internet上下载某段程序的源代码后,修改了代码,并且重新发布了程序的可执行版本,那么,必须同时发布修改后的代码和GPL协议。因为这是正常版权运作过程的逆过程,该过程给予权利而非做限制,用术语copyleft表示(此段不是对GPL的合法解释,只对其工作机制作了简单介绍。当要使用GPL时,请参照GPL文档)。
1.1.3 Linux的关键
Linux的关键在于两个单词——Have Fun!——在提示和文档中时有出现(注:Have Fun表示“有趣”之意)。UNIX(现在是Linux)文化弥漫着一种幽默感,这在整个系统中都能感觉到。例如,用less来表示更多的意思,GNU用工具less替代UNIX的翻页工具more;查看PostScript文档的工具称为ghostscript;某个vi编辑器的替代工具被称为elvis;一些使用Intel处理器的计算机外面贴上了Intel Inside标志,一些Linux计算机上也贴上了Linux Inside标志,并且有人还看到Torvalds本人穿着带有Linus Inside标志的T恤衫。
| 回书目 上一节 下一节 |