1.1  Linux的起源和发展
Linux起源和发展是一段令人着迷的历史。这里面包含着太多颠覆“常理”的事件和思想,促成Linux成长壮大的“神奇”力量总是被人津津乐道,Linux所创造的传奇有时候让初次接触它的人感到不可思议。
1.1.1  Linux的起源
1991年,一个名不见经传的芬兰研究生购买了自己的第一台PC,并且决定开始开发自己的操作系统。这个想法非常偶然,最初只是为了满足自己读写新闻和邮件的需求。这个芬兰人选择了Minix作为自己研究的对象。Minix是由荷兰教授Andrew S. Tanenbaum开发的一种模型操作系统,这个开放源代码的操作系统最初只是用于研究目的。
这个研究生名叫Linus Torvalds,他很快编写了自己的磁盘驱动程序和文件系统,并且慷慨地把源代码上传到互联网。Linus把这个操作系统命名为Linux,意指“Linus的Minix”(Linus’ Minix)。
Linus根本不会想到,这个内核迅速引起了全世界的兴趣。在短短的几年时间里,借助社区开发的推动力,Linux迸发出强大的生命力。1994年,1.0版本的Linux内核正式发布。本书写作时,最新的稳定内核版本为2.6.27。
Linux目前得到了大部分IT巨头的支持,并且进入了重要战略规划的核心领域。一个非盈利性的操作系统计划能够延续那么多年,并且最终成长为在各行各业发挥巨大影响力的产品,本身就让人惊叹。在探究这些现象背后的原因前,首先来看一下Linux和UNIX之间的关系,这两个名词常常让人感到有些困惑。
1.1.2  追溯到UNIX
UNIX的历史需要追溯到遥远的1969年,最初只是AT&T贝尔实验室的一个研究项目。10年后,UNIX被无偿提供给各大学,由此UNIX成为众多大学和实验室研究项目的基础。
尽管UNIX被免费提供,但获取源代码仍然需要向AT&T交纳一定的许可证费用。1977年,加州大学伯克利分校的计算机系统研究小组(CSRG)从AT&T获取了UNIX的源代码,经过改动和包装后发布了自己的UNIX版本——伯克利UNIX(Berkeley UNIX),这个发行版通常被称为BSD,代表Berkeley Software Distribution(伯克利软件发行版)。
随着UNIX在商业上的蓬勃发展,AT&T的许可证费用也水涨船高。伯克利于是决定从BSD中彻底除去AT&T的代码。这项工程持续了一年多。到1989年6月,一个完全没有AT&T Unix代码的BSD版本诞生了。这是第一套由Berkeley发布的自由可再发行(freely-redistributable)的代码,所谓的“自由”颇有些“你知道这是我的东西就可以了”的味道。只要承认这是Berkeley的劳动成果,那么任何人就可以以任何方式使用这些源        代码。
1995年6月,4.4BSD-Lite发行,但这也是CSRG的绝唱。此后,CSRG因为失去资金支持而被迫解散。但BSD的生命并没有到此终结。目前大多数的BSD UNIX的版本,例如FreeBSD、OpenBSD等等都是从4.4BSD-Lite发展过来的,并且延续了它的许可证      协议。
与此同时,另一些UNIX版本则沿用了AT&T的代码,这些UNIX系的操作系统包括HP-UX、Solaris等。
简单地说,Linux是对UNIX的重新实现。世界各地的Linux开发人员借鉴了UNIX的技术和用户界面,并且融入了很多独创的技术改进。Linux的确可以被称作UNIX的一个变体,但从开发形式和最终产生的源代码来看,Linux不属于BSD和AT&T风格的UNIX中的任何一种。因此严格说来,Linux是有别于UNIX的另一种操作系统。
1.1.3  影响世界的开源潮流
Linux的发展历程看起来是一个充满传奇色彩的故事。特别是,为什么有如此多的人向社区贡献源代码,不索取任何酬劳并任由其他人免费使用?“因为他们乐于成为一个全球协作努力活动的一部分”,Linus这样回答说。开源成为了一种全球性的文化现象,无数的程序员投身到各种开源项目中,并且乐此不疲。
事实上,社区合作已经成为了被广泛采用的开发模式。Linux、Apache、PHP、Firefox等业界领先的各类软件产品均使用了社区开发模式并采用某种开源许可协议。包括Sun、IBM、Novell、Google甚至Microsoft在内的很多商业公司都拥有自己的开放源代码社区。
有意思的是,开放源代码的思想不仅仅根植于程序员的头脑中,更重要的是,社区合作演变成为了一种互联网文化。见证了维基百科等产品的巨大成功,人们发现,用户创造内容这种所谓的Web2.0模式从本质上是同开源思想一脉相承的。
已经有了多种不同的开放源代码许可证协议,包括BSD、Apache、GPL、MIT、LGPL等。其中的一些比较宽松,如BSD、Apache和MIT,用户可以修改源代码,并保留修改部分的版权。Linux所遵循的GPL协议相对比较严格,它要求用户将所作的一切修改回        馈社区。关于开源协议的讨论常常是一个法律问题,一些法律系的学生会选择这方面的       主题作为自己的毕业论文。在Google中输入关键字“开源协议”可以得到非常详尽的      解答。
1.1.4  GNU公共许可证:GPL
GNU来源于20世纪80年代初期,Richard Stallman在软件业引发了一场革命。这个人坚持认为软件应该是“自由”的,软件业应该发扬开放、团结、互助的精神。这种在当时看来离经叛道的想法催生了GNU计划。截至1990年,在GNU计划下诞生的软件包括文字编辑器Emacs、C语言编译器gcc以及一系列UNIX程序库和工具。1991年,Linux的加入让GNU实现了自己最初的目标——创造一套完全自由的操作系统。
GNU是GNU’s Not UNIX(GNU不是UNIX)的缩写。这种古怪的命名方式是计算机专家们玩的小幽默(如果觉得这一点都不好笑,那么就不要勉强自己)。GNU公共许可证(GNU Public License,GPL)是包括Linux在内的一批开源软件遵循的许可证协议。下面来关心一下GPL中到底说了些什么(这对于考虑部署Linux或者其他遵循GPL的产品的企业可能非常重要)。概括说来,GPL包括下面这些内容。
q      软件最初的作者保留版权。
q      其他人可以修改、销售该软件,也可以在此基础上开发新的软件。但必须保证这份源代码向公众开放。
q      经过修改的软件仍然要受到GPL的约束——除非能够确定经过修改的部分是独立于原来作品的。
q      如果软件在使用中引起了损失,开发人员不承担相关责任。