开源、自由软件和 Linux 三者是容易混淆的概念。他们互有联系,但发展过程有着明显的不同。
自由软件运动
二十世纪六十年代,IBM 等公司所开发的软件都是自由分发的。那个时候的商业模式都是以硬件为中心,软件只是被看作使硬件工作的东西。他们提供软件的同时也提供源代码,软件可以被修改并因此得到改进,这便是现在开源软件的早期情况。但是,随着硬件价格的不断下跌,销售硬件的利润也逐渐减小,制造商开始期望软件能够带来额外的收入。越来越多的厂商开始单独销售软件,也不再提供软件的源代码。
1983年春天,Richard Matthew Stallman,这位曾经在 MIT 人工智能实验室工作的程序员,发起了 GNU 项目,旨在开发一个自由的类 Unix 的操作系统。他为专有软件的增长和随之而来的用户不再能够修改他们电脑上的程序而忧心忡忡。软件开发者被束缚,有悖自由精神的现象随之普遍发生。GNU 项目的创立,标志了自由软件运动的开始,随后的 1985年10月,Stallman 又创立了自由软件基金会(Free Software Foundation, FSF)。
Stallman 首先提出了开源软件的定义和特征,以及 Copyleft 的概念。他是很多 Copyleft 许可证的主要作者,包括使用最广泛的自由软件许可证—— GNU 通用公共许可证(GNU General Public License, GPL)。
小提示
Copyleft 与 Copyright 相对应,它来源于英语中 left 和 right 有“左”和“右”这对相的反意思,这种表达方式意在表明自由软件版权精神与传统版权思想的明显不同。Copyleft 并不是一种许可证,也不是对版权概念的反对或否定;不仅如此,它还是帮助使用法律保护自由软件版权和生态的一种重要方法。Copyleft 用于形容某些自由软件的许可证,这些许可证的共同特点是:其他软件如果使用了基于这些许可证中任意一个所发布的软件的源代码(包括附属于代码本身的图片、文档等),那么使用这些源代码的软件也必须采用相同或者与之兼容的许可证发布。Copyleft 性质的许可证使自由软件开发者的成果按照其意愿保持在自由软件体系内部自由传递,同时不被专有软件任意使用,借此使得自由软件在同专有软件的竞争中获得优势。
更详细的内容请查看 GNU 项目网站上给出的对 Copyleft 的定义:http://www.gnu.org/copyleft/copyleft.html
到了 1991年,很多 GNU 工具都被开发了出来,包括强大的 GNU 编译器套件(GNU Compiler Collection, GCC)。软件需要运行操作系统之上,但是,创造一个自由的操作系统的所必不可少的部分——自由的内核,却还没有开发出来。
开源运动与 Linux
自由软件和开源之间的区别可以理解成社会运动(自由软件)和软件开发方法(开源)之间的区别。Linux 则是一个内核,是开源软件体系中的关键软件之一。
1991年8月,Linus Benedict Torvalds,这位芬兰赫尔辛基大学计算机科学专业的一个大二学生,开始研究 Minix 。
图 1.1. Linus Benedict Torvalds
小提示
Minix 是一个开源的类 Unix 操作系统,是 Andrew S. Tanenbaum 教授为了便于教授操作系统的内部流程而开发的。
Linus Torvalds 最初想把 Linux 设计成一个类似 Minix 的操作系统使之能运行于自己的家用计算机上。在九月中旬时, Torvald 发布了第一个版本—— Linux 0.01。1994年,Linus 第一次采用 GNU 通用公共许可证(GPL),发布了 Linux 的 1.0 版本。GNU 工具集连同这个自由的内核给爱好者提供了一个极富潜力的环境。为了和 UNIX 保持相似,Linux 首先提供了一个命令行界面;此后,X 窗口系统的加入使图形用户界面成为现实。
小提示
Linux 不隶属于任何个人或公司,甚至不属于开创 Linux 的 Linus Torvalds 本人。但是,Torvalds 在内核开发过程中做了大量工作,并且拥有 Linux 这个商标。
Linux 开放源代码:
可以被任何人获取和使用
可以根据个人的要求和所使用的平台定制
可以自由地以当前或修改的形式重新发布
最开始,Linux 是技术性非常强的开发工具。但是随着成千上万的开发者加入到改进它的行列,为它的发展做出贡献,对于用户它变得越来越友好。于是现在有数百种商业和非商业的为日常使用设计的发行版。
1998年,Jon “maddog” Hall 、Larry Augustin、Eric S. Raymond 和 Bruce Perens et al 正式开始了开放源码运动。他们以各自卓越的专业基础极大地推动了这项运动的发展。
图 1.2. 开放源码运动的发起者
开放源码运动和 1990 年代末的互联网的兴起一起造就了 Linux 的流行,随后出现了很多支持开源的公司,如 Corel (Corel Linux)、Sun Microsystems (OpenOffice.org)、IBM (OpenAFS)。在 21世纪初,互联网泡沫破碎,开源软件作为昂贵的专有软件的可行替代品被推到重要的位置上。大量易用的应用程序的出现更使它的发展势头进一步增强。
就这样,一个想法变成了变革这个充满专利和授权的行业的激情。显著的价格优势和更强大的功能使 Linux 已经成为商业和家庭用户的可行选择。