10.1.7 Linux

在互联网上关于MINIX的讨论和发展的早期,很多人请求(在很多情况下是要求)添加更多更好的特性。对于这些请求作者通常说“不”(为使系统足够小,使学生在一个学期的大学课程中就能完全理解)。持续的拒绝使很多使用者感到厌倦。但当时还没有FreeBSD,因此这些用户没有其他选择。这样的情况过了很多年,直到一位芬兰学生Linus Torvalds决定编写另外一个类UNIX系统,称为Linux。Linux将会是一个完备的系统产品,拥有许多MINIX一开始缺乏的特性。Linux的第1个版本0.01在1991年发布。它在一台运行MINIX的机器上交叉开发,从MINIX借用了从源码树结构到文件系统设计的很多思想。然而它是一种整体式设计,将整个操作系统包含在内核之中,而非MINIX那样的微内核设计。Linux0.01版本共有9300行C代码和950行汇编代码,大致上与MINIX版本大小接近,功能也差不多。事实上,Linux就是Torvalds对MINIX的一次重写,当时,他也只能得到MINIX系统的源代码了。

当加入了虚拟内存、一个更加复杂的文件系统以及更多的特征之后,Linux的大小急速增长,并且演化成了一个完整的UNIX克隆产品。虽然,在刚开始,Linux只能运行在386机器上(甚至把386汇编代码嵌入到了C程序中间),但是很快就被移植到了其他平台上,并且现在像UNIX一样,能够运行在各种类型的机器上。尽管如此,Linux和UNIX之间还是有一个很明显的不同:Linux利用了gcc编译器的很多特性,需要做大量的工作,才能使Linux能够被ANSI标准C编译器编译。

接下来的一个主要的Linux发行版是1994年发布的版本1.0。它大概有165 000行代码,并且包含了一个新的文件系统、内存映射文件和可以与BSD相容的带有套接字和TCP/IP的网络。它同时也包含了一些新的驱动程序。在接下来的两年中,发布了几个轻微修订版本。

广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元

到这个时候,Linux已经和UNIX充分兼容,大量的UNIX软件都被移植到了Linux上,使得它比起以前具有了更强的可用性。另外,大量的用户被Linux所吸引,并且在Torvalds的整体管理下开始用多种方法对Linux的代码进行研究和扩展。

之后一个主要的发行版,是1996年发布的2.0版本。它由大约470 000行C代码和8000行汇编代码组成。它包含了对64位体系结构的支持、对称多道程序设计、新的网络协议和许多的其他特性。一个可扩展设备驱动程序集占用了总代码量的很大一部分。随后,很快发行了另外的版本。

Linux内核的版本号由四个数字组成,A.B.C.D,如2.6.9.11。第一个数字表示内核的版本。第二个数字表示第几个主要修订版。在2.6版本内核之前,偶数版本号相当于内核的稳定发行版,而奇数版本号则相当于不稳定的修订版,即开发版。在2.6版本内核中,不再是这种情况了。第三个数字表示次要修订版,比如支持了新的驱动程序等。第四个数字则与小的错误修正或安全补丁相关。

大量的标准UNIX软件移植到了Linux上,包括X窗口系统和大量的网络软件。也有人为Linux开发了两个不同的GUI(GNOME和KDE)。简而言之,Linux已经成长为一个完整的UNIX翻版,包括了UNIX爱好者想要的所有特性。

Linux的一个独特的特征是它的商业模式:它是自由软件。它可以从互联网上的很多站点中下载到,比如:www.kernel.org。Linux带有一个由自由软件基金会(FSF)的创建者Richard Stallman设计的许可。尽管Linux是自由的,但是它的这个许可GPL(GNU公共许可),比微软Windows的许可更长,并且规定了用户能够使用代码做什么以及不能做什么。用户可以自由地使用、复制、修改以及传播源代码和二进制代码。主要的限制是以Linux内核为基础开发的产品不能只以二进制形式(可执行文件)出售或分发;其源代码必须要么与产品一起发送,要么可以随意索取。

虽然Torvalds仍然相当紧密地控制着Linux的内核,但是Linux的大量用户级程序是由其他程序员编写的。他们中的很多人一开始是从MINIX、BSD或GNU在线社区转移过来的。然而,随着Linux的发展,越来越少的Linux社区成员想要破译源代码(有上百本介绍怎样安装和使用Linux的书,然而只有少数书介绍源代码以及其工作机理)。同时,很多Linux用户放弃了互联网上免费分发的版本,转而购买众多竞争商业公司提供的CD-ROM版本。在一个流行站点www.distrowatch.org上列出了现在最流行的100种Linux版本。随着越来越多的软件公司开始销售自制版本的Linux,而且越来越多的硬件公司承诺在他们出售的计算机上预装Linux,自由软件与商业软件之间的界限变得愈发模糊了。

作为Linux故事的一个有趣的脚注,我们注意到在Linux变得越来越流行时,它从一个意想不到的源头(AT&T)获得了很大的推动。1992年,由于缺乏资金,Berkeley决定在推出BSD的最终版本4.4BSD后停止开发(4.4BSD后来成为FreeBSD的基础)。由于这个版本几乎不包含AT&T的代码,Berkeley决定将这个软件的开源许可证(不是GPL)发布,任何人可以对它做任何想做的事情,只要不对加州大学提出诉讼。AT&T负责UNIX的子公司做出了迅速的反应——正如你猜的那样——它提出了对加州大学的诉讼。同时,它也控告了BSDI,一家由BSD开发者创立、包装系统并出售服务的公司(正像Red Hat以及其他公司现在为Linux所做的那样)。由于4.4BSD中事实上不含有AT&T的代码,起诉是依据版权和商标侵犯,包括BSDI的1-800-ITS-UNIX那样的电话号码。虽然这次诉讼最终在庭外和解,它把FreeBSD隔离在市场之外,却给了Linux足够的时间发展壮大。如果这次诉讼没有发生,从1993年起两个免费、开源的UNIX系统之间就会进行激烈的竞争:由处于统治地位的、成熟稳定且自1977年起就在学界得到巨大支持的系统BSD应对富有活力的年轻挑战者、只有两年历史却在个人用户中支持率稳步增长的Linux。谁知道这场免费UNICES的战争会变成何种局面?