第1篇 Linux基础
第1章 Red Hat Enterprise Linux 5.0系统简介
本章要点
● Linux简介
● Linux内核及其发行版本
● Red Hat Enterprise Linux简介
1.1 Linux简介
Linux操作系统是UNIX操作系统的一种克隆系统,它诞生于1991年的10月5日(这是第1次正式向外公布的时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者的共同努力,它已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长之中。Linux操作系统的诞生、发展和成长过程始终依赖着几个重要支柱,即UNIX操作系统、MINIX操作系统、GNU计划和POSIX标准。
1.1.1 Unix操作系统的诞生
UNIX是一个多用户、多任务的操作系统,最初由AT&T贝尔实验室的Ken Thompson于1969年开发成功。UNIX当初设计的目标是允许大量程序员同时访问计算机,共享其资源。它非常简单,但是功能强大、通用,并且可移植,可以运行在从微机到超级小型计算机,以及大型机上。
UNIX系统的心脏是内核,即一个系统引导时加载的程序。内核用于与硬件设备打交道,调度任务,并且管理内存和辅存。正是由于UNIX系统这种精练特性,所以众多小而简单的工具和实用程序被开发出来。因为这些工具(命令)能够很容易地组合起来执行多种大型的任务,所以UNIX迅速流行起来。其中最重要的工具之一就是shell,即一个让用户能够与操作系统沟通的程序,本书将剖析当今主流shell的特性。最初UNIX被科学研究机构和大学采用,其费用微不足道,后来慢慢扩展到计算机公司、政府机构和制造业领域。1973年,美国国防部高级研究计划署(Defense Advanced Research Projects Agency,DARPA)启动一项计划,研究使用UNIX将跨越多个网络的计算机透明地连接在一起的方式。这个计划和从该研究中形成的网络系统,导致了Internet的诞生。
在20世纪70年代后期,许多在大学期间接触并体验过UNIX的学生投身工业界并要求工业界向UNIX转换,声称它是最适合复杂编程环境的操作系统。很快大量或大或小的厂家开始开发自己的UNIX版本,在自己的计算机体系结构上对其进行优化,以期占领市场。最著名的两个UNIX版本是AT&T的System V和BSD UNIX,后者源于AT&T版本,由加州大学伯克力分校于20世纪80年代早期开发成功。
面对如此众多版本的UNIX(有一个图表列出了80多个UNIX版本,访问http://www.ugu.com/sui/ugu/show?ugu.flavors),如果不花费时间和精力考虑兼容问题,则在一个系统上能够正常运行的应用程序和工具可能无法在另一个系统上工作。由于缺乏统一的标准,许多厂家放弃了UNIX转而使用比较古老的非UNIX专用系统,如VMS,它们被证明是更加一致和可靠的。在1993年初,AT&T将其UNIX系统实验室出售给了Novell。1995年Novell将其UNIX商标权和规范(后来变成了单一UNIX规范)转让给The Open Group,将UNIX系统源代码卖给了SCO。当今有很多公司都在出售基于UNIX的系统,包括Sun Microsystems的Solaris、HP-UX和来自Hewlett-Packard的Tru64 UNIX,以及来自IBM的AIX。除此之外,还有许多免费的UNIX和与UNIX兼容的工具,如Linux、FreeBSD和NetBSD。Linux操作系统是UNIX操作系统的一个克隆版本,现在几乎每个主要的计算机厂商都有其自有版本的UNIX。
1.1.2 Minix操作系统
Minix系统是由Andrew S. Tanenbaum(AST)开发的,AST在荷兰Amsterdam的Vrije大学数学与计算机科学系工作,是ACM和IEEE的资深会员(全世界只有很少人是两会的资深会员),共发表了100多篇文章和5本计算机书籍。AST虽出生在美国纽约,但是是荷兰侨民(1914年他的祖辈来到美国)。他在纽约上的中学,在M.I.T上的大学,在加州大学Berkeley分校读的博士学位。由于读博士后的缘故,他来到了家乡荷兰,从此就与家乡一直有来往。后来就在Vrije大学开始教书并带研究生。荷兰首都Amsterdam是个常年阴雨绵绵的城市,而对于AST来说,这最好不过了,因为这样就可以待在家里摆弄他的计算机了。Minix是他在1987年编写的,主要用于学生学习操作系统原理。到1991年时版本是1.5。目前主要有两个版本在使用即1.5版和2.0版。对于Linux系统,他表示对其开发者Linus的称赞。但认为Linux的发展有很大原因是因为为了保持Minix的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix的扩展要求。因此这样激发了Linus编写Linux,他正好抓住了这个好时机。作为一个操作系统,Minix并不是优秀者,但它同时提供了用C语言和汇编语言写的系统源代码。这是第1次使得有抱负的程序员或hacker能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。
1.1.3 GNU早期简史
1971年,作为开放源码的先驱,Richard Stallman加入了麻省理工学院的一个专门研究免费软件的组织。作为Emacs文本编辑程序的开发者,他后来建立了GNU项目,从而最终导致了免费的Linux操作系统的诞生。
1983年,为了反对软件所有权私有化的趋势,Stallman建立了GNU计划来推进免费软件模型,并为此开发了一个免费的操作系统、应用程序,以及开发工具。更重要的是,GNU计划建立了General Public License(GPL),即Copyleft,它成为许多开放源码软件所采用的模型。
1985年3月,Richard Stallman在Dr.Dobb's杂志上发表了《GNU宣言》,在宣言中他陈述了自由软件运动的起因。
1986年,Larry Wall建立了Perl(Practical Extraction and Report Language),这是一种编写CGI程序广泛采用的通用编程语言,CGI为Web带来了更多动态内容。
1987年,开发者Andrew Tanenbaum发布了Minix,在发布时带有完整的源代码。
1989年1月,GPL版本1由斯道曼撰写,用于GNU计划,它以GNU Emacs、GDB和GCC的许可证的早期版本为蓝本。这些许可证都包含有一些GPL的版权思想,但仅只针对特定程序。斯道曼的目标就是创造出一种四海之内皆可使用的许可证,这样就能为许多源代码共享计划带来福音。
到1990年时,因为一些共享库而出现了对比GPL更宽松的许可证的需求。所以当GPL版本2在1991年6月发布时,另一许可证——库通用许可证(Library General Public License,LGPL)也随之发布,并记为“版本2”以示对GPL的补充。版本号在LGPL版本2.1发布时不再相同,而LGPL也被重命名为“GNU宽通用公共许可证”(Lesser General Public License)以体现GNU哲学观。
1991年8月25日,Linus在Usenet新闻组上公开了关于Linux的构想。为了超越Minix,发布了一个新的Unix变种——Linux。3年后,Linux正式接受GPL。
1.1.4 POSIX标准历史
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE和ISO/IEC开发的一组标准。该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980年早期一个UNIX用户组(usr/group)的早期工作的基础上取得的。该UNIX用户组原来试图将AT&T的系统V和Berkeley CSRG的BSD系统的调用接口之间的区别重新调和集成,从而于1984年产生了/usr/group标准。1985年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI的支持下责成IEEE标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了1986年4月,IEEE就制定出了试用标准。第1个正式标准是在1988年9月份批准的(IEEE 1003.1-1988),即以后经常提到的POSIX.1标准。1989年POSIX的工作被转移至ISO/IEC社团,并由15工作组继续将其制定成ISO标准。到1990年,POSIX.1与已经通过的C语言标准联合,正式批准为IEEE 1003.1-1990(也是ANSI标准)和ISO/IEC 9945-1:1990标准。
在90年代初,POSIX标准的制定正处在最后投票敲定时,此时Linux刚刚起步。这个UNIX标准为Linux提供了极为重要的信息,使得Linux能够在标准的指导下进行开发,并与绝大多数UNIX系统兼容。在最初的Linux内核代码中(0.01版及0.11版)就已经为Linux与POSIX标准的兼容做好了准备工作。
1.1.5 Linux概述
通过上述说明,我们可以对上述Linux的几个支柱归纳如下。
(1)UNIX操作系统:1969年诞生在Bell实验室,Linux是其一种克隆系统。
(2)Minix操作系统:也是UNIX的一种克隆系统,1987年由著名计算机教授Andrew S. Tanenbaum开发完成。由于Minix系统的出现并且提供源代码(只能免费用于大学内),所以在全世界的大学中刮起了学习UNIX系统旋风,Linux开始就是参照Minix系统于1991年开始开发。
(3)GNU计划:开发Linux操作系统,以及Linux上所用大多数软件基本上都出自GNU计划,Linux只是操作系统的一个内核。没有GNU软件环境(比如说bash shell),则Linux将寸步难行。
(4)POSIX标准:在推动Linux操作系统以后朝着正规路上发展起着重要的作用,是Linux前进的灯塔。
Linux是由Linus Benedict Torvalds等众多软件高手共同开发的,是一种能运行于多种平台(如PC及其兼容机、Alpha工作站及SUN Sparc工作站)、源代码公开、免费、功能强大、遵守POSIX标准,并且与UNIX兼容的操作系统。
Linux运行的硬件平台起初是Intel 386、486、Pentium及Pentium Pro等,现在还包括Alpha、PowerPC和Sparc等。Linux不但支持32位,还支持64位,如Alpha。它既支持单CPU,也支持多CPU。
Linux内核和许多系统软件,以及应用软件的源代码是公开的,也是免费的。Linux系统软件和应用软件很多来自GNU组织,Linux软件还包括很多遵循GPL精神的软件。现在很多商业公司也开始为Linux开发应用软件,如IBM、Sybase和Oracle等。
Linux具有丰富的系统软件和应用软件,除了具有一般UNIX的工具外,Linux操作系统还包括如下特性。
(1)支持多种不同格式的文件系统。
(2)支持多种系统语言,如C、C++、Objective C、Java、Lisp及Prolog等。
(3)支持多种脚本语言,如Perl、Tcl/Tk及Shell和AWK等。
(4)支持X Window系统及其应用程序,可运行各种图形应用程序,如Khoros、GRASS等。
(5)支持多种自然语言,如中文和英文。
(6)支持多种大型数据库,如Oracle、Sybase及Infomax等。
(7)支持与其他操作系统,如Windows NT或Windows 95等的共享。
(8)强大的网络功能,支持多种网络协议,如TCP/IP、IPX、Appletalk、NETBEUI、X.25等。发布版中有多种网络服务软件,如E-mail、FTP、TELNET及WWW等。
当然,Linux还在不断地发展,它是一个很有发展前途的操作系统,也是为数不多可以与Microsoft操作系统相竞争的操作系统。Linux是一套免费使用和自由传播的UNIX操作系统,主要用于基于Intel系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约,并且全世界都能自由使用的UNIX兼容产品。Linux开始于一位名为“Linus Torvalds”的计算机业余爱好者,当时是芬兰赫尔辛基大学的学生。其目的是想要设计一个代替Minix(Minix是由一位名为Andrew Tannebaumn的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有UNIX操作系统的全部功能,因而开始了Linux雏形的设计。
Linux以其高效性和灵活性著称,它能够在PC计算机上实现全部的UNIX特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。其软件包不仅包括完整的Linux操作系统,而且包括文本编辑器及高级语言编译器等应用软件。它还包括带有多个窗口管理器的X Window图形用户界面,如同使用Windows NT一样允许使用窗口、图标和菜单对系统进行操作。
Linux之所以受到广大计算机爱好者的喜爱,主要原因一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要进行必要的修改。无偿使用,无约束地继续传播;二是它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。
Linux是目前唯一可以免费获得并为PC平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就PC平台而言,Linux提供了比其他任何操作系统都要强大的功能。它还可以使用户远离各种商品化软件提供商促销广告的诱惑,再也不用承受每过一段时间就升级之苦,因此可以节省大量资金。
1.1.6 Linux和开源软件的商业化
Linux和开源软件的商业化历程大致经历了以下几个阶段。
1.萌芽阶段(1995年以前)
在1995年以前,开源社区基本上没有考虑过商业化运行的问题。与开源软件有关的商业活动仅限于出售开源软件安装盘、书籍及印有开源软件标志的文化衫等小物品。但是这种商业行为当时并没有获得开源社区的尊重,从事这些活动的人也被社区的成员嗤为“小商贩”。就在这群毫不起眼的小商贩中,竟然走出了两位后来在开源界赫赫有名的大人物,他们就是红帽软件公司的两位创始人Young和Marc Ewing。
2.探索阶段(1995~2001年)
1995年,Young购买了Ewing的股份。把新公司命名为“红帽软件”,同时发布Redhat Linux 2.0。红帽公司的成立,拉开了开源软件探索商业运行的序幕。在红帽的率领和激励下,越来越多的人从开源软件身上嗅到了商机,各种从事开源软件事业的商业机构蓬勃发展。在中国,1999年~2000年间,短短两年就涌现出红旗Linux、中软Linux、蓝点Linux、冲浪Linux、TurboLinux及TomLinux等品牌。不过在这一阶段,开源软件并没有找到真正的商业模式,大部分只停留在概念炒作层面。
3.发展阶段(2001~2003年)
2002年前后,随着网络泡沫的破灭,开源软件的神话也随之被打破。大量缺乏真正商业模式的开源软件企业面临尴尬境地,要么倒闭,要么退出开源软件市场。剩下几家经受住了市场锤炼的开源软件厂商慢慢冷静下来,潜心查找适合自己的商业模式。在查找的过程中,一些较早探索出商业模式的开源企业,挺过了IT行业的寒冬,发展迅速,如红帽、Jboss和MySQL等。
4.融合阶段(2004~2006年)
2003年11月,曾叱咤风云的软件巨头Novell收购了排名全球第二的Linux发行商Suse,借助Linux实现战略转型。Novell的做法为开源软件的商业运行提供了全新思路,产生了深远影响。在Novell的推动下,开源软件开始与商业软件和平共处,不再停留在小打小闹阶段。而是走进金融和电信等行业大户的视野,刷新了在企业用户心目中的形象。与此同时,原来在幕后支持开源软件的IT巨头也开始更直接地介入开源软件的发展。如IBM于2005年5月收购开源软件Gluecode,2005年11月率众成立开源文档基金会。SUN公司从2005年6月开始,逐步开放Solaris等多款软件的源代码等。
1.1.7 Linux和开源软件的商业模式
经过研究与归纳,Linux和开源软件的商业模式大致包括以下几种。
1.免费软件+收费硬件
IBM、SUN及惠普等公司在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件中获取巨额回报。
2.免费知识+收费书籍(培训)
开源软件出版商O'Reilly公司组织各种开源软件会议,推进开源理念和开源软件技术的传播与发展,以出售书籍赢利。LPI和中国的即时科研集团目前也在大力开展Linux培训,其赢利模式如出一辄。
3.免费程序+收费实施
一些开源软件厂商免费提供系统的程序代码,靠提供技术服务赚钱,JBoss就是这种模式的典型代表。JBoss应用服务器软件程序完全免费,而技术文档、培训和二次开发支持等技术服务则是收费的。
4.免费社区版+收费企业版
对于一些通用软件,如操作系统和数据库软件,开源软件厂商一般采用针对不同用户提供不同版本的方式。在这种模式中,利用免费版本软件为赢利的收费版本创造或维持一种市场地位。这种模式较为普遍,如MySQL产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本分别采用不同的授权方式。开源版本完全免费以便更好地推广,公司通过专业版的许可销售和支持服务获得收入。
5.开源软件+商业软件
将免费的开源软件与可赢利的商业软件捆绑销售,以开源软件带动商业软件的销售,这也是不错的商业模式。比如Novell就将自己原来丰富的中间软件和应用软件迁移到Linux平台上,通过与Linux捆绑为客户提供高价值的综合解决方案。红旗和Turbolinux也在积极加强与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来增加收入。
6.免费软件+收费专业服务
这种模式的典型代表是SourceLabs和SpikeSource公司,这些公司并不主推自己的产品品牌,而是与多方开源软件厂商或社区合作,利用他人提供的开源软件提供技术测试、集成及维护等服务。在这种模式中,公司的角色与原来的系统集成商有点类似,他们把开源软件打包到事先经过鉴定并且受支持的标准化堆栈中。为了让各种各样的软件组件正常地协同工作,他们帮助客户配置及测试这些软件组件,而预先设计并经过鉴定的堆栈有助于缩短配置与测试时间。
1.2 Linux内核及其发行版本
1.2.1 Linux发行版本概述
Linux的版本可以分两类,即内核(Kernel)与发行(Distribution)版本,内核版本指的是在Linux领导下的开发小组开发出来的系统内核版本号,目前最新的内核版本号为Linux 2.6。其发行版共有27149个不同补丁和600万行代码,开发周期长达680天。在2004年Linux内核峰会上,即稳定版内核发行约8个月之后又增加了123万行代码,删除了849366行代码,这意味着有三分之一的内核被改动了。Novell公司Linux开发人员格雷格·克洛·哈特曼认为这说明稳定版内核还有很多工作要做,于是开发社区做出决定不升级内核版本,所有成熟的新功能和补丁都加入到2.6稳定版内核中。一些组织或公司将Linux内核与应用软件和文档包装起来,并提供一些安装界面和系统设置与管理工具,这样就构成了一个发行版本。例如我们所听说的Mandriva Linux、Red Hat Linux、Debian Linux、Ubuntu Linux,以及国产的红旗Linux、CLEEX For Linux、Xteam Linux和Turbo Linux等。
1.2.2 Linux内核的变迁
Linux内核变迁0.00(1991.2~1991.4)的两个进程分别显示AAA为BBB。
0.01(1991.9)第1个正式向外公布的Linux内核版本。
0.02(1991.10.5)该版本及0.03版是内部版本,目前已经无法找到。
0.03(1991.10.5)。
0.10(1991.10)由Ted Ts'o发布的Linux内核版本。
0.11(1991.12.8)基本可以正常运行的内核版本。
0.12(1992.1.15)主要加入针对数学协处理器的软件模拟程序。
0.95(0.13)(1992.3.8)开始加入虚拟文件系统思想的内核版本。
0.96(1992.5.12)开始加入网络支持和虚拟文件系统VFS。
0.97(1992.8.1)。
0.98(1992.9.29)。
0.99(1992.12.13)。
1.0(1994.3.14)。
1.2(1995.3.7)。
2.0(1996.2.9)。
2.2(1999.1.26)。
2.4(2001.1.4)。
2.6(2003.12.17)。
小贴式:查看Linux内核的版本方法。
登录Linux系统,在文本终端用下面的命令:
$ uname -r
输出结果如下:
2.6.18-8.el5smp
表示当前Linux系统的内核版本为2.6.18-5.Elsmp,即主版本号为2,次版本号为6,修订号为18,为第5次编译。EL表示该内核为企业级Linux(Enterprise Linux),smp表示对称多处理器(Symmetric MultiProcessing)。
Linux内核版本号格式为major.minor.patch-build.desc,说明如下。
(1)major:表示主版本号,有结构性变化时才变更。
(2)minor:表示次版本号,新增功能时才发生变化。一般奇数表示测试版,偶数表示生产版。
(3)patch:表示对次版本的修订次数或补丁包数。
(4)build:表示编译(或构建)的次数,每次编译可能优化或修改少量程序,但一般没有大(可控)的功能变化。
(5)desc:用来描述当前的版本特殊信息,其信息由编译时指定。具有较大的随意性,但也有如下描述标识是常用的。
● rc(有时也用一个字母r):表示候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,各候选版本之间在多数情况下数字越大越接近正式版。
● smp:表示对称多处理器(Symmetric MultiProcessing)。
● pp:在Red Hat Linux中常用来表示测试版本(pre-patch)。
● EL:在Red Hat Linux中用来表示企业版Linux(Enterprise Linux)。
● mm:表示专门用来测试新的技术或新功能的版本。
● fc:在Red Hat Linux中表示Fedora Core。
在生产机上最好不要安装小版本号是奇数和pre—patch的内核版本。
1.2.3 Linux主要发行版本
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.Mandriva Linux
Mandriva原名为“Mandrake”,最早由Gaël Duval创建并在1998年7月发布。几年前国内刚开始普及Linux时,Mandrake非常流行,其实最早的Mandrake是基于Red Hat开发的。Red Hat默认采用GNOME桌面系统,而Mandrake将之改为KDE。由于当时安装Linux比较复杂,不适合第1次接触Linux的新手,所以Mandrake还简化了系统安装过程,这也是当时Mandrake在国内迅速普及的原因之一。Mandrake在易用性方面做了不少努力,包括默认情况下的硬件检测等。其开发完全透明化,包括Cooker。当系统有了新的测试版本后,便可以在Cooker上找到。之前Mandrake的新版本的发布速度很快,但从9.0之后便开始减缓,估计是希望能够延长版本的生命力以确保稳定和安全性,其官方主页是http://www.mandrivalinux.com/。
3.Debian Linux
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/。
4.Ubuntu Linux
简单而言,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强优点的近乎完美的Linux操作系统。Ubuntu是一个相对较新的发行版,它的出现可能改变了许多潜在用户对Linux的看法。也许,从前人们会认为Linux难以安装并难以使用,但是Ubuntu出现后这些都成为了历史。Ubuntu基于Debian Sid,所以拥有Debian的所有优点,包括Apt-Get。然而不仅如此,Ubuntu默认采用的GNOME桌面系统也将Ubuntu的界面装饰得简易而不失华丽。当然如果你是一个KDE的拥护者的话,Kubuntu同样适合。Ubuntu的安装非常人性化,只要按照提示一步一步进行,安装操作与Windows操作系统同样简便。并且Ubuntu被誉为是对硬件支持最好最全面的Linux发行版之一,许多在其他发行版上无法使用或者默认配置时无法使用的硬件,在Ubuntu上可以轻松实现。并且它采用自行加强的内核(Kernel),安全性方面更加完善。Ubuntu默认不能直接Root登录,必须从第1个创建的用户通过Su或Sudo来获取Root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。Ubuntu的版本周期为6个月,弥补了Debian更新缓慢的不足,其官方主页是http://www.ubuntulinux.org/。
5.Slackware Linux
Slackware由Patrick Volkerding创建于1992年,应当是历史最悠久的Linux发行版。它曾经非常流行,但是当Linux越来越普及,用户的技术层面越来越广(更多的新手)后,而渐渐地被新来的人们所遗忘。在其他主流发行版强调易用性时,Slackware依然固执的追求最原始的效率——所有的配置均要通过配置文件来进行。尽管如此,Slackware仍然深入人心(大部分都是比较有经验的Linux老手)。它稳定且安全,所以仍然有大批的忠实用户。由于Slackware尽量采用原版的软件包而不进行任何修改,所以制造新bug的几率便低了很多。其版本更新周期较长(大约1年),但是新版本仍然不间断地提供给用户下载,其官方主页是http://www.slackware.com/。
6.Suse Linux
Suse是起源于德国的最著名的Linux发行版,在全世界范围中也享有较高的声誉,其自主开发的软件包管理系统YaST也大受好评。SUSE于2003年年末被Novell收购,Suse 8.0之后的发布显得比较混乱,比如9.0版本是收费的,而10.0版本(也许由于各种压力)又免费发布。这使得一部分用户感到困惑,也转而使用其他发行版本。但是瑕不掩瑜,Suse仍然是一个非常专业且优秀的发行版,其官方主页是http://www.suse.com/。
7.Gentoo Linux
Gentoo Linux最初由Daniel Robbins(前Stampede Linux和FreeBSD的开发者之一)创建,由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——portage(Ports和Portage都是用于在线更新软件的系统,类似apt-get,但还是有很大不同)。Gentoo的首个稳定版本发布于2002年,其出名是因为高度的自定制性,它是一个基于源代码的(source-based)发行版。尽管安装时可以选择预先编译好的软件包,但是大部分使用用户都选择自己手动编译,这也是为什么Gentoo适合比较有Linux使用经验的老手使用的原因。但是要注意的是,由于编译软件需要消耗大量的时间,所以如果所有的软件都自己编译并安装KDE桌面系统等比较大的软件包,可能需要几天时间,其官方主页是http://www.gentoo.org/。
8.Xandros Linux
Xandros建立在已经成为历史的Corel Linux之上,当初Corel Linux的公司由于财政上的困难,被迫终止了Corel Linux的开发。而Xandros适时地将其部门买下,于2002年10月推出全新的Xandros Desktop。Xandros的卖点在于极其简单的安装和使用,所以其市场定位是那些没有任何Linux使用经验的新手或习惯使用Windows的用户。Xandros的标准版和增强版都是商业软件,分别售价$40和$99美元,其官方主页是http://www.xandros.com/。
9.红旗Linux
红旗Linux中文操作系统是中国科学院软件所、北大方正电子有限公司和康柏计算机公司联合推出的具有自主版权的全中文化Linux发行版本,其内核取自于Linux 2.2.15版本,预装炎黄中文平台和方正TrueType字库。实现了Linux上的TrueType显示和打印功能,并且从安装到使用提供了全中文化的操作环境,其官方主页是http://www.redflag-linux.com/。
10.其他
Linux世界最不缺乏的可能就是发行版本了,目前全球至少有386个不同的发行版本,了解Linux发行版的最佳方法是查看Linux流行风向标的网站(www.distrowatch.com)。在发行版排行中,目前Ubuntu的发行版高居榜首。
1.3 Red Hat Enterprise Linux简介
本书使用的Linux发行版本是Red Hat Enterprise Linux。
1.3.1 发展轨迹
Red Hat Linux是商业上运行最为成功的一个Linux发行套件,普及程度很高,由Red Hat公司发行。它算是一个“中年”的Linux发行套件,其1.0版本于1994年11月3日发行。虽然历史不及Slackware悠久,但比起很多的Linux发行套件,Red Hat的历史悠久得多。Red Hat Linux中的RPM软件包格式可以说是Linux社区的一个事实标准,被广泛使用于其他Linux发行套件中。以其为基础派生的Linux发行套件有很多,其中包括以桌面用户为目标的Mandrake Linux(原为包含KDE的Red Hat Linux)及Yellow Dog Linux(开始时为支援PowerPC的Red Hat Linux)和ASPLinux(对非拉丁字符有较好支援的Red Hat Linux)。自从Red Hat 9.0版本发布后,RedHat公司就不再开发桌面版的Linux发行套件。而将全部力量集中在服务器版的开发上,即Red Hat Enterprise Linux版。2004年4月30日,Red Hat公司正式停止对Red Hat 9.0版本的支援,标志着Red Hat Linux的正式完结。原桌面版Red Hat Linux发行套件则与来自民间的Fedora计划合并,成为Fedora Core发行版本。Fedora Core发行版本是免费发放的,但Red Hat不提供任何正式支持,也不保证软硬件兼容性,这与Red Hat Enterprise Linux不同。
Red Hat Linux的发展过程主要可以分为Red Hat Linux、Red Hat Enterprise Linux和Fedora Core共3个系列,如表1-1所示。
表1-1 Red Hat公司的主要Linux版本
2002年以前,Red Hat公司只有一种产品线,即Red Hat Linux,从Red Hat Linux 0.9一直发展到Red Hat Linux 9.0,之后不再以该名称发布产品。经过2002年,Red Hat迫于营利的压力,新开辟了一种产品线。即Red Hat Enterprise Linux系列产品,这一产品向用户提供更高级的技术支持从而使Red Hat公司获得更多收益。也由于Red Hat Enterprise Linux系列产品的推出,Red Hat的研发注意力便从RHL系列更多地转移到Red Hat Enterprise Linux系列上,使得大量免费使用RHL的个人用户很不高兴。加上其他同类免费Linux产品的竞争,为了拉拢Red Hat Linux的原有个人用户,守住已有用户群,Red Hat决定放弃Red Hat Linux系列产品线的单独研发,将之合并到Fedora项目中并推出了新的免费产品线Fedora Core。事实上,Fedora Core只是Red Hat的实验品,其功能将在获得成功后融入Red Hat Enterprise Linux。
Fedora是一个由Red Hat策划的开放开发项目,它向普通参与者开放并由精英管理者领导,沿着一系列项目目标而前进。Fedora项目的目标是与Linux社区协作,只从开放源码软件来创建一个完整且通用的操作系统,其开发过程是以公开论坛的形式进行的。项目将按时间计划,每年Fedora Core发布2次~3次,并提供一份公开的发布日程表。Red Hat工程组将继续参与Fedora Core的开发,并且将比以往更多地邀请和鼓励外界的参与。通过采用这样一种更加开放的过程希望能提供一份更加符合自由软件理念并且对开放源码社区更具吸引力的操作系统。
小贴式:查看查看Linux系统版本的方法:
登录到服务器执行lsb_release -a,例如:
# lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-arch Distributor ID: RedHatEnterpriseServer Description: Red Hat Enterprise Linux Server release 5 (Tikanga) Release: 5 Codename: Tikanga
其中显示版本号、代号和Lsb版本号等信息。
1.3.2 Red Hat Enterprise Linux的订阅模式
1.概念
通常情况下,由用户购买License获得使用权是软件行业的最常见的传统商业运营模式。在这种方式下,用户首先需要明确自己的应用需求,形成对于软件的应用方案。然后通过前期主要是在软件费用上的投资,购买了软件永久或者是规定期限内的使用权。随后在应用过程中,主要是依靠自身的经验等方式来实现软件的合理使用。当软件使用出现问题时,可以简单地从软件供应商处获得一般性的客服支持。对于Bug或者是故障问题,则通常需要在自身的努力下解决或者是耐心地等待升级那一天的到来。对于小型软件来说,由于软件应用场景简单和操作流程的固定,软件购买模式无疑是最能适应商业要求的。现在,我们每一天都身处在IT行业的变化之中。今天的软件、分布式计算和大型商用集成应用层出不穷,对软件在高效性、稳定性和安全性上的要求业越来越高。许多专业的软件公司已经建立了从售前服务、实施咨询到售后支持的完善的服务体系,为用户购买软件的全过程提供服务。但是这种模式仍然存在着固有的问题,最重要的就是在软件稳定运行之后,对其升级、安全、潜在Bug和应用需求变更上的支持存在很大的局限性。由于软件的交付规模越来越大,使得用户的软件投资从一开始就存在着不可避免的风险。2003年,红帽的财务开始实现良性增长,使其探索热情也受到了很大鼓舞。经过全面的分析和准备之后,红帽对自己的经营模式进行了一次崭新的尝试,推出了今天备受人们瞩目的“订阅模式”。所谓订阅模式,就是指红帽在坚持开源和软件免费的前提下通过年度订阅的方式,为用户采用的红帽企业级产品提供系统维护、技术支持、安全性和认证方面的持续有效的技术服务和支持。同时,订阅也强调客户在获得服务和支持的同时具有很高的灵活性和自主性。
2.订阅服务的内容
从根本上来说,红帽订阅模式可以使用户能够根据自身的实际情况放心地利用开源中的最新技术实现投资回报的最大化,这就是订阅模式的理念和成功的动力。当用户激活自己的订阅模式后,不仅可以获得软件的最新升级,还可以从红帽网络中获得系统管理、升级和支持的有效解决方案。与此同时,红帽还为其提供的每一个版本产品提供为期7年的服务支持保证。订阅服务不再是简单的软件购买,“模糊了产品的概念,我们的软件就是服务”,这也正是用户在购买软件应用系统真正的需要。考查红帽的订阅模式,除了软件产品本身之外,其魅力和价值包括以下许多服务。这些服务内容组合在一起,就像建筑一座大厦要依靠基石、钢筋、混凝土和装饰等许多材料,按照精心设计的图纸才能建成。订阅模式真正为用户提供了一个可信赖的产品,或者说是产品之上的服务,这些服务如下。
(1)提供软件相关的测试及质量控制技术,在用户获得产品之后,提供该产品在应用过程中可能会涉及的在设计及验证时形成的技术。
(2)为不断成长的庞大软硬件系统提供持续的服务及支持,适应软件用户自身不断发展的需要。
(3)由红帽网络提供的快速而易于部署的软件及升级。
(4)在超过订阅期之后的新版本信息。
(5)最新的特性、补丁、安全修订和新的硬件及软件支持。
(6)允许用户自由升级硬件,并为升级及迁移提供相关的技术服务及支持。
(7)由服务和支持工程师每日更新的关于软件产品的应用提示、最佳实践、问题建议,以及最新的技术信息。
(8)订阅期内的知识产权保证,在版权保护的前提下实现共享与合作,推动软件创新及服务水平。
(9)由多级服务构成的Red Hat技术支持,订阅本身是分级别的,用户可以根据需要选择和企业应用相一致的级别。
3.订阅服务的优点
订阅模式还不仅仅像红帽轻描淡写的那样:“就像是订报纸,并不是买一张纸,而是买其中的信息内容。”事实上,我们眼前的订阅模式是一个为用户提供的全面的服务平台体系,在这个平台的背后存在庞大的规范化可定制信息体系和技术专家的支持。基于这些全方位的软件应用服务,在IT系统应用级别上克服了原来的一些服务缺陷。比较传统商业模式产生了巨大的优势,从红帽订阅模式来看,这些优势表现于以下方面。
(1)高性能并更安全:由于特性发布和升级是一个持续的过程,并且提供之前都经过了全面的测试与质量控制。从而为用户提供了稳定和高性能的保障,在应用过程中可以不断降低总成本。同时红帽还和硬件和软件供应商紧密合作,通过不断认证新硬件和新应用为用户的部署提供了最大自由度的选择。
(2)最新的系统管理及维护:红帽网络是一个基于Web的管理工具套件,为用户管理和升级系统以及用户的组织提供便捷且高效的管理手段。同时,红帽网络为保护用户的安全及隐私方面提供了更好的部署架构。
(3)随时随地的服务支持:订阅不仅为当前系统提供了安全、可靠和实时的服务及支持保障,而且在用户存在问题时可以和红帽认证工程师沟通或者从私有技术信息库中获得解答。此外,如果用户认为不够,红帽还将对用户从订阅模式中获得更进一步的支持负责。另一方面,持续和用户的交流也使得红帽可以从各种反馈中吸取经验,为更好的技术发展创造了基础。
(4)更低的部署风险:订阅模式为用户的应用提供了更好的方式,用户在使用的过程中购买服务,在订阅的生命期中持续获得价值。这种价值在访问新技术、新特性、安全补丁包,以及其他硬件和软件支持的过程中得到体现,从而降低了用户的投资风险。红帽同时提供了针对每一产品版本为期7年的服务支持保证,使得用户在IT上的花费是可预期的。
1.3.3 Red Hat Enterprise Linux 5.0简介
从2006年末到2007年初,先后有两个重量级别(Vista和Red Hat Enterprise Linux5)的操作系统在中国发布。在发布时间上二者有相似之处,都出现了多次跳票现象,可以看到对于Microsoft和Redhat来说确保操作系统的质量比按时发布要重要得多。Redhat于3月16日在San Francisco发布了酝酿两年之久的下一个重要版本Red Hat Enterprise Linux 5,这个版本让和Red Hat Enterprise Linux 4.0相隔两年多,在Suse Linux Enterprise Server 10、Windows Vista及Unix等商业平台的重压下终于重装上阵。最重要的特性当属XEN虚拟化,还包括内核升级及Red Hat Cluster Suite等。对于用户来说,了解红帽企业Linux 5所带来的变化是非常必要的。如果过去使用的是红帽企业Linux 5或者是更早一些的版本,你将会发现Red Hat在用户会话安全以及服务器并行虚拟化方面做出了非常重要的改进。总的来说,这些变化主要体现在以下几个层面。
1.产品结构和内核版本
软件组件包的结构与以前版本的红帽企业Linux有所不同,不同种类的媒介套件和ISO映像被减少到如下两种。
(1)Server版本分为Red Hat Enterprise Linux Advanced Platform(对应以前的Red Hat Enterprise Linux AS)和Red Hat Enterprise Linux(对应以前的Red Hat Enterprise Linux AS)。
(2)Desktop版本分为Red Hat Enterprise Linux Desktop(对应以前的Red Hat Desktop)和Red Hat Enterprise Linux Desktop with Workstation option(对应以前的Red Hat Enterprise Linux WS)。
2.安装速度
整个安装过程和上一个版本相比明显缩短,而且易用性非常好。唯一的缺憾就是对基于SATA硬盘和光盘芯片组的支持有待改进,使用Intel 965芯片组时必须配置SATA DVD-ROM。另外安装过程需要输入一个安装号码,用来配置安装程序来提供正确的软件包,它包含在用户的订阅中。如果没有输入安装号码,只安装核心服务器或Desktop,其他功能可以在以后手工安装。关于安装号的更多信息请访问 http://www.redhat.com/apps/support/in.html。在安装过程中使用的安装号将被存放在/etc/sysconfig/rhn/install-num中。当在红帽网络注册时,这个文件将自动被rhn_register引用,决定系统应该订阅到哪个合适的子通道。
3.对虚拟化的支持
虚拟技术一直是高端服务器的功能,通过存储厂商EMC子公司VMware的软件目前已经在主流X86服务器中获得应用,目前Xen缺乏VMware的市场能力,开源软件将整合Linux企业版本和Sun系统公司Solaris的标准功能。红帽企业Linux 5包括i686和x86-64基于Xen的虚拟化功能的技术预览,并提供了管理虚拟化环境的基础环境。在红帽企业Linux 5中,虚拟化是基于hypervisor的,它使用极低的系统开销来实现paravirtualization技术。在带有Intel虚拟化技术或AMD AMD-V功能的处理器上,红帽企业Linux 5上的虚拟化可以使没有被修改的操作系统在完全虚拟化的模式中运行。红帽企业Linux 5的虚拟化还提供以下功能。
(1)Virtual Machine Manager,一个用来监测并管理虚拟机的图形化工具。
(2)通过安装程序设置虚拟机并可以通过kickstart安装虚拟机。
4.SELinux(Security Enhanced Linux)增强
SELinux最早出现在Red Hat Enterprise Linux 4中。semanage是一个策略管理工具,它修改SELinux配置并允许配置文件上下文,以及网络组件标签和Linux到SELinux的用户匹配。SELinux的这项功能由国家安全署(National Security Agency)开发,它是建构于Kernel之上的安全机制,提供以往只在商业信息技术作业环境才拥有的高阶安全基础架构。Red Hat Enterprise Linux 5还提供了SELinux Troubleshooter工具(提供了的中文界面),用来检查SELinux错误日志。通过SELinux管理工具可以调整多种设置,以使得日志中发现的问题可以得到适当的修复。SELinux Troubleshooter是一个基于GUI的分析仪,它可以指导系统管理员在发生安全报警时采取适当的措施。
5.增强LVM2支持
LVM(Logical Volume Manager,逻辑卷管理器)是一种把硬盘驱动器空间分配为逻辑卷的方法,使硬盘不必使用分区也能被简单地重新划分大小。早在UNIX操作系统时代,在HP和IBM AIX上就可以看到VM的身影。作为IBM的旗舰产品,AIX很早就支持了动态逻辑分区(DVM)。红帽企业Linux 5提供了一个图形化的Logical Volume Manager(LVM)配置工具system-config-lvm2,允许用户为本地的物理磁盘和磁盘分区建立卷组群。它使得被创建的逻辑卷非常灵活,可扩展,并可以使系统如同使用普通的物理磁盘一样使用这个逻辑卷。使用图形来代表系统的磁盘和卷,从而帮助用户更直观地查看存储设备的使用情况并为卷的管理任务提供了一个界面。
6.Stateless Linux支持
红帽企业Linux 5启用了Stateless Linux的基础环境,Stateless Linux为运行和管理一个系统提供了一个新思路,其设计思想是通过使系统的组成部分可以被简单地更换来达到简化维护和管理一个大型系统的目的。这主要通过使用提前准备好的系统映像来实现,这些系统映像可以在大量的stateless系统间被复制和管理。操作系统以只读的方式运行,在当前开发阶段,stateless的功能只是其所要设计达到的功能的一部分,因此这些功能被标记为技术预览。
(1)使用NFS运行一个stateless映像。
(2)使用loopback over NFS来运行一个stateless映像。
(3)在iSCSI上运行。
7.iSCSI存储的增强支持
iSCSI(internet SCSI)是一套定义在TCP/IP网络上传输SCSI协议的命令,它将SCSI定义的发起方(initiator)和目标方(target)由原来的SCSI总线连接扩展到internet上,打破了SCSI定义中的存储距离的限制。本次发布包含了iscsi-initiator-utils、iSCSI守护进程及工具程序,提供对iSCSI接口的硬件的支持。
8.kdump
Kexec和Kdump工具组合提供了新的崩溃转储功能,以及加快启动的可能。通过跳过引导时的固件,Kexec在一个内核运行的同时加载新的内核;而Kdump可以提供前一个内核的内存转储以调试。
9.EXT3的性能增强
在红帽企业Linux 5中,EXT3文件系统所支持的最大容量已经从过去的8 TB增加到16 TB。当前对16 TB的支持还只是一个技术预览,完全支持计划被包括在以后发行的红帽企业Linux 5中。
10.网络性能
红帽率先推出了支持IPv6协议的Red Hat Enterprise Linux 5,它将与核心路由机制及防火墙相互配合,让用户自由地在IPv6协议和IPv4协议之间转换。因此,如果用户担心对IPv6协议的交叉应用支持,Red Hat Enterprise Linux 5是个不错的选择。另外Iptables防火墙的ipv6模块也自动集成网络存储方面的增强功能,如对Autofs、FS-Cache和iSCSI的支持。Samba提供了与Microsoft Windows文件和打印(CIFS)系统互用的功能。新增加的功能包括与Microsoft活动目录更好的集成,以及Microsoft文件/打印共享。
针对UNIX互用性的最新AutoFS和NFSv4功能如下。
(1)直接映射支持提供与UNIX环境的兼容性。
(2)懒人加载/卸载(Lazy mount/unmount)大大减少了客户端系统上同时加载的数量,因此可以在大型网络文件系统架构中实现高效的部署。
(3)可与Sun Solaris、HP/UX、IBM AIX和其他UNIX系统共享映射。
(4)使用Kerberos和Digest-MD5等与LDAP服务器进行经过认证的绑定。
(5)NFSv4在性能、稳定性,以及通过SecureNFS在安全和服务器端授权方面的功能大大增强。
11.开发环境改进
在红帽企业Linux 5中使用了改进的应用开发工具,包括SystemTap profiler和Frysk调试器,以及GCC 4.1和glibc 2.4工具链(toolchain)。
12.桌面易用性
桌面的增强功能提供了最新的配置工具、应用和笔记本电脑支持。提供了智能卡登录-使用PKI/Kerberos认证,加强了对即插即用硬件的支持(照相机、打印机和扫描仪等)。另外新的网络管理器提供了自动有线和无线网络配置功能,使用AIGLX/Compiz增强了图片效果(带有淡化及透明等功能)。
1.3.4 Red Hat Enterprise Linux 5产品线
适用于服务器的红帽企业Linux有两种,一种是红帽企业Linux基础服务器,主要面向小型部署;另一种是红帽企业Linux高级平台,主要面向主流客户,可提供最经济有效、灵活和可扩展的环境。这两种红帽企业Linux都以普通的内核技术为基础,并包含一个全面的开源服务器应用套件和虚拟化功能。表1-2所示为红帽企业Linux服务器与红帽企业Linux高级平台两个版本的对比。
表1-2 红帽企业Linux服务器与红帽企业Linux高级平台的比较
红帽企业Linux各版本服务器的对比如表1-3所示。
表1-3 红帽企业Linux各版本服务器对比表
表1-4所示为红帽企业4和5两个版本的技术能力及范围的对比。
表1-4 红帽企业4和5两个版本的技术能力及范围
1.4 本章小结
Linux是一种开放源代码的操作系统,自1991年以自由和开放源代码的形式问世以来得到了迅猛发展,其应用广泛。本章简要介绍了Linux系统的起源、内核版本划分、各种发行版本、开源软件的商业模式,以及Red Hat Enterprise Linux 5产品线及其特点。