您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 让你快速成为Linux系统管理员
让你快速成LINUX系统管理员转自:让你快速成LINUX系统管理员-系统应用交流-红联Linux论坛全球Linux人网上交流平台-天下没有难学的Linuxbenny_feng发表于2006-9-1211:37|只看该作者本章概述Linux系统。首先描述操作系统提供的主要服务。然后说明实现这些服务的程序withaconsiderablelackofdetail。本章的目的是理解系统整体,以后再详细说明每个部分。一个操作系统的不同部分一个UNIX操作系统包括一个核心程序kernel和一些系统程序systemprograms。还有一些做某件事情的应用程序applicationprograms。核心是操作系统的心脏。它跟踪磁盘上的文件,启动程序并运行它们,给不同的进程分配内存和其他资源,从网络接收和向网络发送包,等等。核心很少自己干活,但它提供工具,用这些工具可以建立所有服务。它还阻止任何人直接存取硬件,强制每个人使用它提供的工具。这样,核心给每个用户与其他用户之间提供保护。核心提供的工具通过系统调用systemcalls使用;要了解关于这的更多的信息,看手册页第二节。系统程序使用核心提供的工具实现操作系统要求的不同的服务。系统程序和所有其他程序运行在核心之上,叫做用户模式usermode。系统程序和应用程序的区别是目的:应用程序意图完成一些有用的工作(或游戏),而系统程序则为系统工作而需要。字处理器是应用;telnet是系统程序。区别经常有些模糊,也许,只是为了强制分类。虽然编程语言不必是操作系统的一部分,操作系统也可以包括编译器及其相关的库(Linux下是gcc和C库)。文档、有时甚至游戏,可以是操作系统的一部分。传统上,操作系统被定义为安装磁带或磁盘上的内容;对于Linux就更不清楚,因为它分布在全世界的FTP站点上。核心的重要部件Linux核心包括几个重要部分:进程管理、存储器管理、硬件设备驱动、文件系统驱动、网络管理和其他不同的部分。图2.1显示了它们的一些。可能核心最重要的部分(没有它们什么也不能工作)是存储器管理和进程管理。存储器管理负责分配进程的存储器区域和对换空间区域、核心的部件及buffercache。进程管理产生进程,用切换处理器上的活动进程来实现多任务。在最低级,核心对它支持的每种硬件包含一个硬件设备驱动。因为世界上存在大量不同的硬件,硬件设备驱动的数量极大。有许多不同的硬件,因此软件控制方法不同。但其相似性可能分类驱动,支持相似的操作;每类的每个成员有相同的与核心其他部分接口,但具体实现是不同的。例如,所有的硬盘驱动与核心其他部分接口相同,即他们都有初始化驱动器、读N扇区、写N扇区。核心自己提供的有些软件服务有类似的抽象属性,因此可以抽象分类。例如,不同的网络协议已经被抽象为一个编程接口:BSDsocket库。另一个例子是虚拟文件系统virtualfilesystem(VFS)层,它从文件系统操作实现中抽象出文件系统操作。每个文件系统类型提供了每个文件系统操作的实现。当一些实体企图使用一个文件系统时,请求通过VFS送出,它将请求发送到适当的文件系统驱动。UNIX系统的主要服务本节说明一些最重要的UNIX服务,但不太详细。以后的章节中将更详细地说明。initUNIX系统里最重要的服务是由init提供的。init是每个UNIX系统在核心引导最后启动的第一个进程。init启动后,它做不同的启动工作继续引导过程(检查和mount文件系统、启动守侯程序等)init做的具体事情的列表依赖于用户意愿;init有多个启动选择。通常提供单用户模式singleusermode的概念,此时没有用户能登录,root在控制台使用一个shell;通常的模式叫多用户模式multiusermode。一般说来这称为运行级runlevels;单用户和多用户模式可以理解为2个运行级,还可以有其他运行级,例如,在控制台上运行X。在普通操作中,init确认getty正常运行(允许用户登录),并收养孤儿进程(父进程已死的进程;UNIX中,所有进程必须在一棵树中,因此孤儿进程必须收养)。当系统关闭时,init负责杀死所有其他进程,unmount所有文件系统并停止处理器,根据设置。从终端登录从终端登录(通过串行线)和控制台(当不运行X时)是由getty程序提供的。init为每个允许登录的终端启动一个单独的getty实例getty读用户名并运行login程序,由它读口令。如果用户名和口令正确,login就运行shell。当shell终止时,即用户注销,或login因用户名和口令不对而终止时,init知道并启动一个新的getty实例。核心没有登录的概念,这都由系统程序处理。Syslog核心和许多系统程序会产生错误、警告和其他信息。这些信息在以后能看经常是很重要的,甚至很久以后,所以它们应该被写到一个文件。这个程序是syslog。它能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如,核心信息经常与其他信息分开,单独定向到一个分离的文件,因为核心信息经常更重要且需要有规律地阅读以确定问题。定时执行命令:cron和at用户和系统管理员经常需要定时运行命令。例如,系统管理员可能想运行一个程序从老文件中清除暂存文件的目录(/tmp和/var/tmp),以免磁盘满,因为并非所有程序都正确地清除自己的暂存文件。cron服务是做这个的。每个用户有个crontab,在这里列出他要执行的命令和想执行的时间。cron守侯进程负责在特定的时间启动命令。at服务与cron类似,但它只执行一次:命令在给定的时间执行,但不可自动重复。图形用户接口GUIUNIX和Linux不将用户接口合在核心中,而是用用户级程序实现。用户接口同时提供文本和图形环境。这样的安排使系统更灵活,但有容易对每个程序实现不同的用户接口的缺点,使系统较难学。Linux使用的主要的图形环境叫XWindow系统(简称X)。X也不实现用户接口;它只实现一个窗口系统,即可以实现图形用户接口的工具。3种最流行的基于X实现的用户接口风格是Athena、Motif和OpenLook。网络网络连接2台或更多的计算机使之能互相通信。连接和通信的实际方法有些复杂,但结果非常有用。UNIX操作系统具有许多网络特征。最基本的服务:文件系统、打印、备份等都可以通过网络完成。这可使系统管理更简单,因为它允许集中管理,同时获得小型机和分布计算的优点,例如降低成本和更好的容错能力。然而,本书只概述网络;更多的信息请见《Linux网络管理员指南》,包括一个网络如何操作的基本说明。网络登录网络登录与普通登录有一点不同。可以登录的每个终端各有一条单独的物理串行线。从网络登录的每个人,有一条单独的虚拟网络连接,并且可以有任意数量。因此不可能为每个可能的虚拟连接运行单独的getty。通过网络登录有若干不同的方法,telnet和rlogin是TCP/IP网络中的主要方法。网络登录为每种登录方法提供一个单独的守侯程序(telnet和rlogin使用不同的守侯程序),而不是使用一群getty,来侦听所有的输入的登录企图。当发现一个登录企图,就启动一个自己的新实例来处理这个企图;原来的实例继续侦听其他企图。新实例的工作和getty类似。网络文件系统网络服务的一个最有用的东西是通过网络文件系统networkfilesystem共享文件。这个服务一般用Sun公司开发的网络文件系统NetworkFileSystem,或NFS。通过网络文件系统,任何文件操作可以由一台机器的一个程序通过网络发送到其他任何机器。这愚弄了程序,使它以为其他机器上的所有文件是在程序运行的机器上。这极大地简化了信息共享,因为它对程序无须任何修改。邮件电子邮件通常是通过计算机通信的最重要的方法。一封电子信件用特定的格式存储在一个文件中,使用特定的邮件程序来收发邮件。每个用户有一个收件箱incomingmailbox(一个特定格式的文件),所有新邮件存在这里。当什么人发送邮件时,邮件程序定位收件人的邮箱,并在邮箱文件中添加信件。如果收件人的邮箱在另一台机器上,信件就被发送到那台机器,由它用它觉得最合适的方法来投递邮箱。邮件系统包括很多程序。投递邮件到本地或远程邮箱使用一个程序(mailtransferagent或MTA,例如,sendmail或smail),而用户使用的则有很多不同的程序(mailuseragent或MUA,例如pine或elm)。邮箱一般存在/var/spool/mail中。打印同时只能有一个人使用某一台打印机,但各用户不共享打印机是不经济的。因此打印机由软件来管理,实现一个打印队列printqueue:所有的打印任务放进一个队列,打印机完成一个任务后,自动再打印下一个。这无须用户来组织打印队列,回避了直接控制打印机。打印队列软件也把打印输出spools到磁盘,即,当任务在队列中时,打印输出存在一个文件中。这允许应用程序快速地完成一个打印任务到打印队列程序,应用程序无须等到打印任务真正完成就可以继续下去。这真的很方便,因为它允许打印出一个版本,无须打印完成,就继续修改一个新版本。文件系统布局文件系统分为许多部分,通常从根文件系统有:/bin,/lib,/etc,/dev,及一些其他;/usr文件系统包含程序和不改变的数据;/var文件系统包含改变的数据(例如log文件);/home文件系统包含每个用户的个人文件。依赖于硬件配置和系统管理员的决定,方法不同,甚至所有东西可能在一个文件系统中。3章将更详细地说明文件系统布局,Linux文件系统标准(LinuxFilesystemStandard)中有更详细的说明。目录树概述本章说明标准Linux目录树的重要部分,基于FSSTND文件系统标准。概述根据不同的目的和给定的要求将目录树分为若干分离的文件系统的一般方法。也说明一些其他方法。背景本章松散地基于Linux文件系统标准FSSTND版本1.2(见参考书目[Qui95]),它意图建立一个如何组织Linux系统目录树的标准。这样一个标准具有易于写或port(移植?)Linux软件、管理Linux系统的优点,因为所有东西都将在他们的一般地方。此标准没有强制所有人遵从的权威,但它有最多的Linuxdistributions的支持。如果没有什么特殊的理由,不遵从FSSTND不是个好主意。FSSTND意图遵从Unix传统和当前趋势,使熟悉其他Unix系统的人对Linux系统更容易接受(反之亦然)。本章并非如FSSTND那么详细。一个系统管理员应该阅读FSSTND以得到全部的理解。本章不详细解释所有文件。其意图并非说明每个文件,而是从文件系统的视角给出系统的一个概览。每个文件的更多的信息在本手册或man页的其他地方。有意将全目录树可以分为小的部分,每个部分可以在自己的磁盘或分区上,以能为磁盘容量所容纳,并易于备份及其他系统管理。主要部分是根、/usr、/var和/home文件系统。每个部分有不同的目的。目录树已被设计成能在Linux机器的网络中很好地工作,可以通过只读设备(如CDROM)或NFS网络共享文件系统的一些部分。下面说明目录树不同部分的任务。每台机器都有根文件系统(一般在本地盘中,当然也可以在RAM盘或网络盘中),它包含系统引导和使其他文件系统得以mount所必要的文件,根文件系统应该有单用户状态所必须的足够的内容。还应该包括修复损坏系统、恢复备份等的工具。/usr文件系统包含所有命令、库、man页和其他一般操作中所需的不改变的文件。/usr应该没有对给定机器特定的文件,也不应该有一般使用中要修改的文件。这样允许此文件系统中的文件通过网络共享,这样可以更有效,因为这样节省了磁盘空间(/usr很容易是数百兆),且易于管理(当升级应用时,只有主/usr需要改变,而无须改变每台机器)即使此文件系统在本地盘上,也可以只读mount,以减少系统崩溃时文件系统的损坏。/var文件系统包含会改变的文件,比如spool目录(mail、news、打印机等用的),log文件、form
本文标题:让你快速成为Linux系统管理员
链接地址:https://www.777doc.com/doc-5542588 .html