免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1224 | 回复: 0
打印 上一主题 下一主题

第一章:UNIX操作系统简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-01-31 22:33 |只看该作者 |倒序浏览
学习目标
学完这一章,你能做到以下事情:
描述UNIX系统的基本组成和基本功能
1.1 什么是操作系统?
 

操作系统是一种特殊的用于控制计算机(硬件)的程序(软件)。
操作系统在资源使用者和资源之间充当中间人的角色。为众多的消耗者协调分配有限的系统资源。系统资源包括,CPU,内存,磁盘,和打印机。举个例子,一个用户(也可以是程序)将一个文件存盘,操作系统就会开始工作:管理磁盘空间的分配,将要保存的信息由内存写到磁盘等。
当用户要运行一个程序时,操作系统必须先将程序载入内存,当程序执行时,操作系统会让程序使用CPU。在一个分时系统中,通常会有多个程序在同一时刻试图使用CPU。
操作系统控制应用程序有序地使用CPU ,就好象一个交通警察在一个复杂的十字路口指挥交通。十字路口就象是CPU;每一条在路口交汇的支路好比一个程序,在同一时间,只有一条路的车可以通过这个路口,而交通警察的作用就是指挥让哪一条路的车通过路口,直到让所有路口的车辆都能通过路口。
2.        UNIX操作系统的历史

UNIX操作系统1969年在贝尔实验室诞生。Ken Thompson 在Rudd Canaday,
,Doug Mcllroy,Joe Ossana,and Dennis Ritchie,的协助下,写出一个小的分时系统,开始得到关注,在许诺为实验室的管理人员提供一个文档准备工具后, UNIX先驱们可以使用到一台更大的计算机,从而得以继续他们的开发工作。
在七十年代的中期,一些大学得到使用UNIX的许可,并很快在学院之间得到广泛流行,其主要的原因是:
·        小巧:最早的UNIX系统只占用512K字节的磁盘空间,其中系统内核使用16K,用户程序使用8K,文件使用64K。
·        灵活:源代码是可利用的,UNIX是用高级语言写成,提高了操作系统的可移植性。
·        便宜:大学能以一盘磁带的价格得到一个UNIX系统的使用许可。早期的UNIX系统提供了强大的性能,使其能在许多昂贵的计算机上运行。
以上优点在当时掩盖了系统的不足:
·        没有技术支持;AT&T在当时大部分的资源和都用在MUTICS上,没有兴趣
开发UNIX系统。
·        Bug的修补:由于没有技术支持,bug的修补也得不到保证。
·        很少的,或者根本没有说明文档,用户有问题经常只能是去看源代码。
当UNIX传播到位于California的Berkeley大学的时候,Berkeley大学的使用者们创建了自己的UNIX版本,在得到国防部得支持后,他们开发出了许多新的特性。但是,作为一个研究机构,Berkeley大学提供的版本和AT&T的版本一样,也没有技术支持。
当 AT&T意识到这种操作系统的潜力后就开始将UNIX商业化,为了加强产品性能,他们在AT&T的不同部门进行UNIX系统开发,并且开始在系统中结合Berkeley开发出的成果。

UNIX最终的成功可以归结为:
·        一个灵活的、包含多种工具的用户界面与操作环境。
·        模块化的系统设计可以很容易地加入新的工具。
·        支持多进程,多用户并发的能力。
·        Berkeley大学 的DARPA支持。

·        强大的系统互连的能力。
·        能在多种硬件平台上运行。
·        标准化的界面的定义促进应用的可移植性。
 
1.3 UNIX系统的特性
UNIX为用户提供了一个分时的系统以控制计算机的活动和资源,并且提供一个交互,灵活的操作界。UNIX被设计成为能够同时运行多进程,支持用户之间共享数据。同时,UNIX支持模块化结构,当你安装UNIX操作系统时,你只需要安装你工作需要的部分,例如:UNIX支持许多编程开发工具,但是如果你并不从事开发工作,你只需要安装最少的编译器。用户界面同样支持模块化原则,互不相关的命令能够通过管道相连接用于执行非常复杂的操作。
运行中的系统
内核是运行中的系统,它负责管理系统资源和存取硬件设备。内核中包含有它检测到的每个硬件的驱动模块,这些模块提供了支持程序用来存取CPU、内存、磁盘、终端、网络的功能。当安装了一种新的硬件,新的模块会被加入到内核之中。
 
运行环境
工具和应用程序
UNIX的模块化设计在这里表现得非常明显,UNIX系统命令的原则就是每条命令做好一件事情,组合一系列命令就组成工具箱,选择合适的命令就可以完成你的工作,恰当地组合这些工具能够帮你完成复杂的任务。
从开始,UNIX“工具箱”就包括了一些可以同系统进行交互的基本命令,UNIX系统也提供了以下几种工具:
电子邮件(mail,mailx)
文字编辑(ed,ex,vi)
文本处理(sort,grep,wc,awk,sed)
文本格式化(nroff)
程序开发(cc,make,lint,lex)
源程序版本管理(SCCS,RCS)
系统间通讯(uucp)
进程和用户帐号(ps ,du,acctcom)
因为UNIX系统的用户环境被设计为一种交互的,可编程的,模块化的结构,新的工具能很容易地开发,并且添加到用户工具箱之中,而哪些不是必须的工具能够被省略,这种省略不会影响系统的操作。
 举个例子,一个程序员和一个打字员同时在使用UNIX系统,他们会使用许多普通命令,虽然他们的工作性质不相同。他们会用一些与他们的工作相关的工具。程序员使用的工具会包括程序开发和程序管理的工具,而打字员会使用字处理,文档管理的工具。有趣的是:程序员用来修订程序的工具同时也被打字员用来文档的修订。因此,他们的系统看上去十分相似,但是,每一个用户选择模块都与他或她的应用要求密切相关。
UNIX系统的流行很大程度可以归结与:
·        UNIX系统的完整性与灵活性使其能适应许多的应用环境。
·        众多的集成的工具提高了用户的工作效率。
·        能够移植到不同的硬件平台。

SHELL
Shell 是一个交互的命令解释器。命令是在SHELL提示符下键入,shell会遵照执行键入的命令。用户通过shell与计算机交互。shell从键盘获得用户键入的命令,然后将命令翻译为内核能够理解的格式。然后系统就会执行这个命令。
你会注意到shell与内核是分离的两部分。如果你不喜欢当前shell提供的特性,你能很容易地用另一种shell代替当前的shell。
一些shell是命令行方式,一些提供菜单界面。UNIX系统支持的普通的shell都包括一个命令解释器和一个可编程的接口。

有四个最通用的shell,分别是:
·        Bourne shell --- 由AT&T提供的最原始的shell,由贝尔实验室的Stephen Bourne开
???????? 发。可提供命令的解释,支持可编程接口,提供诸如变量定义,变量替代, ???????? 变量与文件测试,分支执行与循环执行等功能。
·        C Shell (/usr/bin/csh)----C Shell是在California Berkeley大学的Bill Joy开发,一般???????? 存 在于BSD系统中,于是被称为California shell,简写名称为C Shell。 ???????? 它被认为是Bourne Shell的一个改进版本。因为它提供拉交互的特征例如 ???????? 命令堆栈(-允许简单地调用和编辑以前输入的命令,)别名(提供对已 ???????? 有命令取个人的别名)
·        Korn Shell(/usr/bin/ksh)---- 贝尔实验室最新的开发成果,由David Korn开发成功。它
???????? 被认为是是一种增强型的Bourne Shell,因为它提供对简单可编程 ??????????? 的Bourne Shell界面的支持,同时提供C Shell 的简便交互的特征。它的???????? 代码也被优化来提供一种更快,更高效的shell。
POSIX Shell: ???POSIX是一种命令解释器和命令编程语言,这种shell同Korn Shell在许多方 ??????????面都很相似,它提供历史机制,支持工作控制,还提供许多其他有用的特性
表1-1 shell 特征的比较
   

1.4 UNIX的其他特征
层次化的文件系统
存储在磁盘上的信息称为文件。每一个文件都分配有一个名字,用户通过这个名字来访问文件,文件的内容通常是数据,文本,程序等等,UNIX系统通常有几百个文件存在,于是另外一种容器:目录被用来让用户在一个逻辑上的分组里管理它的文件。在UNIX系统中,目录被用来存储文件和其它的目录。
文件系统的结构非常复杂,如果用户的工作部门改变,用户的文件和目录能很容易移动,改名,或组织到新的或不同的目录中,这些操作只需使用一些简单的UNIX系统的命令即可完成。文件系统就象一个电子排列柜,它能让用户分割,组织他们的信息到适合自己环境与应用的目录中去。
多任务
在UNIX系统中,能有几个不同的任务在同一时刻执行。 一个用户在一个终端可以执行几个程序,看上去好象是同时在运行。这意味着一个用户可以编辑一个文本文件时格式化另一个文件,同时打印另一个文件
实际上,CPU在同一时刻只能执行一个任务,但是UNIX系统能够将CPU的执行分成时间片,通过调度,使在同一时间内执行,对用户看来,就好象在同时执行不同的程序一样。
多用户
多用户就是允许多个用户在同一时刻登录和使用系统。多个终端和键盘能连接在同一台计算机上。这是多任务功能的一种自然延伸。如果系统能够同时运行多个程序,一些程序也能够支持多个用户线索。另外,一个单个用户能够通过多个终端在不同的时刻登录同一个系统。 这种体系结构的一个很大的好处是:工作组的成员能同时操作相同的数据。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP