01 Red Hat Enterprise Linux 6.0系统简介
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版本,访问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 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.3 POSIX标准历史
POSIX(Portable Operating System Interface of UNIX)是由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标准。
在20世纪90年代初,POSIX标准的制定正处在最后投票敲定时,此时Linux刚刚起步。这个UNIX标准为Linux提供了极为重要的信息,使得Linux能够在标准的指导下进行开发,并与绝大多数UNIX系统兼容。在最初的Linux内核代码中(0.01版及0.11版)就已经为Linux与POSIX标准的兼容做好了准备工作。
1.1.4 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之所以受到广大计算机爱好者的喜爱,主要原因一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要进行必要的修改,无偿使用,无约束地继续传播;二是它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux中获益。
1.1.5 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年至今)
2003年11月,曾叱咤风云的软件巨头Novell收购了排名全球第二的Linux发行商Suse,借助Linux实现战略转型。Novell的做法为开源软件的商业运行提供了全新思路,产生了深远影响。在Novell的推动下,开源软件开始与商业软件和平共处,不再停留在小打小闹阶段。而是走进金融和电信等行业大户的视野,刷新了在企业用户心目中的形象。与此同时,原来在幕后支持开源软件的IT巨头也开始更直接地介入开源软件的发展。如IBM于2005年5月收购开源软件Gluecode,2005年11月率众成立开源文档基金会。SUN公司从2005年6月开始,逐步开放Solaris等多款软件的源代码等。
1.1.6 Linux和开源软件的商业模式
经过研究与归纳,Linux和开源软件的商业模式大致包括以下6种。
1.免费软件+收费硬件
IBM、SUN及惠普等公司在开源软件领域投入巨大,但这一切并非是做善事,它们可以从配置了开源软件的硬件中获取巨额回报。
2.免费知识+收费书籍(培训)
开源软件出版商O’Reilly公司组织各种开源软件会议,推进开源理念和开源软件技术的传播与发展,以出售书籍赢利。LPI和中国的即时科研集团目前也在大力开展Linux培训,其赢利模式如出一辙。
3.免费程序+收费实施
一些开源软件厂商免费提供系统的程序代码,靠提供技术服务赚钱,JBoss就是这种模式的典型代表。JBoss应用服务器软件程序完全免费,而技术文档、培训和二次开发支持等技术服务则是收费的。
4.免费社区版+收费企业版
对于一些通用软件,如操作系统和数据库软件,开源软件厂商一般采用针对不同用户提供不同版本的方式。在这种模式中,利用免费版本软件为赢利的收费版本创造或维持一种市场地位。这种模式较为普遍,如MySQL产品就同时推出面向个人和企业的两种版本,即开源版本和专业版本分别采用不同的授权方式。开源版本完全免费以便更好地推广,公司通过专业版的许可销售和支持服务获得收入。
5.开源软件+商业软件
将免费的开源软件与可赢利的商业软件捆绑销售,以开源软件带动商业软件的销售,这也是不错的商业模式。比如Novell就将自己原来丰富的中间软件和应用软件迁移到Linux平台上,通过与Linux捆绑为客户提供高价值的综合解决方案。红旗和TurboLinux也在积极加强与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来增加收入。
6.免费软件+收费专业服务
这种模式的典型代表是SourceLabs和SpikeSource公司,这些公司并不主推自己的产品品牌,而是与多方开源软件厂商或社区合作,利用他人提供的开源软件提供技术测试、集成及维护等服务。在这种模式中,公司的角色与原来的系统集成商有点类似,他们把开源软件打包到事先经过鉴定并且受支持的标准化堆栈中。为了让各种各样的软件组件正常地协同工作,他们帮助客户配置及测试这些软件组件,而预先设计并经过鉴定的堆栈有助于缩短配置与测试时间。