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之间的关系,这两个名词常常让人感到有些困惑。
追溯到UNIX
UNIX的历史需要追溯到遥远的 1969年,最初具只是AT&T贝尔实验室的一个研究项目。10年后,UNIX 被无偿提供给各大学,由此 UNIX 成为众多大学和实验室研究项目的基础。
尽管 UNIX 被免费提供,但获取源代码仍然需要向 AT&T交纳一定的许可证费用。1977年,加州大学伯克利分校的计算机系统研究小组(CSRG)从 AT&T 获取了 UNIX 的源代高,经过改动和包装后发布了自己的 UNIX 版本--伯克利UNIX(BerkeleyUNIX),这人发行版通常被称为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 的另一种操作系统。
影响世界的开源潮流
Linux 的发展历程看起来是一个充满传奇色彩的故事。特别是,为什么有如此多的人向社区贡献源代码,而不索取任何酬劳并任由其他人免费使用?“因为他们乐于成为一个球协作努力活动的一部分”,Linus 这样回答说。开源成为了一种全球性的文化现象,无数的程序员投身到各种开源项目中,并且乐此不疲。
事实上,社区合作已经成为了被广泛采用的开发模式。Linux、Apache、PHP、Firefox等业界领先的各类软件产品均使用了社区开发模式并采用某种开源许可协议。包括 Sun、 IBM、Novell、Google 甚至 Microsoft 在内的很多商业公司都拥有自己的开放源代码社区。
有意思的是,开放源代码的思想不仅仅根植于程序员的头脑中,更重要的是,社区合作演变成为了一种互联网文化。见证了维基百科等产品的巨大成功,人们发现,用户创造内容这种所谓的 Web 2.0 模式从本质上是同开源思想一脉相承的。
已经有了多种不同的开放源代码许可证协议,包括 BSD、Apache、GPL、MIT、LGPL等。其中的一些比较宽松,如 BSD、Apache 和 MIT,用户可以修改源代码,并保留修改部分的版权。Linux 所遵循的 GPL 协议相对比较严格,它要求用户将所作的一切修改回贵社区。关于开源协议的讨论常常是一个法律问题,一些法律系的学生会选择这方面的主题作为自己的毕业论文。在百度中输入关键字“开源协议”可以得到非常详尽的解答。
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 包括下面这些内容:
软件最初的作者保留版权。
其他人可以修改、销售该软件、也可以在此基础上开发新的软件,但必须保证这份源代码向公众开放。
经过修改的软件在使用中引起了损失,开发人员不承担相关责任。
完整的GPL协议可以在互联网上通过各种途径如GNU的 官方网站获得,GPL协议已经被翻译成中文,读者可以在百度中搜索“GPL”获得相关信息