- Red Hat Enterprise Linux 8.0 系统运维管理
- 曹江华
- 9字
- 2020-11-21 19:40:23
第1章 vRed Hat Enterprise Linux简介
1.1 Linux简介
Linux操作系统是UNIX操作系统的一种克隆系统,诞生于1991年10月5日(第一次正式向外公布的时间)。得益于Internet的发展和全世界各地计算机爱好者的共同努力,如今它已成为世界上用户人数最多的一种UNIX类操作系统,而且用户人数还在迅猛增长。Linux操作系统的成长过程始终依赖着几个重要支柱,即UNIX操作系统、MINIX操作系统、GNU计划和POSIX标准。
1.1.1 UNIX操作系统的诞生
UNIX是一个多用户、多任务的操作系统,最初由贝尔实验室的Ken Thompson于1969年开发成功。UNIX 当初设定的目标是允许大量程序员同时访问计算机,共享其资源。它非常简单,但是功能强大、通用,并且可移植,在从微机到超级小型计算机,以及大型计算机上均可运行。
UNIX 系统的心脏是内核——一个系统引导时加载的程序。内核负责与硬件设备打交道、调度任务、管理内存和辅存。正是由于UNIX系统具有这种精练特性,众多小而简单的工具和实用程序被开发了出来,而且这些工具能够很容易地组合起来执行多种大型任务,所以UNIX迅速流行起来。其中较重要的工具之一就是shell,一个让用户能够与操作系统沟通的程序,本书将剖析当今主流shell的特性。最初UNIX被科学研究机构和大学采用,后来UNIX的用户慢慢扩展到计算机公司、政府机构和制造业领域。1973年,美国国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA)启动了一项计划,该计划是研究使用UNIX将跨越多个网络的计算机透明地连接在一起的方式。该计划及其形成的网络系统,促使了Internet的诞生。
20世纪70年代后期,许多在大学期间体验过UNIX的学生投身于工业界,并要求工业界的操作系统向UNIX转换,声称它是最适合复杂编程环境的操作系统。很快大量的厂家开始开发自己的UNIX操作系统,并在自己的计算机体系结构上对其进行优化,以期占领市场。最著名的两个UNIX版本是AT&T的System V和由Berkely CSRG于20世纪80年代早期开发成功的BSD UNIX,后者源于System V。
面对拥有如此多版本的UNIX(曾有一个图表列出了80多个UNIX版本),如果不花费时间和精力考虑兼容问题,那么在一个系统上能够正常运行的应用程序和工具可能无法在另一个系统上正常运行。由于UNIX缺乏统一的标准,许多厂家放弃了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年,为了反对软件所有权的私有化,Richard 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宽通用公共许可证”(GNU General Public License)以体现GNU计划的哲学观。
1991年8月25日,Linus Torvalds在Usenet新闻组上公开了关于Linux的构想。为了超越MINIX,Linus Torvalds发布了一个新的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的System V和Berkeley CSRG的BSD UNIX的调用接口之间的区别重新调和集成,从而于1984年产生了/usr/group标准。1985年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)在ANSI的支持下开始责成IEEE标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。1986年4月,IEEE标准委员会制定出了试用标准。第一个正式标准(IEEE 1003.1—1988)是在1988年9月批准的,即后来经常提到的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刚刚起步。POSIX标准为Linux提供了极为重要的信息,使得Linux能够在标准的指导下进行开发,并与绝大多数UNIX系统兼容。最初的Linux内核代码(0.01版及0.11版)就已经为Linux与POSIX标准的兼容做好了准备工作。
1.1.4 Linux概述
通过上述说明,我们可以对上述Linux的几个支柱进行如下归纳。
(1)UNIX操作系统:1969年诞生在贝尔实验室,Linux是其克隆系统。
(2)MINIX 操作系统:也是 UNIX 的一种克隆系统,1987 年由著名计算机教授Andrew Tanenbaum开发完成。由于MINIX系统及其源代码的出现(只能免费用于大学内),所以在全世界的大学中刮起了学习UNIX系统的风潮,Linux最初就是参照MINIX系统于1991年开始开发的。
(3)GNU 计划:Linux 操作系统及 Linux 操作系统中所用的大多数软件基本上都出自GNU计划,Linux只是操作系统的一个内核。如果没有GNU软件环境(如bash shell),那么Linux将寸步难行。
(4)POSIX标准:在推动Linux操作系统向正规化道路发展中起着重要的作用,是Linux前进的灯塔。
Linux是由Linus Torvalds等众多软件高手共同开发的,是一种能运行于多种平台(如计算机及其兼容机、Alpha工作站及SUN Sparc工作站)、源代码公开、免费、功能强大、遵守POSIX标准,并且与UNIX兼容的操作系统。
Linux运行的硬件平台起初是Intel 386、Intel 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)支持 Windows X系统及其应用程序,可运行各种图形应用程序,如 Khoros、GRASS等。
(5)支持多种自然语言,如中文、英文。
(6)支持多种大型数据库,如Oracle、Sybase等。
(7)支持与其他操作系统(Windows、Mac OS等)的共享。
(8)具有强大的网络功能,支持多种网络协议,如TCP/IP、IPX、Appletalk、NETBEUI、X.25等。发布的版本中有多种网络服务软件,如E-mail、FTP、telnet及WWW等。
当然,Linux还在不断地发展,它是一个很有发展前景的操作系统,也是为数不多可以与Windows操作系统相竞争的操作系统。Linux是一个可免费使用和自由传播的UNIX操作系统,主要用于基于Intel系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的,其目的是建立不受任何商品化软件的版权制约的,所有人都能自由使用的UNIX兼容产品。Linux的开发者是一位名为Linus Torvalds的计算机业余爱好者,他当时是芬兰赫尔辛基大学的学生。他最初的目的是设计一个代替MINIX(MINIX是由一位名为Andrew Tannebaumn的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统不仅可用于Intel 386、Intel 486或Pentium处理器的个人计算机上,并且具有UNIX操作系统的全部功能。Linux以其高效性和灵活性著称,它能够在计算机上实现UNIX的所有特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux受到广大计算机爱好者的喜爱的原因有两个:一是 Linux 是一个用户不用支付任何费用就可以获得它和它的源代码,且可以根据自己的需要进行修改的操作系统,实现了无偿使用及无约束地继续传播;二是 Linux 具有 UNIX操作系统的所有功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从Linux操作系统中获益。
1.1.5 Linux和开源软件的商业化
1.Linux和开源软件的商业化历程
Linux和开源软件的商业化历程大致经历了以下几个阶段。
1)萌芽阶段(1995年以前)
1995年以前,开源社区基本上没有考虑过商业化运行的问题。与开源软件有关的商业活动仅限于出售开源软件安装盘、书籍及印有开源软件标志的文化衫等。当时这些商业行为并没有获得开源社区的尊重,从事这些商业活动的人也被社区成员称为“小商贩”。但就在这群毫不起眼的小商贩中,竟然走出了两位后来在开源界赫赫有名的大人物,即Red Hat软件公司的两位创始人Young和Marc Ewing。
2)探索阶段(1995—2000年)
1995年,Young购买了Ewing的股份,把新公司命名为“Red Hat软件公司”,同时发布Red Hat Linux 2.0。Red Hat软件公司的成立,拉开了开源软件探索商业运行的序幕。在Red Hat软件公司的带领和激励下,越来越多的人嗅到了开源软件的商机,各种从事开源软件事业的商业机构开始蓬勃发展。在中国,1999—2000年,短短两年就涌现出红旗Linux、中软Linux、蓝点Linux、冲浪Linux、TurboLinux及TomLinux等品牌。不过在这一阶段,开源软件并没有找到真正的商业模式,大部分企业只停留在概念炒作层面。
3)发展阶段(2001—2003年)
2002年前后,随着网络泡沫的破灭,开源软件的神话随之被打破。大量缺乏真正商业模式的开源软件企业面临着要么倒闭,要么退出开源软件市场的尴尬境地。剩下的经受住市场锤炼的开源软件厂商慢慢冷静下来,潜心寻找适合自己的商业模式。在这些企业寻找正确的商业模式的过程中,一些较早探索出商业模式的开源软件企业,挺过了IT行业的寒冬,得到了迅速发展,如Red Hat软件公司、JBoss和MySQL等。
4)融合阶段(2004年至今)
2003 年 11 月,曾叱咤风云的软件巨头 Novell 收购了全球排名第二的 Linux 发行商SuSE,借助Linux实现了战略转型。Novell的做法为开源软件的商业运行提供了全新思路,产生了深远影响。在Novell的推动下,开源软件开始与商业软件和平共处,并走进了金融和电信等行业大户的视野。与此同时,原来在幕后支持开源软件的 IT 巨头也开始更直接地介入开源软件的发展。例如,IBM于2005年5月收购开源软件Gluecode,于2005年11月成立开源文档基金会;SUN从2005年6月开始,逐步开放Solaris等多款软件的源代码等;2018年IBM宣布以340亿美元的价格收购Red Hat软件公司。
2.Linux和开源软件的商业模式
经过归纳,Linux和开源软件的商业模式大致包括以下6种。
1)免费软件+收费硬件
IBM、SUN及惠普等公司在开源软件领域投入巨大,但这一切并非做慈善,它们也从配置了开源软件的硬件中获取了巨额回报。
2)免费知识+收费书籍(培训)
开源软件出版商O’Reilly公司组织各种开源软件会议,推进开源理念和开源软件技术的传播与发展,通过出售书籍赢利。目前,LPI 和中国的即时科研集团也在大力开展 Linux培训,其赢利模式与O’Reilly公司如出一辙。
3)免费程序+收费实施
一些开源软件厂商免费提供系统的程序代码,靠提供技术服务赚钱,JBoss就是这种模式的典型代表。JBoss应用服务器软件程序完全免费,技术文档、培训和二次开发支持等技术服务是收费的。
4)免费社区版+收费企业版
对于一些通用软件,如操作系统和数据库软件,开源软件厂商一般采用针对不同用户提供不同版本的方式。在这种模式中,免费版本软件为赢利的收费版本软件创造或维持了市场地位。这种模式较为普遍,如MySQL产品就同时推出了分别面向个人和企业的两种版本,即开源版本和专业版本,它们分别采用了不同的授权方式。开源版本完全免费以便更好地推广产品,专业版本的许可销售和支持服务为公司赢得收入。
5)开源软件+商业软件
将免费的开源软件与可赢利的商业软件捆绑销售,用开源软件带动商业软件销量,也是不错的商业模式。例如,Novell将自己原来丰富的中间软件和应用软件迁移到Linux 平台上,通过与Linux捆绑为客户提供高价值的综合解决方案。红旗Linux和TurboLinux也在积极加强与应用软件厂商的联系或自己开发商业软件,通过附加更多的商业软件来增加收入。
6)免费软件+收费专业服务
免费软件+收费专业服务模式的典型代表是SourceLabs和SpikeSource公司。采用此模式的公司并不主推自己的产品品牌,而是与多方开源软件厂商或社区合作,为他人提供的开源软件提供技术测试、集成及维护等服务。在这种模式中,公司的角色与原来的系统集成商类似,他们把开源软件打包到事先经过鉴定并且受支持的标准化堆栈中。为了让各种各样的软件组件正常地协同工作,他们帮助客户配置及测试这些软件组件,而预先设计并经过鉴定的堆栈有助于缩短配置与测试时间。