文档介绍:Linux 管理员手册 Linux 管理员手册 Linux 管理员手册(1)--Linux 系统概述本章概述 Linux 系统。首先描述操作系统提供的主要服务。然后说明实现这些服务的程序 with a considerable lack of detail 。本章的目的是理解系统整体,以后再详细说明每个部分。一个操作系统的不同部分一个 UNIX 操作系统包括一个核心程序 kernel 和一些系统程序 system programs 。还有一些做某件事情的应用程序 application programs 。核心是操作系统的心脏。它跟踪磁盘上的文件, 启动程序并运行它们, 给不同的进程分配内存和其他资源, 从网络接收和向网络发送包, 等等。核心很少自己干活, 但它提供工具, 用这些工具可以建立所有服务。它还阻止任何人直接存取硬件, 强制每个人使用它提供的工具。这样, 核心给每个用户与其他用户之间提供保护。核心提供的工具通过系统调用 system calls 使用;要了解关于这的更多的信息,看手册页第二节。系统程序使用核心提供的工具实现操作系统要求的不同的服务。系统程序和所有其他程序运行在核心之上, 叫做用户模式 user mode 。系统程序和应用程序的区别是目的: 应用程序意图完成一些有用的工作( 或游戏) ,而系统程序则为系统工作而需要。字处理器是应用; 是系统程序。区别经常有些模糊, 也许, 只是为了强制分类。虽然编程语言不必是操作系统的一部分, 操作系统也可以包括编译器及其相关的库(Linux 下是 gcc 和C库) 。文档、有时甚至游戏, 可以是操作系统的一部分。传统上, 操作系统被定义为安装磁带或磁盘上的内容; 对于 Linux 就更不清楚, 因为它分布在全世界的 FTP 站点上。核心的重要部件 Linux 核心包括几个重要部分: 进程管理、存储器管理、硬件设备驱动、文件系统驱动、网络管理和其他不同的部分。图 显示了它们的一些。可能核心最重要的部分( 没有它们什么也不能工作) 是存储器管理和进程管理。存储器管理负责分配进程的存储器区域和对换空间区域、核心的部件及 buffer cache 。进程管理产生进程,用切换处理器上的活动进程来实现多任务。在最低级,核心对它支持的每种硬件包含一个硬件设备驱动。因为世界上存在大量不同的硬件, 硬件设备驱动的数量极大。有许多不同的硬件, 因此软件控制方法不同。但其相似性可能分类驱动, 支持相似的操作; 每类的每个成员有相同的与核心其他部分接口, 但具体实现是不同的。例如,所有的硬盘驱动与核心其他部分接口相同,即他们都有初始化驱动器、读 N 扇区、写 N 扇区。核心自己提供的有些软件服务有类似的抽象属性, 因此可以抽象分类。例如, 不同的网络协议已经被抽象为一个编程接口: BSD socke t 库。另一个例子是虚拟文件系统 virtual filesystem(VFS) 层,它从文件系统操作实现中抽象出文件系统操作。每个文件系统类型提供了每个文件系统操作的实现。当一些实体企图使用一个文件系统时,请求通过 VFS 送出,它将请求发送到适当的文件系统驱动。 UNIX 系统的主要服务本节说明一些最重要的 UNIX 服务,但不太详细。以后的章节中将更详细地说明。 init UNI X 系统里最重要的服务是由 init 提供的。 init 是每个 UNI X 系统在核心引导最后启动的第一个进程。 init 启动后, 它做不同的启动工作继续引导过程( 检查和 mount 文件系统、启动守侯程序等) init 做的具体事情的列表依赖于用户意愿; init 有多个启动选择。通常提供单用户模式 single user mode 的概念,此时没有用户能登录, root 在控制台使用一个 shell ;通常的模式叫多用户模式 multiuser mode 。一般说来这称为运行级 run levels ;单用户和多用户模式可以理解为 2 个运行级, 还可以有其他运行级, 例如, 在控制台上运行 X。在普通操作中, init 确认 getty 正常运行( 允许用户登录),并收养孤儿进程( 父进程已死的进程; UNIX 中,所有进程必须在一棵树中,因此孤儿进程必须收养)。当系统关闭时, init 负责杀死所有其他进程, unmount 所有文件系统并停止处理器,根据设置。从终端登录从终端登录( 通过串行线) 和控制台( 当不运行 X时) 是由 getty 程序提供的。 init 为每个允许登录的终端启动一个单独的 getty 实例 getty 读用户名并运行 login 程序, 由它读口令。如果用户名和口令正确, login 就运行 shell 。当 shell 终止时,即用户注销,或 login