Linux服务器配置与管理
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 Linux简介

Linux操作系统属于UNIX类操作系统。它诞生于1991年10月5日(第一次正式向外公布的时间),由芬兰人Linus Torvalds开发出来。后期借助于Internet,经过全世界各地计算机爱好者的共同开发和维护,现已成为当今世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。Linux自诞生以来,凭借其稳定、安全、高性能和高扩展性等优点,得到广大用户的欢迎,成为目前最为流行的操作系统之一。

1.1.1 Linux操作系统

Linux以灵活性及有效性而著称。大部分的微机操作系统,比如DOS,一直都是在受限的微机上开发的,直到近期才能在更多种类的电脑上使用,这类操作系统需要不断地升级以适应微机硬件的发展。而Linux的开发却是不同的,Linux几十年来被用在主机及单机上,现在已成为工作站首选系统的UNIX的微机版。Linux使得UNIX的快速、高效和灵活性能够用于微机,并能够更好地利用个人电脑所提供的资源。

Linux是一个免费的操作系统,用户可以免费获得其源代码,并能够随意修改。由于Linux具有许多UNIX系统的功能和特点,所以它能够兼容UNIX,而无需支付UNIX高额的费用。如一个UNIX程序员在单位可以在UNIX系统上进行工作,回家后在Linux系统上也能完成同样的工作,而不必重新购买UNIX。要知道UNIX的价格比常见的Windows要高出若干倍,和Linux的低廉更是相距甚远。Linux是在公用许可证GPL(General Public License)保护下的自由软件,分为多个版本,如Red Hat Linux、Slackware,以及国内的Xteam Linux等。本章将对Linux进行简单的综述介绍。

1.1.2 Linux系统结构

1.Linux内核

内核是系统的心脏,是运行程序、管理像磁盘和打印机等硬件设备的核心程序。它从用户那里接收命令并把命令送给内核去执行。

Linux内核由5个子系统组成,如图1-1所示。

图1-1 Linux内核系统结构

(1)进程调度程序(SCHED)负责控制进程访问CPU。调度程序所使用的策略可以保证进程能够公平地访问CPU,同时保证内核可以准时执行一些必需的硬件操作。

(2)内核管理程序(MM)使多个进程可以安全地共享机器的主存系统。此外,内存管理程序支持虚拟内存。虚拟内存使Linux可以支持进程使用超过系统中的内存数量的内存。暂时用不着的存储信息可以交换出内存,存放到永久性存储器上(如磁盘的交换分区或交换文件中),以后在需要它们的时候再交换回来。

(3)虚拟文件系统(VFS)。通过提供一个所有设备的公共文件接口,VFS抽象了不同硬件设备的细节。此外,VFS支持与其他操作系统兼容不同的文件系统格式。

(4)网络接口(NET)提供了对许多建网标准和网络硬件的访问。

(5)进程间通信(IPC)子系统为单个Linux系统的进程与进程之间通信提供了一些机制。

这些子系统虽然实现的功能相对独立,但存在着较强的依赖性(调用依赖模块中相应的函数),所以说Linux内核是单块结构(monolithic)的。

2.Linux Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,用于接收用户输入的命令并把它送入内核去执行。

实际上Shell是一个命令解释器,它解释由用户输入的命令并且把命令送到内核。不仅如此,Shell有自己的编程语言用于对命令的编辑,它允许用户编写由Shell命令组成的程序。Shell编程语言具有普通编程语言的很多特点,比如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

Linux提供了像Microsoft Windows那样的可视命令输入界面——X-Windows的图形用户界面(GUI)。它提供了很多窗口管理器,其操作就像Windows一样,有窗口、图标和菜单,所有的管理都是通过鼠标控制,现在比较流行的窗口管理器是KDE和GNOME。

每个Linux系统的用户可以拥有自己的用户界面或Shell,用以满足用户自己专门的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目录采用多级树型结构,图1-2表示了这种树型等级结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。

文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。Linux是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。图1-2中根目录下的目录就是系统目录。

图1-2 Linux目录结构

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

4.Linux实用工具

标准的Linux系统都有一套叫做实用工具的程序,它们是专门的程序,例如编辑器、执行标准的计算操作等。用户也可以产生自己的工具。

实用工具可分三类:

● 编辑器:用于编辑文件。

● 过滤器:用于接收数据并过滤数据。

● 交互程序:允许用户发送信息或接收来自其他用户的信息。

Linux的编辑器主要有:Ed、Ex、Vi和Emacs。Ed和Ex是行编辑器,Vi和Emacs是全屏幕编辑器。

Linux的过滤器(Filter)读取从用户文件或其他地方的输入,并检查和处理数据,然后输出结果,它们过滤了经过的所有数据。Linux有不同类型的过滤器,一些过滤器用行编辑命令输出一个被编辑的文件。另外一些过滤器则是按模式寻找文件并以这种模式输出部分数据。还有一些执行字处理操作,检测一个文件中的格式,输出一个格式化的文件。过滤器的输入可以是一个文件,也可以是用户从键盘输入的数据,还可以是另一个过滤器的输出。过滤器可以相互连接,因此,一个过滤器的输出可能是另一个过滤器的输入。在有些情况下,用户可以编写自己的过滤器程序。

交互程序是用户与机器的信息接口。Linux是一个多用户系统,它必须和所有用户保持联系。信息可以由系统上的不同用户发送或接收。信息的发送有两种方式,一种方式是与其他用户一对一地连接进行对话,另一种是一个用户对多个用户同时连接进行通信,即所谓广播式通信。

1.1.3 Linux的历史与发展

Linux的诞生、发展和成长过程依赖着以下4个重要支柱:UNIX操作系统、MINIX操作系统、GNU计划和POSIX标准。

1.UNIX操作系统

UNIX是Linux诞生的源头。是一种多用户,多任务操作系统。早期UNIX是用汇编语言编写的,但其第三个版本用一种崭新的编程语言C重新设计了。通过重新编写,UNIX得以移植到更为强大的DEC PDP-11/45与11/70计算机上运行。UNIX从实验室走出来并成为了操作系统的主流,现在几乎每个主要的计算机厂商都有其自有版本的UNIX。

2.MINIX操作系统

MINIX系统是由Andrew S.Tanenbaum(AST)开发的,主要用于学生学习操作系统原理。该操作系统作为一种教学操作系统,在大学使用是免费的,但它的实用性有限,并且在1991年也已经有了版权,需要购买才能得到源代码,这也激发了Linux的产生。

3.GNU计划

GNU计划和自由软件基金会(the Free Software Foundation,FSF)是由Richard M.Stallman于1984年一手创办的。旨在开发一个类似UNIX,并且是自由软件的完整操作系统——GNU系统。到上世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括有名的Emacs编辑系统、bash Shell程序、GCC系列编译程序和GDB调试程序,等等。这些软件为Linux操作系统的开发创造了一个合适的环境,是Linux能够诞生的基础之一。以至于目前许多人都将Linux操作系统称为“GNU/Linux”操作系统。

4.POSIX标准

POSIX表示可移植操作系统接口(Portable Operating System Interface,缩写为POSIX是为了读音更像UNIX)。电气和电子工程师协会(Institute of Electrical and Electronics Engineers, IEEE)最初开发POSIX标准,是为了提高UNIX环境下应用程序的可移植性,是UNIX的国际标准。但它也并不局限于UNIX,许多其他的操作系统,例如DEC OpenVMS和Microsoft Windows NT,都支持POSIX标准。POSIX现在已经发展成为一个非常庞大的标准族,Linux的开发都是遵循这个标准进行的。

以上几个概念是Linux诞生的重要前提。1991年,赫尔辛基大学计算机科学系的二年级学生Linus Benedict Torvalds就是在研究学习UNIX和MINIX操作系统的基础上,开发了自己的Linux,并将它公布到Internet上。Linux一问世就引起黑客们的注意,他们通过计算机网络加入了Linux的内核开发,使Linux倾向于成为一个黑客的系统,同时也由于一批高水平黑客的加入,使Linux发展迅猛。

Linux加入GNU并遵循公共版权许可证(GPL)大大加强了GNU和Linux,几乎所有应用的GNU库/软件都移植到Linux,完善并提高了Linux的实用性。遵循公共版权许可证,在继承自由软件的前提下,不再排斥对自由软件的商业行为,不排斥商家对自由软件的进一步开发,不排斥在Linux上开发商业软件。

现在的Linux经过数次改版(包括核心的升级和周边程序的完善),己经发展成了一个遵循POSIX标准的纯32位多工操作系统,并且64位版本也在开发之中。Linux可以兼容大部分的UNIX系统,很多UNIX的程序不需要改动,或者很少的改变就可以运行于Linux环境;内置TCP/IP协议,可以直接连入Internet,作为服务器或者终端使用;内置JAVA解释器,可直接运行JAVA源代码;具备程序语言开发、文字编辑和排版、数据库处理等能力;提供X-Windows的图形界面;主要用于x86系列的个人电脑,也有其他不同硬件平台的版本,支持现在流行的所有硬件设备。

为了使Linux变得容易使用,Linux有了许多发布版本,发布版实际上就是一整套完整的程序组合。现在已经有许多不同的Linux发行版和各自的版本号。通常提到的Linux,一般是指“Real Linux”,即内核,是所有UNIX操作系统的“心脏”。但光有Linux并不能成为一个可用的操作系统。还需要许多软件包,编译器,程序库文件,X-Windows系统,等等。因为组合方式不同,面向用户对象不同,所以这就是为什么有许多不同的Linux发行版的原因。

各地出现了很多的Linux发行版,如Slackware,Redhat,Suse,TurboLinux,OpenLinux等十多种,而且还在增加。越来越多的公司在Linux上开发商业软件或把其他UNIX平台的软件移植到Linux上来,如今很多大的IT公司如IBM,Intel,Oracle,Infomix,Sysbase,Corel, Netscape,CA,Novell等都宣布支持Linux。商家的加盟弥补了Linux这种纯自由软件的不足和发展障碍,Linux迅速普及到广大计算机爱好者,并且进入商业应用,为打破商业垄断,实现科技进步注入新的活力。

1.1.4 Linux的特点

1.开放性

开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(ISO)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。

2.多用户

多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和UNIX都具有多用户的特性。

3.多任务

多任务是现代计算机最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。

4.良好的用户界面

Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即Shell。系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。系统通过这个界面为用户程序提供低级、高效的服务。

Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强、友好的图形化界面。

5.设备独立性

设备独立性是指操作系统把所有外部设备统一当做文件来看待,只要安装它们的驱动程序,任何用户都可以像使用文件一样,操纵、使用这些设备,而不必知道它们的具体存在形式。

具有设备独立性的操作系统,通过把每一个外部设备看作一个独立文件来简化增加新设备的工作。当需要增加新设备时、系统管理员就在内核中增加必要的连接。这种连接(也称做设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的及更好的外设被开发并交付给用户时,操作允许在这些设备连接到内核后,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他操作系统只允许一定数量或一定种类的外部设备连接。而设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问。

Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。

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

完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他操作系统。其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在UNIX领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。

文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。

远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。

7.可靠的系统安全

Linux采取了许多安全技术措施,包括对读写进行权限控制、带保护的子系统、审计跟踪及核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

8.良好的可移植性

由于遵守POSIX标准,使Linux成为一种具有良好可移植性的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他任何机器进行准确而有效的通信提供了服务,不需要另外增加特殊的和昂贵的通信接口。

1.1.5 Linux的应用领域

Linux的应用领域非常广泛,主要用于以下几个方面。

(1)在Internet/Intranet方面,这是目前Linux用得最多的一项,它可提供包括Web服务器、Ftp服务器、Gopher服务器、SMTP/POP3邮件服务器、Proxy/Cache服务器及DNS服务器等全部Internet服务。

(2)由于Linux拥有出色的联网能力,因此它可用于大型分布式计算,如动画制作、科学计算、数据库及文件服务器等。

(3)作为可在低平台下运行的UNIX的完整(且免费)实现,广泛应用于各级院校的教学和科研工作,其先进的设计和公开源代码的特性也使Linux成为计算机操作系统课上的活教材。

(4)桌面和办公应用。新版本的Linux系统特别在桌面应用方面进行了改进,达到相当的水平,完全可以作为一种集办公应用、 多媒体应用、网络应用等多方面功能于一体的图形界面操作系统。

(5)优秀的软件开发平台。Linux的主要应用领域还是在开发软件的技术平台,因为他兼容各种编程软件,并且较少受到恶意程序的侵扰。