Linux系统概述_unix linux

    本章概述Linux系统。首先描述操作系统提供的主要服务。然后说明实现这些服务的程序 with a considerable lack of detail。本章的目的是理解系统整体,以后再详细说明每个部分。

    一个操作系统的不同部分

  一个UNIX操作系统包括一个核心程序kernel和一些系统程序system programs。还有一些做某件事情的应用程序application programs。核心是操作系统的心脏 。它跟踪磁盘上的文件,启动程序并运行它们,给不同的进程分配内存和其他资源,从网络接收和向网络发送包,等等。核心很少自己干活,但它提供工具,用这些工具可以建立所有服务。它还阻止任何人直接存取硬件,强制每个人使用它提供的工具。这样,核心给每个用户与其他用户之间提供保护。核心提供的工具通过系统调用system calls使用;要了解关于这的更多的信息,看手册页第二节。

  系统程序使用核心提供的工具实现操作系统要求的不同的服务。系统程序和所有其他程序运行在核心之上,叫做用户模式user mode。系统程序和应用程序的区别是目的:应用程序意图完成一些有用的工作(或游戏),而系统程序则为系统工作而需要。字处理器是应用;telnet 是系统程序。区别经常有些模糊,也许,只是为了强制分类。

  虽然编程语言不必是操作系统的一部分,操作系统也可以包括编译器及其相关的库(Linux下是gcc和C库)。文档、有时甚至游戏,可以是操作系统的一部分。传统上,操作系统被定义为安装磁带或磁盘上的内容;对于Linux就更不清楚,因为它分布在全世界的FTP站点上。

    核心的重要部件

  Linux核心包括几个重要部分:进程管理、存储器管理、硬件设备驱动、文件系统驱动、网络管理和其他不同的部分。图2.1显示了它们的一些。

  可能核心最重要的部分(没有它们什么也不能工作)是存储器管理和进程管理。存储器管理负责分配进程的存储器区域和对换空间区域、核心的部件及buffer cache。进程管理产生进程,用切换处理器上的活动进程来实现多任务。

  在最低级,核心对它支持的每种硬件包含一个硬件设备驱动。因为世界上存在大量不同的硬件,硬件设备驱动的数量极大。有许多不同的硬件,因此软件控制方法不同。但其相似性可能分类驱动,支持相似的操作;每类的每个成员有相同的与核心其他部分接口,但具体实现是不同的。例如,所有的硬盘驱动与核心其他部分接口相同,即他们都有初始化驱动器、读N扇区、写N扇区。

  核心自己提供的有些软件服务有类似的抽象属性,因此可以抽象分类。例如,不同的网络协议已经被抽象为一个编程接口:BSD socket库。另一个例子是虚拟文件系统virtual filesystem(VFS)层,它从文件系统操作实现中抽象出文件系统操作。每个文件系统类型提供了每个文件系统操作的实现。当一些实体企图使用一个文件系统时,请求通过VFS送出,它将请求发送到适当的文件系统驱动。

    UNIX系统的主要服务

  本节说明一些最重要的UNIX服务,但不太详细。以后的章节中将更详细地说明。

    init

  UNIX系统里最重要的服务是由init 提供的。 init 是每个UNIX系统在核心引导最后启动的第一个进程。 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 因用户名和口令不对而终止时, init 知道并启动一个新的getty 实例。核心没有登录的概念,这都由系统程序处理。

    Syslog

  核心和许多系统程序会产生错误、警告和其他信息。这些信息在以后能看经常是很重要的,甚至很久以后,所以它们应该被写到一个文件。这个程序是syslog 。它能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如,核心信息经常与其他信息分开,单独定向到一个分离的文件,因为核心信息经常更重要且需要有规律地阅读以确定问题。

    定时执行命令: cron 和at

  用户和系统管理员经常需要定时运行命令。例如,系统管理员可能想运行一个程序从老文件中清除暂存文件的目录 (/tmp 和/var/tmp ),以免磁盘满,因为并非所有程序都正确地清除自己的暂存文件。

  cron 服务是做这个的。每个用户有个crontab ,在这里列出他要执行的命令和想执行的时间。 cron 守侯进程负责在特定的时间启动命令。

  at 服务与cron 类似,但它只执行一次:命令在给定的时间执行,但不可自动重复。

    图形用户接口GUI

  UNIX和Linux不将用户接口合在核心中,而是用用户级程序实现。用户接口同时提供文本和图形环境。

  这样的安排使系统更灵活,但有容易对每个程序实现不同的用户接口的缺点,使系统较难学。

  Linux使用的主要的图形环境叫X Window系统(简称X)。 X也不实现用户接口;它只实现一个窗口系统,即可以实现图形用户接口的工具。 3种最流行的基于X实现的用户接口风格是Athena、Motif和Open Look。

    网络

  网络连接2台或更多的计算机使之能互相通信。连接和通信的实际方法有些复杂,但结果非常有用。

  UNIX操作系统具有许多网络特征。最基本的服务:文件系统、打印、备份等都可以通过网络完成。这可使系统管理更简单,因为它允许集中管理,同时获得小型机和分布计算的优点,例如降低成本和更好的容错能力。

  然而,本书只概述网络;更多的信息请见《Linux网络管理员指南》,包括一个网络如何操作的基本说明。

    网络登录

  网络登录与普通登录有一点不同。可以登录的每个终端各有一条单独的物理串行线。从网络登录的每个人,有一条单独的虚拟网络连接,并且可以有任意数量 。因此不可能为每个可能的虚拟连接运行单独的getty 。通过网络登录有若干不同的方法, telnet 和rlogin 是TCP/IP网络中的主要方法。

  网络登录为每种登录方法提供一个单独的守侯程序(telnet 和rlogin 使用不同的守侯程序),而不是使用一群getty ,来侦听所有的输入的登录企图。当发现一个登录企图,就启动一个自己的新实例来处理这个企图;原来的实例继续侦听其他企图。新实例的工作和getty 类似。

    网络文件系统

  网络服务的一个最有用的东西是通过网络文件系统network file system共享文件。这个服务一般用Sun公司开发的网络文件系统Network File System,或NFS。

  通过网络文件系统,任何文件操作可以由一台机器的一个程序通过网络发送到其他任何机器。这愚弄了程序,使它以为其他机器上的所有文件是在程序运行的机器上。这极大地简化了信息共享,因为它对程序无须任何修改。

    邮件

  电子邮件通常是通过计算机通信的最重要的方法。一封电子信件用特定的格式存储在一个文件中,使用特定的邮件程序来收发邮件。

  每个用户有一个收件箱incoming mailbox(一个特定格式的文件),所有新邮件存在这里。当什么人发送邮件时,邮件程序定位收件人的邮箱,并在邮箱文件中添加信件。如果收件人的邮箱在另一台机器上,信件就被发送到那台机器,由它用它觉得最合适的方法来投递邮箱。

  邮件系统包括很多程序。投递邮件到本地或远程邮箱使用一个程序(mail transfer agent或MTA,例如,sendmail 或smail ),而用户使用的则有很多不同的程序(mail user agent或MUA,例如pine 或elm )。邮箱一般存在/var/spool/mail 中。

    打印

  同时只能有一个人使用某一台打印机,但各用户不共享打印机是不经济的。因此打印机由软件来管理,实现一个打印队列print queue:所有的打印任务放进一个队列,打印机完成一个任务后,自动再打印下一个。这无须用户来组织打印队列,回避了直接控制打印机。

  打印队列软件也把打印输出spools到磁盘,即,当任务在队列中时,打印输出存在一个文件中。这允许应用程序快速地完成一个打印任务到打印队列程序,应用程序无须等到打印任务真正完成就可以继续下去。这真的很方便,因为它允许打印出一个版本,无须打印完成,就继续修改一个新版本。

    文件系统布局

  文件系统分为许多部分,通常从根文件系统有: /bin , /lib , /etc , /dev , 及一些其他; /usr 文件系统包含程序和不改变的数据; /var 文件系统包含改变的数据(例如log文件); /home 文件系统包含每个用户的个人文件。依赖于硬件配置和系统管理员的决定,方法不同,甚至所有东西可能在一个文件系统中。

  3章将更详细地说明文件系统布局,Linux文件系统标准(Linux Filesystem Standard)中有更详细的说明。

 

 

时间: 2024-09-15 02:38:57

Linux系统概述_unix linux的相关文章

Linux管理员手册(1)--系统概述_unix linux

本章概述Linux系统.首先描述操作系统提供的主要服务.然后说明实现这些服务的程序 with a considerable lack of detail.本章的目的是理解系统整体,以后再详细说明每个部分. 一个操作系统的不同部分 一个UNIX操作系统包括一个核心程序kernel和一些系统程序system programs.还有一些做某件事情的应用程序application programs.核心是操作系统的心脏 .它跟踪磁盘上的文件,启动程序并运行它们,给不同的进程分配内存和其他资源,从网络接收

优秀Linux站点_unix linux

(一) 软件下载  (1) Freshmeat站点  网址:http://www.freshmeat.net  评介:如果你绝对肯定,非要获取开放源代码应用程序,那毫无疑问,Freshmeat就是个不错的站点.这个最值得推崇的软件下载站点,有着数以千计的大量开放源代码应用程序的分类链接.此外,Freshmeat站点在更新程序的基础上,每天还会添加10到30个新程序链接.  (2) Tucows Linux  网址:http://linux.tucows.com  评介:最初,该站点是一个基于Wi

如何将javaweb项目部署到linux下_unix linux

一般都在windows下开发的,现在部署到linux下:1,将项目达成war包(用eclipse,项目右键-->Export-->选择war file)2,将tomcat(用winSCP当然你也可以用secureCRT,用securCRT需要建立sftp(即上传文件的目录),用put tomcat命令)考到ilunx对应的目录下3,然后将项目的war包放到tomcat的webapps目录下4,启动tomcat(命令:./startup.sh(linux下启动tomcat是.sh文件而非.bat

如何远程安装Linux操作系统_unix linux

一.引言 一般情况下,我们都是利用软驱或光驱引导Linux后,再通过本地的光驱安装Linux.但是,这种安装方法在以下的几种情况下就不能适用: 无软驱和光驱:很多公司为了节省成本,计算机一般都不带光驱或软驱,这样就无法通过本地安装Linux: 非标准的软驱和光驱:虽然笔记本都会配置光驱,但是并不一定都是标准的IDE设备,有些是通过USB接口,有些是通过1394接口(例如Samsung的Q10).在Linux安装时所引导的Linux内核一般都不会带这些接口的驱动,所以也无法通过本地安装Linux:

远程升级Linux系统_unix linux

本文简要地介绍了使用 Red Hat LINUX 的 kickstart 及网络安装功能方便快捷地升级己有 LINUX 系统,文中的例子是从 Red Hat 7.2 远程升级到 Red Hat 9.0. 自从 5.2 版开始, Red Hat LINUX 便 增加了一个称为 kickstart 的功能,其主要是为了减少安装过程中需要交互式 (interactive)的系统参数输入,提高安装效率.将其运用于自动安装 LINUX,特别是需要在短时间迅速安装至成百台 LINUX 工作站这种特殊场合尤为

操作系统安全防范简述:Linux篇_unix linux

Linux作为自由.开放的象征,越来越受到广大用户的关注,但真正使用的个人用户较少,主要是因为它的系统特性,及周边的软件开发商较少,让它只在服务器系统领域有所普及.它的安全防护,笔者稍做介绍: 1. 禁止访问重要文件 Linux不像Windows,它不但公布源代码,其核心程序还可以根据用户需要任意修改,而对于系统中的某些关键性文件如inetd.conf和lilo.conf等,同样可以被(远程登录用户)修改,为了保护系统安全,可以事先修改其属性,以防止非法的入侵和修改. 首先进入Linux的命令界

全球顶尖超级计算机60%用Linux系统_unix linux

美国当地时间3月15日06:00 (北京时间3月15日19:00)消息,据统计,在全球顶尖的500台超级计算机中,有约60%安装了Linux操作系统,相对于其他类型的操作系统,Linux系统在高性能计算应用中占据了绝对优势. 从开始时作为一个大学生的私房爱好,Linux系统的发展已经历了较长时间.近几年中,经过IBM.惠普.Novell和Red Hat的专业计算机编程者对其不断改进,Linux现在已成为了技术强大的代名词-Linux操作系统在全球超级计算机上的应用远较其他系统普遍.有机构称,在全

windows/linux大事记_unix linux

1981年8月12日: IBM推出带有微软MS-DOS 1.0操作系统的PC机    1990年5月22日:微软推出Windows 3.0    1995年8月24日:微软推出Windows 95   版权所   1998年6月25日:微软推出Windows 98    2000年2月17日:微软推出Windows 2000    2001年10月25日:微软推出 Windows XP    2003年4月25日:微软推出 Windows server 2003   linux大事记:    1

如何在windows9x下访问linux分区_unix linux

    1. 简 介 Linux 内 核 支 持 众 多 的 文 件 系 统 类 型, 目 前 它 可 以 读 写( 至 少 是 读) 大 部 分 的 文 件 系 统.Linux 经 常 与Microsoft Windows 共 存 于 一 个 系 统 或 者 硬 盘 中.Linux 对windows9x/NT 的 文 件 系 统 支 持 的 很 好, 反 之 你 想 在windows 下 用Visual C++ 编 程 的 同 时 能 看 一 看Linux 的GCC-HOWTO 则 必 须 得