1.3 Linux操作系统

从操作系统的功能来看,Windows操作系统和Linux操作系统实现的功能是一致的,只是所用的形式不同。操作系统是一种用于管理计算机系统资源和控制程序执行的系统软件,可以扩充硬件的功能,为用户提供方便的使用接口和良好的运行环境。

1.3.1 Linux操作系统结构

Linux作为一个成熟的操作系统,系统结构都是比较完善的。它不仅继承了UNIX的精髓,而且得到了更大的发展。与UNIX的内核层和外壳层两部分结构不同,Linux操作系统由Linux内核、Linux Shell和文件结构3个部分组成。

1. Linux内核

内核负责管理系统的各种资源,比如进程、内存、设备驱动程序、文件和网络系统等,其决定了系统的性能和稳定性。

(1)Linux内核简介

Linux的内核源程序遵循GPL规定,都是开放的,可以在系统目录/usr/src/linux下找到。而基于Linux的大部分应用软件也遵循GPL,普通用户同样可以获得相应的源代码。Linux内核最大的好处就是用户可以通过源程序了解操作系统是如何工作的。通过阅读源代码,程序员可以了解操作系统的工作原理,甚至可以根据自身环境重新编译Linux的内核,定制一套符合自己工作习惯的操作系统。

(2)内核版本号

由于Linux的源程序是完全公开的,任何人只要遵循GPL就可以对内核加以修改并发布。带来便利的同时也会带来一个问题,那就是哪个版本的Linux是原始的版本,哪个版本是其他人开发的呢?为此,Linux开发人员对Linux版本采用了双树系统,即一个是稳定树,另一个是非稳定树。一些新特性、实验性改进首先在开发树中进行,如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中的改进经过测试以后,在稳定树中将进行相同的改进。

开发树与稳定树的区别主要是版本号,一般Linux的版本号的形式为x.y.z。如果是稳定树,那么y是偶数,而开发树的y值比相应的稳定树大1(奇数)。

通常新内核会支持更多的硬件,具有更好的进程管理能力,运行速度更快、更稳定。另外,新内核一般还会修复老版本中的许多漏洞。Linux内核版本发布的官方网站是http://www.kernel.org

2. Linux Shell

Shell是Linux操作系统的用户界面,为用户与内核间的交互操作提供接口,接收用户命令并进行编译,然后再送到Linux内核执行。

Shell是一个命令解释器,也可以看作是一种编程语言,用户可以利用Shell命令编写程序。与普通编程语言相似,Shell编程语言也可以使用循环结构和分支控制结构。

Linux操作系统刚开始发布的时候,大多数的命令都是通过命令行来实现的。随着Windows图形界面在用户中的不断普及,Linux也提供了类似Microsoft Windows的图形界面KDE(King Desktop Environment,桌面环境之王)和GNOME(GNU Network Object Model Envirment)。这是Linux操作系统中最常见的两种窗口管理器,为用户提供了类似Windows操作系统的工作环境,通过鼠标就可以完成大多数的系统管理操作。

需要说明的是,Linux实际上只是一个基于命令行的操作系统,图形界面并不是其组成架构,只是系统的扩展。这与Windows操作系统有很大的差别,尤其是Windows 95之后的操作系统。此类Windows操作系统如果没有图形界面,那么就不能被称为“Windows”。

每个Linux系统用户都可以拥有独立的用户界面或者Shell,也就是说Linux的Shell及用户界面是可以定制的。Shell具有多个版本,常见的有以下几个。

● Bourne Shell:是由贝尔实验室开发的。

● BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的Shell。

● Korn Shell:是对Bourne SHell的发展,在内容上基本与Bourne Shell兼容。

● C Shell:是SUN公司Shell的BSD版本。

3. Linux文件结构

文件在磁盘等存储设备上的组织存储方式称为文件结构。任何一种操作系统都是由很多个文件组成的,而这些文件又自成体系,有自己的构成方式。

目录为文件管理提供了一种方便而有效的途径,用户不仅能够从一个目录切换到另一个目录,还可以设置目录和文件的权限以及共享程度。

系统管理员及其他用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。Linux目录采用多级树形结构,用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。

Linux是一个多用户系统,文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。

内核、Shell和文件结构一起形成了操作系统的基本结构。它们使得用户可以运行程序,管理文件以及使用系统。此外,Linux操作系统还有许多被称为实用工具的程序,辅助用户完成一些特定的任务。

1.3.2 Linux操作系统特点

Linux操作系统在推出之后得到了迅猛的发展,这与其良好的性能分不开。Linux操作系统主要具有以下特性。

1. 开放性

Linux操作系统的兼容性很高,遵循世界标准规范,特别是开放系统互联(OSI)国际标准,而微软的视窗操作系统源代码基本保密。

2. 多任务

在多核处理器时代,Linux操作系统的一大优势是:系统调度的每一个进程都可以平等地访问微处理器。而因为CPU的处理速度非常快,所以各个应用程序看起来就像是同时运行的。

3. 多用户

Linux是一个多用户操作系统,系统资源可以被不同用户各自拥有使用,而每个用户对自己的资源(例如文件、设备)都有特定的权限,互不影响。

4. 设备独立性

Linux可以把所有外部设备统一当作文件,只要安装相关的驱动程序,任何用户都可以像使用文件一样使用这些设备。另外,用户可以免费得到Linux的内核源代码,这样,用户便可以自己修改操作系统的内核源代码,以适应新增加的外部设备。

5. 提供了丰富的网络功能

一般的操作系统并没有内置的网络连接功能,也不具备联网的灵活性。而Linux操作系统具有完善的与内核结合在一起的网络功能,在通信和网络功能方面优于其他操作系统。

6. 费用低廉

与微软的Windows操作系统相比,Linux系统的使用费用几乎可以忽略。由于Linux基于GPL,系统本身免费,而且不少发行套件包含了丰富的应用软件,基本上都可以满足大多数用户的使用需求。

1.3.3 Linux操作系统的应用领域

Linux操作系统常用于基础服务器应用,如DNS服务器、DHCP服务器、Web服务器、目录服务器、防火墙、文件和打印服务器、Intranet代理服务器等。另外,Linux操作系统还用于高性能计算、密集型计算应用等方面,如风险分析、数据分析、数据建模等。

Linux操作系统从第一个内核诞生到现在,其开放、安全、稳定的特性得到越来越多用户的认可。自由软件的低成本、高安全性,又使得Linux得到了各国政府强有力的支持。Linux的应用领域逐渐扩展,从最早的Web、FTP、邮件服务,到个人桌面应用、网络安全、电子商务、远程教育、集群运算、网格运算、嵌入式系统等各个领域。

很多对Linux操作系统比较陌生的用户,可能会认为其应用领域比较窄。实际上,自Linux推出以后,其应用已经遍及服务器、嵌入式操作系统、桌面系统等各个领域,成为了用户工作、生活的良好助手。

1. 服务器系统

目前,Linux应用最广泛的是服务器操作系统领域。以Linux为基础的“LAMP(Linux,Apache,MySQL,Perl/PHP/Python的组合)”技术,已在开发者群体中广泛流行,也是网站服务供应商最常使用的平台。

2. 桌面系统

新版本的Linux操作系统特别在桌面应用方面进行了改进,完全可以作为一种集办公应用、多媒体应用、网络应用等多功能于一体的图形界面操作系统,而且它也是免费的。

3. 嵌入式系统

目前,Linux操作系统的一项非常重要的应用是作为移动设备的嵌入式系统。例如机顶盒、移动电话及行动装置等,都使用了嵌入式Linux操作系统。由于Linux内核完全公开,大大降低了基于Linux的嵌入式系统的研发成本,而且不受其他非人为因素的干扰。

4. 电子政务

由于众多IT知名厂商的支持以及安全性方面的优势,Linux正在成为一股可以与Windows分庭抗衡的力量,并且广泛地应用于政府领域。目前许多国家的电子政务系统都建立在Linux平台上,如墨西哥政府已经宣布在全国所有的中、小学配置Linux并为学生提供Internet服务。中国政府在Linux领域一直给予极大的支持,由工业和信息化部、科技部、国家信息化推进工作办公室等相关部门牵头,业界企业、大专院校、科研机构等参与,目标是加强Linux软件标准建设的一系列重要举措。这些重要举措是:成立Linux软件标准工作组、建立国家Linux公共服务平台体系并出台软件政府采购管理办法,如红旗Linux,已经获得了中国政府的认可。

1.3.4 Red Hat Enterprise Linux 5

Red Hat Enterprise Linux 5发布于2007年3月14日,是Red Hat商业操作系统的第5个重要版本,新版本的主要变化是内核升级为2.6.18,开始支持Xen虚拟化技术、集群存储等,如图1-5所示。

图1-5 Red Hat Enterprise Linux 5

Red Hat Enterprise Linux主要有以下特性。

1. 性能强

Red Hat Enterprise Linux 5基于新的2.6.18内核,对于多内核处理器的支持更完善,并支持Intel Network Accelerator Technology(IOAT),增强了基于Kexec/Kdump的Dump支持,增强了对于大型SMP系统的支持,增强了管道缓存。

2. 虚拟化技术

支持在各种平台上的虚拟化技术,在Red Hat Enterprise Linux Advanced Platform上甚至支持了存储与扩展的服务器虚拟化技术,还提供了virt-manager、libvirt/virsh管理工具。

3. 网络与存储

Red Hat Enterprise Linux 5支持Autofs、FS-Cache和iSCSI,让用户可以更方便地管理存储设备,增强了对于IPv6的支持。此外,还改进了对于Microsoft文件/打印和Active Directory(目录服务)的支持。

4. 管理

Red Hat Enterprise Linux 5首先简化了安装过程的系统配置,采用基于Yum/Pup的Red Hat Network更新以方便修补系统漏洞,此外,它还采用了更好用的Conga集群和存储管理。

5. 安全

Red Hat Enterprise Linux 5采用SELinux以增强系统的安全性,并且内置了图形化的SELinux管理工具,集成了目录和安全机制,增强的IPSec提高了系统安全性等性能,新的审核机制还可以提供搜索、产生报表和实时监控能力。