UNIX 入门基础第1章_第1页
UNIX 入门基础第1章_第2页
UNIX 入门基础第1章_第3页
UNIX 入门基础第1章_第4页
UNIX 入门基础第1章_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/7/7,第一章 UNIX操作系统介绍,UNIX的历史 UNIX的商业化 UNIX的种类(Varieties) UNIX 的不同(variants) UNIX的基本概念,2020/7/7,UNIX的历史,1雏形阶段 UNIX操作系统是20世纪60年代末由AT&T公司贝尔实验室的Kenneth Thompson和Dennis Ritchie于1969年实现的一种分时操作系统,最早的工作集中在文件管理和进程控制上,1970年用交叉汇编方法,将该系统移植到PDP-11上,并提供给公司内部的专利部门用作文字处理。,2020/7/7,UNIX吸取了以前的一个称作Multics系统的技术精华,又比

2、Multics简单实用,开发者把其命名为UNIX,这就是UNIX内核的雏形。,UNIX的历史,2020/7/7,UNIX的历史,2成型阶段 UNIX设计者们继续进行功能扩展和版本更新,1972年实现了极为重要的管道机制。 1973年Ritchie开发出C语言,它的出现是UNIX系统发展过程中的重要里程碑。用C语言改写后的第3版UNIX具有高度易读性、可移植性,为迅速推广和普及走出了决定性的一步。,2020/7/7,UNIX的历史,1974年,”The UNIX Time-Sharing System”一文在美国权威杂志CACM上发表,引起广泛注意。 最早外界可获得的UNIX是1975年的UNI

3、X第6版; 1978年的UNIX第7版,可以看作当今UNIX的先驱,该版为今天UNIX的繁荣奠定了基础,UNIX也步入了成型阶段。,2020/7/7,UNIX的历史,70年代中后期UNIX源代码的免费扩散引起了大学和公司的兴趣,大众的参与为UNIX的改进、完善、传播和普及起到了重要的作用。,2020/7/7,UNIX的历史, 由大学开发的非AT&T系统UNIX是Berkeley分校运行在VAX-11机上的 UNIX BSD。 最著名的是4.1BSD、4.2BSD、4.3BSD和4.4BSD,这些版本中加入页式虚存、长文件名、 网络协议TCP/IP等,在UNIX 发展中起了重要作用,已成为教学、

4、科研、商用的主流系统。,2020/7/7,UNIX的商业化,UNIX的广泛流传引起了不少计算机公司的兴趣。1977年AT&T公司开始向计算机厂商提供UNIX操作系统的初始设备制造许可(OEM),这使得许多OEM(例如微软和XENIC)能够重写UNIX的部分内核和外部结构,他们开始将UNIX商品化并推出了自己的UNIX商业版本。这些商业版本都以AT&T的系统V或者BSD版本为基础,并带有各自的增值特征。,2020/7/7,UNIX的商业化,比较著名的有: SUN公司的SUN OS和Solaris, Microsoft公司的XENIX, Interactive公司的UNIX386/ix, DEC公

5、司的ULTRIX, IBM公司的AIX, HP公司的的HP/UX和 SCO公司的UNIX等。,2020/7/7,UNIX的商业化,AT&T公司本身则先后发展了UNIX SYSTEM 、UNIX SYSTEM ,UNIX SVR4.0、4.1ES,UNIX SVR4.2等商品化版本。 到90年代,不同的UNIX版本已超过100种。,2020/7/7,2020/7/7,UNIX标准化阶段,商业集团的参与有力促进了UNIX技术的迅速发展与普及,但也导致了版本繁多,互不兼容的不利局面。 从80年代开始,出现对UNIX标准化的努力。UNIX用户组织最早进行此项工作,后来被美国的IEEE接受和继承,并成立

6、了标准化工作小组,着手制定基于UNIX的POSIX(易移植操作系统环境)标准,到90年代初已有20多个POSIX标准正式颁布与制定。,2020/7/7,UNIX标准化阶段,UNIX版权拥有者AT&T公司也在进行努力,1984年颁布了UNIX SYSTEM 的界面标准,简称SVID。 1988年,AT&T与SUN公司宣布联合开发UNIX SYSTEM 第4版计划,拟在兼容各主要UNIX版本基础上,使UNIX SVR4成为事实上的工业标准。此举得到了Unisys、NCR、富士通等计算机厂商的支持,但却遭到IBM、HP和DEC等厂商的不满。,2020/7/7,UNIX标准化阶段,他们联合成立了开放系

7、统基金会(OSF)来抵制SVR4计划,而AT&T和SUN等公司成立了UNIX国际(UI)来推动UNIX SVR4。 UNIX分裂为互为对抗的两大集团,这种分裂与竞争一方面促进了UNIX技术的进步,但另一方面也延缓了UNIX市场的发展。,2020/7/7,UNIX标准化阶段,UNIX取得成功的重要原因是系统的开放性,公开源代码,可方便地向UNIX添加新功能和工具,这样可使UINX越来越完善,成为有效的程序开发支撑平台。,2020/7/7,UNIX发展趋势,UNIX系统目前安装数量超过500万套,用户数达到3000万,已成为一种主流操作系统。 从总体上看,UNIX操作系统的主要发展趋势是统一化、标

8、准化和不断创新。,2020/7/7,UNIX发展趋势,1993年“公共开发软件环境(COSE)”组织成立,标志着主要UNIX厂商的联合和UNIX系统统一化的开始。 同年,Novell公司从AT&T公司购得的UNIX商标权无偿交给开放系统标准化组织X/OPEN,这表明UNIX商标不再受某一厂商控制。在该组织的推动下,UNIX的两个重要标准Spec.1170(标准应用程序界面)和CDE(标准图形界面)己于1995年正式颁布,为UNIX的统一化、标准化打下了重要基础。,2020/7/7,UNIX发展趋势,计算机发展史上,没有哪个程序设计语言像C那样得到如此广泛的流行,也没有哪个操作系统像UNIX那样

9、获得普遍的青睐和应用,对整个软件技术和软件产业都产生了深远的影响, 为此,Ritchie和Thompson共同获得了1983年度的ACM图灵奖和软件系统奖。,2020/7/7,石油系统应用 SUN 地震资料处理、解释,物探 SGI 地震资料处理、解释,优秀的图形图象处理 IBM 地震资料处理、解释,物探,2020/7/7,Characters of the UNIX,简单、通用的命令 命令短小、可以组合完成复杂的任务 使用管道连接命令 即一条命令的输出作为另一条命令的输入 通用可选择的接口风格 每条命令所完成的功能可被其后的选项所控制 无文件类型 UNIX不关心文件的类型。UNIX系统中任何程

10、序都可以对任何文件操作,但只有理解文件格式的程序才能获得文件记录的信息。,2020/7/7,Benefits of UNIX,2020/7/7,UNIX基本概念,程序和进程 内核 shell 特权用户 系统调用与库函数,2020/7/7,程序和进程,程序是包含计算机要执行指令集合的文件,它可分为源程序和可执行程序。 源程序是用程序设计语言编写的正文形式的文件。例如用C或Fortran语言编写的源文件exam.c或exam.fo。 源程序一般要经过编译器的编译后才能直接在计算机上运行,这种经过编译后生成的二进制代码文件称为可执行文件,即可执行程序。UNIX系统还有另外一种可执行程序,即shell

11、脚本程序,例如用sh编写的脚本程序。脚本程序在执行过程中需经过其他程序(如shell程序)的解释。,2020/7/7,在UNIX中,处在运行中的程序称为进程。 从用户的观点来看,进程是程序的一次执行,是正在运行着的程序。例如,当我们在终端键人执行某个程序的命令时便创建了该程序对应的进程。 从UNIX系统内部来看,进程是运行程序并为程序提供执行环境的实体,是系统进行资源分配和调度运行的一个独立单位。 程序和进程的区别是:程序是静止的,它只是一个文件;进程是动态的,它具有生存周期。,程序和进程,2020/7/7,进程具有以下3个特点: 1、进程有一个控制点和自己的独立地址空间。 进程的控制点通过程

12、序计数器跟踪着程序的指令序列,进程的地址空间由进程可以引用或访问的存储单元组成。进程在其地址空间执行程序的指令序列。 2、进程具有生存期。进程从创建到消亡的过程称为进程的生存期。一个进程的生存期可以分为一组状态,这些状态刻画了进程从创建、活动到消亡的过程。从用户的观点粗略地划分,UNIX操作系统中进程主要有以下一些状态:,程序和进程,2020/7/7,(1)新建 进程正在被创建 (2)就绪 进程正在等待被执行 (3)运行 进程正在被执行 (4)阻塞 进程正在等待一个事件,例如I0 (5)僵死 进程已经结束,并等待释放资源。是进程的最后状态,程序和进程,3、处于运行状态的进程有两种执行状态:用户

13、态和核态。 如果进程运行中执行的是用户程序中的指令,则进程处于用户态执行。当进程发出系统调用时,便导致进程进入核态执行。进程在核态下执行的是操作系统的指令。,2020/7/7,程序和进程,2020/7/7,进程的状态转换 当程序被提交执行时,它首先创建一个处于新建状态的进程。当创建完成后,操作系统将这个进程放在就绪状态的进程队列中,进程调度程序将在某个时刻选择这个进程运行。当进程在CPU上实际运行时,它就处于运行状态了。 处于阻塞状态的进程正在等待某个事件的发生并且不会被调度执行。通过执行一个如sleep的命令,进程可以自愿地进入阻塞状态。通常,进程执行一个I/O请求时也会进入阻塞状态直至I/

14、O操作完成。当I/O完成时,硬件会中断CPU,操作系统的中断处理程序将唤醒该进程使它进入就绪状态并等待重新被调度运行。 最后,当该进程完成时,它发出系统调用exit而进入僵死状态。当系统释放了该进程占用的所有资源后,该进程便消亡了。,程序和进程,2020/7/7,内核,内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 操作系统内核是指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。操作系统内核通常运行进程,并提供进程间的通信。它的一些核心功能包括:事件的调度和同步。进程间的通信(消息传递

15、)。存储器管理。进程管理。输入输出例程的管理。,2020/7/7,内核,操作系统,在UNIX术语中称为“UNIX内核” UNIX内核是一个底层的、直接运行于硬件的程序,它控制着硬件,并创建、销毁和控制所有进程。 典型地,它驻存在名为vmunix或unix(视unix厂商而定)的磁盘文件中。 当系统启动时,一个称为“自举”(bootstrapping)的特殊过程会将UNIX内核从磁盘加载至内存并启动它运行。内核初始化整个系统、设置进程运行的环境,然后创建几个初始进程。这些进程随后将创建其他进程。一旦加载,内核便驻存在内存直到系统关机。在此期间,它管理着所有进程并为它们提供各种服务。,2020/7

16、/7,UNIX系统的内核主要完成什么功能? UNIX系统的内核负责计算机系统中的资源管理和 进程调度分配,其中包括中断处理、存储器管 理、进程管理、I/O文件管理等多种基本程序, 它在整个系统中是一个核心机构,为系统的运行 提供最基础的支持。也可以说UNIX的内核是计算 机硬件的第一次延伸,在内核中通常是通过原语 操作实现各种控制和功能的管理,而对用户提供 一种接口进行服务。,2020/7/7,从更广的角度来看,操作系统不仅仅是这个内核,它还有其他许多程序和例程,它们一起提供一个有用的工作环境。图1-2给出的是UNIX系统的体系结构。 从中可看出,UNIX系统是层次模块结构的。处在最内层的是U

17、NIX内核,内核直接与硬件交互,向外提供UNIX系统调用界面,如read、write等。外层的程序,如shell、date、1s和who之类的实用程序,通过引用系统调用请求内核完成各种操作,并在内核与调用程序之间交换数据。其他应用程序则在较低层的程序和工具的基础上构筑而成。,内核,2020/7/7,2020/7/7,显然,单独一个核的功能是有限的,完整、友好的操作系统必须有内核外层的实用程序的支持。但是,内核在许多方面是特殊的,它定义了程序设计与系统的界面,是唯一的一个必不可少的程序,没有它任何程序都不能运行。尽管同时可有几个shell或编译程序可以运行,但一次只能装入一个核。,内核,2020

18、/7/7,shell,shell是UNIX系统中的一个命令解释程序,它处在用户和UNIX系统之间,起着协调用户与系统间的一致性、在用户与系统之间进行交互的作用。 shell在UNIX系统中的地位和作用如图1-3所示。 shell在UNIX中的主要作用是:用户环境设置、用户命令解释执行和shell程序设计。,2020/7/7,2020/7/7,一旦我们注册成功,系统就将为我们创建一个进程执行shell命令解释程序,这个shell称为注册shell,它负责读入并执行我们输入的命令。 通常shell可以接收两种形式的输入:来自终端的单条命令或者是来自一个文件的批处理命令,这种文件也称为脚本文件或命令

19、文件。 shell接收的命令有一些是内部命令,如cd命令,这些命令执行的是由shell内部实现的实用程序,另外的则执行其他的实用程序,这些命令由shell将控制转交给对应的实用程序并启动它们执行。,shell,2020/7/7,简单地说,SHELL是用户和内核之间的接口。它具有以下功能: 作为命令的解释翻译器。 功能强大的语言,自己编写一个SHELL程序,不用编译器直接运行。 各种操作系统都有自己的SHELL。 如对DOS,其SHELL是文件。对不同的DOS版本其不同。,shell,2020/7/7,UNIX系统有多种不同的shell,最常用的有: sh:Bourne Shell,也称为标准s

20、hell。它以其创建者Steve Bourne的名字命名,是UNIX shell中最老的,并且几乎所有UNIX系统都提供它。它稍有点原始并且缺乏作业控制能力,不过它非常适合于shell程序设计和编写命令文件。 /bin/sh csh:C shell,它是美国加州大学伯克利分校作为其BSD UNIX的一部分而开发的,并且一直是使用最广泛的交互shell。 C shell有许多Bourne Shell没有的特点,其中包括作业控制和历史机制。 /bin/csh ksh:Korn shell,它以其创建者David Korn而命名。 Korn shell与Bourne Shell兼容,但它还有许多C

21、shell的特征和另外新的特征,如历史编辑:回忆以前输入的命令并在执行之前编辑它们。它比C shell更为可靠。 /bin/ksh 当一个系统同时存在多种shell时,系统从/etc/passwd文件中注册账号登记项的最后一个字段可以知道应当使用哪一种shell作为用户的缺省shell。,shell,2020/7/7,特权用户,在UNIX中,每一个用户有一个账号,该账号具有一个注册名和一个唯一的用户ID。 根用户的用户名是root,其用户ID是0。 UNIX内核识别用户ID为0的用户并允许他不受限制地做任何事情,他可以超越系统施加的所有文件访问和执行权限,能够创建、修改甚至删除由系统管理的任何

22、文件。更重要的是,特权用户具有控制整个系统的权利,如关闭系统,甚至不经意地用一条简单的命令破坏整个系统! 特权用户具有维护系统安全、配置系统、增加和删除用户以及对系统进行正常的备份等责任。 通常,该用户负责监管UNIX的运行,他应当熟悉基本的UNIX操作系统管理过程。 除了特权用户之外,UNIX内核不区分其他任何用户,所有其他用户都视为是相同的,并且只能够做许可权限之内的事情。,2020/7/7,常见系统的缺省特权用户 UNIX root Windows NT/2000 administrator Novell netware 3.x: supervisor 4.x, 5.x: admin,特权用户,2020/7/7,系统调用与库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论