1.2 Linux版本
Linux的版本可以分为Linux内核版本和发行版。内核版本是严格的操作系统功能的不同版本,不包括外围的各种应用程序,对操作系统来说这是最重要的。发行版由个人、松散组织的团队、商业机构以及志愿者组织编写。它们通常包括其他的系统软件和应用软件、一个用来简化系统初始安装的安装工具和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。一个典型的Linux发行版包括:Linux内核、一些GNU程序库和工具、命令行shell、图形界面的X Window系统和相应的桌面环境(如KDE或GNOME),以及数千种从办公套件、编译器、文本编辑器到科学工具的应用软件。
1.2.1 Linux内核的概念
操作系统是一个用来和硬件打交道并为用户程序提供有限服务集的低级支撑软件。计算机系统是一个由硬件和软件组成的共生体,它们互相依赖,不可分割。计算机的硬件包括外围设备、处理器、内存、硬盘和其他的电子设备来组成计算机的发动机。但是没有软件来操作和控制它,硬件自身是不能工作的,完成这个控制工作的软件就称为操作系统。在Linux的术语中,操作系统被称为“内核”,也可以称为“核心”。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。Linux内核的主要模块分几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。其中可以包括各种应用。
Linux内核是在GNU通用公共许可证第2版下发布的(加上一些固件与各种非自由许可证),贡献者遍布世界各地。Linux的内核如图1-3所示。
图1-3 Linux内核图
图1-4所示为Linux内核的简化矩阵图示。
图1-4 Linux内核的简化矩阵图示
1.2.2 Linux内核版本
Linux内核使用三种不同的版本编号方式。第一种方式用于1.0版之前(包括1.0)。第一个版本是0.01,紧接着是0.02、0.03、0.10、0.11、0.12、0.95、0.96、0.97、0.98、0.99和之后的1.0。第二种方式用于1.0版之后到2.6版,编号由三部分组成,形如“A.B.C”,A代表主版本号,B代表次主版本号,C代表较小的末版本号。只有在内核发生很大变化时(历史上只发生过两次,即1994年的1.0和1996年的2.0),A才会变化。可以通过数字B来判断Linux是否稳定,偶数的B代表稳定版,奇数的B代表开发版。C代表一些bug修复、安全更新以及添加新特性和驱动的次数。以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般表示有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这就是说,稳定版本来源于上一个测试版的升级版本号,当一个稳定版本发展到完全成熟后就不再发展。第三种方式从2004年的2.6.0版本开始,使用一种“time-based”的方式。在3.0版本之前,编号使用的是“A.B.C.D”的格式。七年里,前两个数字A.B即“2.6”保持不变,C随着新版本的发布而增加,D代表一些bug修复、安全更新以及添加新特性和驱动的次数。3.0版本之后编号使用的是“A.B.C”格式,B随着新版本的发布而增加,C代表一些bug修复、安全更新以及添加新特性和驱动的次数。第三种方式中不再使用偶数代表稳定版,奇数代表开发版的命名方式。举例来说,3.7.0代表的不是开发版,而是稳定版。
Linux各个内核版本如表1-1所示。
表1-1 Linux各个内核版本
1.2.3 Linux发行版本
了解了Linux内核的发展过程,还应当提一下各种Linux发行版的作用,因为正是它们推动了Linux的应用,从而也让更多的人开始关注Linux。一些组织或厂家将Linux系统的内核与外围实用程序(Utilities)软件和文档包装起来,并提供一些系统安装界面和系统配置、设定与管理的工具,从而构成了一个发行版本(Distribution)。Linux的发行版本其实就是Linux核心再加上外围的实用程序组成的一个大软件包。相对于Linux操作系统内核版本,发行版本的版本号随发布者的不同而不同,它是相对独立的。因此,把SUSE、Red Hat、Ubuntu、Slackware等直接说成是Linux是不确切的,它们是Linux发行版本的提供者,提供了以Linux为核心的操作系统软件包。根据GPL准则,这些发行版本虽然都源自一个内核,并且都有自己各自的贡献,但没有自己的版权。由于都使用Linux内核,因此在内核层不存在兼容性问题。虽然每个版本都有不一样的感觉,但这只是在发行版本的最外层才有所体现,而绝不是Linux本身,特别是内核不统一或是不兼容。
20世纪90年代初期,Linux开始出现的时候,仅为源代码的形式,用户需要在其他操作系统下编译后才能使用。后来发布了一些正式版本,目前最流行的几个正式版本有:Red Hat、Debian、Ubuntu、Slackware、SUSE及Gentoo等。
1.Red Hat Linux
Red Hat是一个比较成熟的Linux版本,无论从销售还是装机量上来看都比较可观。该版本从4.0开始同时支持Intel、Alpha及Sparc硬件平台,并且通过Red Hat公司的开发,使得用户可以轻松地进行软件升级,彻底卸载应用软件和系统部件。Red Hat最早由Bob Young和Marc Ewing在1995年创建,目前分为两个系列,即由Red Hat公司提供收费技术支持和更新的Red Hat Enterprise Linux,以及由社区开发的免费的Fedora Core。Fedora Core 1发布于2003年年末,定位于桌面用户。Fedora Core提供了最新的软件包,同时版本更新周期也非常短,仅为6个月。目前最新版本为Fedora Core 6,而Fedora Core 7的测试版也已经推出。适用于服务器的版本是Red Hat Enterprise Linux,由于它是个收费的操作系统,所以国内外许多企业与网络公司选择了CentOS。CentOS可以算是Red Hat Enterprise Linux的克隆版,但它是免费的。其官方主页是http://www.redhat.com/。
2.Debian
Debian最早由Ian Murdock于1993年创建,可以算是迄今为止最遵循GNU规范的Linux系统。Debian系统分为3个版本分支(Branch),即Stable、Testing和Unstable。截至2005年5月,这3个版本分支分别对应的具体版本为Woody、Sarge和Sid。其中,Unstable为最新的测试版本,包括最新的软件包,但是也有相对较多的bug。适合桌面用户的Testing版本都经过Unstable的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而Woody一般只用于服务器,其中的软件包大部分都比较过时,但是稳定性和安全性都非常高,这也是如此多的用户痴迷于Debian、apt-get和dpkg原因之一。dpkg是Debian系列特有的软件包管理工具,它被誉为所有Linux软件包管理工具(比如RPM)中最强大的,配合apt-get,在Debian上安装、升级、删除和管理软件变得异常容易。许多Debian的用户都开玩笑地说,Debian将他们养懒了,因为只要输入“apt-get upgrade && apt-get upgrade”,计算机上所有的软件就会自动更新。其官方主页是http://www.debian.org/。
3.Ubuntu
简单地说,Ubuntu就是一个拥有Debian的所有优点,又加强了自身优点的近乎完美的Linux操作系统。Ubuntu是一个相对较新的发行版,它的出现可能改变了许多潜在用户对Linux的看法。也许以前人们会认为Linux难以安装和使用,但是Ubuntu出现后这些都成为了历史。Ubuntu基于Debian Sid,所以拥有Debian的所有优点,包括apt-get。不仅如此,Ubuntu默认采用的GNOME桌面系统也将Ubuntu的界面装饰得简易而不失华丽。当然,对于KDE的拥护者,Ubuntu也同样适合。Ubuntu的安装非常人性化,只要按照提示一步一步进行即可,安装操作与Windows操作系统一样简便。此外,Ubuntu被誉为是对硬件支持最好、最全面的Linux发行版之一,许多在其他发行版上无法使用或者默认配置时无法使用的硬件,在Ubuntu上都可以轻松实现。Ubuntu采用自行加强的内核(Kernel),安全性能更加完善。Ubuntu默认不能直接采用Root登录,必须由第1个创建的用户通过Su或Sudo来获取Root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu的版本更新周期为6个月,弥补了Debian更新缓慢的不足。其官方主页是http://www.ubuntuLinux.org/。
4.Slackware
Slackware由Patrick Volkerding创建于1992年,应当是历史最悠久的Linux发行版。它曾经非常流行,但是当Linux越来越普及,用户的技术层面越来越广(更多的新手)后,它渐渐地被新来的人们所遗忘。在其他主流发行版强调易用性时,Slackware依然固执地追求最原始的效率——所有的配置均要通过配置文件来完成。尽管如此,Slackware仍然深入人心(大部分都是比较有经验的Linux老手)。因为它稳定且安全,所以仍然有大批忠实的用户。由于Slackware尽量采用原版软件包而不进行任何修改,因此制造出新bug的概率便低了很多。其版本更新周期较长(大约1年),但是新版本仍然不间断地提供给用户下载,其官方主页是http://www.slackware.com/。
5.SUSE
SUSE是起源于德国的最著名的Linux发行版,在全世界范围内享有较高的声誉,其自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购,SUSE 8.0之后的发布显得比较混乱,比如9.0版本是收费的,而10.0版本(也许由于各种压力)又免费发布。这使得一部分用户感到困惑,也转而使用其他发行版本。但是瑕不掩瑜,SUSE仍然是一个非常专业并且优秀的发行版,其官方主页是http://www.suse.com/。
6.Gentoo
Gentoo Linux最初由Daniel Robbins(前Stampede Linux和FreeBSD的开发者之一)创建,由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的Ports系统——Portage(Ports和Portage都是用于在线更新软件的系统,类似于apt-get,但还是有很大的不同)。Gentoo的首个稳定版本发布于2002年,其之所以出名是因为它高度的自定制性,Gentoo是一个基于源代码的(source-based)发行版。尽管安装时可以选择预先编译好的软件包,但是大部分用户都选择自己手动编译,这也是为什么Gentoo适合比较有Linux使用经验的老手的原因。但是要注意的是,由于编译软件需要消耗大量的时间,所以,如果所有的软件都自己编译并安装KDE桌面系统等比较大的软件包,则可能需要几天时间。Gentoo的官方主页是http://www.gentoo.org/。
7.其他
Linux世界最不缺乏的可能就是发行版本了。目前全球至少有386个不同的发行版本,了解Linux发行版的最佳方法是查看Linux流行风向标的网站(www.distrowatch.com)。Linux的变化日新月异,需要不断地保持信息的更新,以得到更多、更好的新技术。