最新01第一二次课UNIX系统简介课件.ppt

上传人(卖家):晟晟文业 文档编号:4917311 上传时间:2023-01-25 格式:PPT 页数:62 大小:796.50KB
下载 相关 举报
最新01第一二次课UNIX系统简介课件.ppt_第1页
第1页 / 共62页
最新01第一二次课UNIX系统简介课件.ppt_第2页
第2页 / 共62页
最新01第一二次课UNIX系统简介课件.ppt_第3页
第3页 / 共62页
最新01第一二次课UNIX系统简介课件.ppt_第4页
第4页 / 共62页
最新01第一二次课UNIX系统简介课件.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、 课件原作者:课件原作者:刘日升刘日升 教授教授 杨芙清、仲萃豪、孙玉方、刘日升等是杨芙清、仲萃豪、孙玉方、刘日升等是开拓我国开拓我国UNIXUNIX操作系统事业的先驱者。操作系统事业的先驱者。孙玉方(中科院软件所副所长,红旗孙玉方(中科院软件所副所长,红旗LINUX的创始人)。的创始人)。二人第一次在中国介绍二人第一次在中国介绍UNIX,第一次讲,第一次讲授授 UNIX,剖析,剖析 UNIX内核。是中国接触内核。是中国接触UNIX的先辈。的先辈。刘日升刘日升;孙玉方孙玉方;UNIX操作系统分析报告操作系统分析报告J;计算机研究与发展计算机研究与发展;1982年年09期期 一、一、UNIX历史

2、历史 Unix 的生命力的生命力 Unix 起源与历史起源与历史 Unix 当前流行版本当前流行版本 Unix 标准化标准化 UNIX 的生命力的生命力Unix Unix 诞生于诞生于19691969年,年,比比PC 机、工作站、微处理机、工作站、微处理器甚至视频显示终端都要早,与第一块半导体存器甚至视频显示终端都要早,与第一块半导体存储器是同一时代的古物。储器是同一时代的古物。按照计算机工业的标准,按照计算机工业的标准,那已经是好几个地质纪年前的事了那已经是好几个地质纪年前的事了。世界上第一台世界上第一台PC机是由机是由IBM公司在公司在1981年推出。年推出。英特尔公司成立于英特尔公司成立

3、于1968年,年,1971年年11月月15日:世界上第日:世界上第一块个人微型处理器一块个人微型处理器4004诞生。诞生。1972年:年:8008 微处理器。微处理器。1974年:年:8080微处理器。微处理器。1978 年:年:8086-8088微处理器微处理器Unix Unix 比其它任何操作系统都更广泛地应用在各种比其它任何操作系统都更广泛地应用在各种机型上。机型上。没有哪一种操作系统能像没有哪一种操作系统能像 Unix Unix 那样,能同时在那样,能同时在作为研究工具、定制技术应用的友好宿主机、商作为研究工具、定制技术应用的友好宿主机、商用成品软件平台和互联网技术的重要部分等各个用成

4、品软件平台和互联网技术的重要部分等各个领域都大放异彩。领域都大放异彩。Unix 的生命力和适应力令人称奇。的生命力和适应力令人称奇。不变的东西有很多:语言、系统调用、工具不变的东西有很多:语言、系统调用、工具用法用法它们积年不变,甚至可以用上数十它们积年不变,甚至可以用上数十载。而在其它操作系统中则无法预判什么东载。而在其它操作系统中则无法预判什么东西会持久不变,有时候甚至整个操作系统都西会持久不变,有时候甚至整个操作系统都会被淘汰。会被淘汰。Unix 的稳定和成功在很大程度上归功于它与的稳定和成功在很大程度上归功于它与生俱来的内在优势,归功于生俱来的内在优势,归功于Ken Thompson,

5、Dennis Ritchie,Brian Kernighan,Doug McIroy,Rob Pike 和其他早期和其他早期Unix 开发者开发者一开始就作出的设计决策。一开始就作出的设计决策。Unix 的起源及历史的起源及历史“第二版效应第二版效应”与与“第三版效应第三版效应”。最初的最初的Unix 就是一个第三系统。就是一个第三系统。Unix 的的祖辈祖辈是小而简单的是小而简单的 兼容分时系统兼容分时系统CTSS(Compatible Time-Sharing System)Unix 的的父辈父辈是颇具开拓性的是颇具开拓性的MULTICS 项目,项目,(Multiplexed Inform

6、ation and Computing Service,多多路信息与计算服务路信息与计算服务),),能够支持大群用户对大型计算机的交互式分时能够支持大群用户对大型计算机的交互式分时使用。使用。最终最终MULTICS 因不堪自身重负而崩溃了。但因不堪自身重负而崩溃了。但Unix 却正是从它的废墟中破壳而出。却正是从它的废墟中破壳而出。创世纪:创世纪:19691971Unix 于于1969 年诞生于贝尔实验室(年诞生于贝尔实验室(Bell Labs)的计算机科学家们的头脑中。)的计算机科学家们的头脑中。当贝尔实验室从当贝尔实验室从Multics研究联盟中退出时,研究联盟中退出时,Ken Thomp

7、son 等人等人带着从带着从Multics 激发的激发的灵感留了下来。于是灵感留了下来。于是UNICS(UNiplexed Information and Computing Service,单路单路信息与计算服务信息与计算服务)问世于一台)问世于一台PDP7 小型小型机上。机上。Ken ThompsonDennis RitchieBrian KernighanDigital Equipment Corporation PDP-7 迷你计算机迷你计算机UNIX的实用:的实用:1970年,当时贝尔实验室的专利部门年,当时贝尔实验室的专利部门要设计开发一套文书处理系统,买了要设计开发一套文书处理系

8、统,买了一台拥有一台拥有512Kbytes 硬盘的硬盘的PDP-11/20计算机。计算机。Thompson与与Ritchie将将UNIX移植到该移植到该机上,并在此系统上开发了一套文书机上,并在此系统上开发了一套文书处理工具(处理工具(nroff/troff的前身)。的前身)。正式命名第一版正式命名第一版。最初的最初的Unix 用汇编语言写成,应用程序用汇用汇编语言写成,应用程序用汇编语言和编语言和B语言混和编写。语言混和编写。B语言属于一种解译语言,执行成效不好,语言属于一种解译语言,执行成效不好,于是于是Ritchie又将它发展成可产生机器码、允又将它发展成可产生机器码、允许定义数据形态及

9、结构许定义数据形态及结构 C语言。语言。1973 年,年,Thompson 和和 Ritchie 成功地用成功地用C语语言重写了整个言重写了整个Unix 系统。系统。UNIX于是首度出于是首度出现正式版本现正式版本V5(第五版第五版)。1974 年年RitchieThompson在在美国计算美国计算机通信机通信(Communications of the ACM)上发表论文第一次公开展示了上发表论文第一次公开展示了Unix。出埃及记:出埃及记:19711980C C语言的发展语言的发展 C语言的原型语言的原型ALGOL 60语言。语言。1963年,剑桥大学将年,剑桥大学将ALGOL 60语言发

10、展成为语言发展成为CPL(Combined Programming Language)语言。语言。1967年,剑桥大学的年,剑桥大学的Matin Richards 对对CPL语言进语言进行简化,产生行简化,产生BCPL语言。语言。1970年,年,Ken Thompson将将BCPL进行了修改,并进行了修改,并为它起了一个有趣的名字为它起了一个有趣的名字“B语言语言”。Ritchie向向Thompson的的B语言中加入数据类型和新的语言中加入数据类型和新的句法,产生了一种新语言句法,产生了一种新语言C语言。语言。C语言是一门伟大的承前启后的语言。语言是一门伟大的承前启后的语言。C语言是借助语言是

11、借助Unix操作系统的翅膀而起飞的,操作系统的翅膀而起飞的,Unix操作系统也由于操作系统也由于C而得已快速移植落地生根,两者而得已快速移植落地生根,两者相辅相承,成就了软件史上最精彩的一幕。相辅相承,成就了软件史上最精彩的一幕。1972 年在年在PDP11 旁的旁的Ken(坐)和(坐)和Dennis(站)(站)根据根据1958年为解决反托拉斯案例达成的和解年为解决反托拉斯案例达成的和解协议,协议,AT&T被禁止进入计算机相关的商业被禁止进入计算机相关的商业领域。所以,领域。所以,Unix 不能够成为一种商品不能够成为一种商品。而。而且贝尔实验室必须将非电话业务的技术许可且贝尔实验室必须将非电

12、话业务的技术许可给任何提出要求的人。给任何提出要求的人。CACM 论文发表后,全球各个研究实验室和论文发表后,全球各个研究实验室和大学都嚷着要亲身体验大学都嚷着要亲身体验Unix。Ken Thompson 开始默默回应那些请求,将开始默默回应那些请求,将磁带和磁盘一包包地寄送出去。磁带和磁盘一包包地寄送出去。V6。UCBerkeley也就是依据这个版本开始研究并也就是依据这个版本开始研究并加以发展,并在加以发展,并在1977年发表年发表1BSD(Berkeley Software Distribution)。)。现代现代Unix 程序员程序员公认的第一个完全意义上的公认的第一个完全意义上的Un

13、ix 是是1978 年发布的年发布的V7 版本。版本。UNIX Time-Sharing System,7thEditionUNIX V7包含包含Fortran77 compiler、Shell(BourneShell)、文件处理工具()、文件处理工具(nroff/troff、roff、MSmocro等)、等)、UNIX-to-UNIX-file-Copy(支持两台(支持两台UNIX机器间的档案传输)、机器间的档案传输)、数据处理工具(数据处理工具(AWK、SED等)、除错工具等)、除错工具(ADB)、程序开发工具()、程序开发工具(MAKE)、)、Lexical analyzer gener

14、ator(LEX、YACC等)、简单的绘图工具、并支持等)、简单的绘图工具、并支持C语言及语言及LINTverifier商业化的不平坦历程商业化的不平坦历程-UNIX版本的战争。版本的战争。UNIX 族系族系UNIX的流行版本的流行版本 公司公司:Unix版本版本/CPU型号型号 SUN:Solaris /SPARC,Intel HP:HP-UX /PA-RISC IBM:AIX /PowerPC SCO:UnixWare7.0,Open Server /Intel Compaq:Tru64 UNIX /Alpha SGI:IRIX /MIPS GNU:Linux /CISC(Intel,MC

15、68000)RISC(SPARC,Alpha,MIPS)再来看看几件有关的事!再来看看几件有关的事!微软的兴起微软的兴起 1981 年,微软同年,微软同IBM 就新型就新型IBM PC 达成了历史达成了历史性交易性交易:PC-DOS。比尔比尔盖茨盖茨从西雅图计算机产品公司(从西雅图计算机产品公司(SCP,Seattle Computer Products)买下了)买下了QDOS(Quick and Dirty Operating System,是,是SCP 公司拼凑出来的第一个广泛公司拼凑出来的第一个广泛采用的采用的PC操作系统操作系统CP/M 的翻版)。盖茨对的翻版)。盖茨对SCP隐瞒了隐瞒

16、了同同IBM的交易,只花了五万美元。的交易,只花了五万美元。后来,盖茨又说服了后来,盖茨又说服了IBM 允许微软将允许微软将MSDOS 从硬件中剥离出来单独出售。从硬件中剥离出来单独出售。接下来的十年中,盖茨利用这个非他所写的程序变成了接下来的十年中,盖茨利用这个非他所写的程序变成了超级亿万富翁,而比首笔交易更加精明的商业策略更是超级亿万富翁,而比首笔交易更加精明的商业策略更是让微软垄断了桌面计算机市场。让微软垄断了桌面计算机市场。作为产品的作为产品的XENIX 被放弃,最终卖给了被放弃,最终卖给了SCO 公司。公司。AT&T 的拆分的拆分 1983 年,美国司法部对在针对年,美国司法部对在针

17、对AT&T 的的第二起反托拉斯诉讼中获胜,并拆分了第二起反托拉斯诉讼中获胜,并拆分了贝尔系统。这次判决将贝尔系统。这次判决将AT&T 从从1958 年年的禁止将的禁止将Unix 产品化的和解协议中解脱产品化的和解协议中解脱了出来。了出来。AT&T 马上忙不迭地将马上忙不迭地将Unix System V商业化商业化这一举措差点扼杀这一举措差点扼杀了了Unix。当时,没有人意识到,当时,没有人意识到,Unix 的产业化会的产业化会破坏破坏Unix 源码的自由交流,而恰是后者源码的自由交流,而恰是后者滋养了滋养了Unix 系统早期的活力系统早期的活力。AT&T 与与BSD的官司的官司 BSD不断增大

18、的影响力终于引起了不断增大的影响力终于引起了AT&T的关注,的关注,于是开始了一场旷日持久的版权官司,一直打到于是开始了一场旷日持久的版权官司,一直打到 AT&T将自己的将自己的Unix系统实验室卖掉,新接手的系统实验室卖掉,新接手的Novell采取了一种比较开明的做法,允许伯克利自采取了一种比较开明的做法,允许伯克利自由发布自己的由发布自己的BSD,但是前提是必须将来自,但是前提是必须将来自AT&T的代码完全删除,于是诞生了的代码完全删除,于是诞生了4.4BSD Lite版。版。4.4BSD Lite不存在法律问题,成为现代不存在法律问题,成为现代BSD系统的系统的基础版本。尽管后来,非商业

19、版的基础版本。尽管后来,非商业版的UNIX系统经过系统经过了很多演变,但其最终都是建立在了很多演变,但其最终都是建立在BSD版本上版本上(Linux除外)。所以从这个角度上,除外)。所以从这个角度上,4.4BSD又是又是所有自由所有自由(Free)版版Unix的基础,它们和的基础,它们和 SYSTEM V及及Linux共同构成共同构成Unix操作系统这片璀璨的星空。操作系统这片璀璨的星空。UNIX与与 DARPA 握手握手 1980 年,国防部高级研究计划局(年,国防部高级研究计划局(DARPA,Defense Advanced Research Projects Agency)正在为正在为A

20、I,VLSI及计算器视觉等研究找寻一及计算器视觉等研究找寻一个可共通作业的计算机环境。硬件方面的首个可共通作业的计算机环境。硬件方面的首选是选是DEC的的VAX主机,配合的操作系统是主机,配合的操作系统是VMS。但是需要。但是需要VMS做调整,包括实现全新做调整,包括实现全新的的TCP/IP 协议栈。协议栈。因因DEC不太乐意改动他们的专有操作系统,不太乐意改动他们的专有操作系统,DARPA 选择了伯克利选择了伯克利Unix 作为平台作为平台显然显然因为可以毫无阻碍地拿到它的源码。因为可以毫无阻碍地拿到它的源码。1983 年后,随着年后,随着BSD 植入了植入了TCP/IP,Unix 文化和文

21、化和 ARPANET 文化开始融文化开始融合。合。随着随着Unix的成功,的成功,TCP/IP逐步成为逐步成为Unix 机器的标准网络协议。从此,机器的标准网络协议。从此,Unix 与与TCP/IP相伴,占领了网络时相伴,占领了网络时代的大舞台代的大舞台。GNU 宣言宣言 GNUs Not Unix!1983年,年,MIT 的的Richard M.Stallman 发表了发表了GNU 宣言,宣言,1985年发起了自由软件基金会(年发起了自由软件基金会(Free Software Foundation)。)。Free UNIX。制定出了属于制定出了属于GNU 计划的软件版权计划的软件版权(“co

22、pyleft”),与著作版权与著作版权(copyright)“对立对立”。这就是。这就是 GPL-General Purpose License(通用公共授权通用公共授权)。90 年代初,年代初,GNU 计划已完成了质量与数量均十计划已完成了质量与数量均十分可观的系统工具分可观的系统工具,被广泛使用在当时各种工作站被广泛使用在当时各种工作站的的 UNIX 系统上。虽然已有如此的成果,但仍称系统上。虽然已有如此的成果,但仍称不上是完整的操作系统。他们缺少一支属于自己不上是完整的操作系统。他们缺少一支属于自己的的“核心程序(核心程序(kernal)。1985 年,年,Carnegie Mellon

23、 University以以 4.3BSD为发展基础,采用微核心的写法,成立自己的为发展基础,采用微核心的写法,成立自己的计划,名称叫计划,名称叫“Hurd“。GNU Hurd 是是 GNU 工工程中取代程中取代 Unix 的核心,但目前仍在工作中。的核心,但目前仍在工作中。在众多自由软件写作者的努力下,一条新的大在众多自由软件写作者的努力下,一条新的大道其实已经被开拓出来:道其实已经被开拓出来:Linux 是一套版权彻彻是一套版权彻彻底底与底底与 AT&T 无关的无关的 UNIX-like OS。Linux里里大部分的系统工具,来自于大部分的系统工具,来自于 GNU 计划成果及其计划成果及其它

24、的自由软件写作计划产生的软件它的自由软件写作计划产生的软件。这套操作系统,包含了自由软件写作者的共同这套操作系统,包含了自由软件写作者的共同心血,其实也就是心血,其实也就是 RMS 多年来想要达成的宿愿多年来想要达成的宿愿-Free UNIX。所以,也有人用。所以,也有人用 GNU/Linux 来称呼这个操作系统。来称呼这个操作系统。UNIX简史简史1965-1969 Multics(Multiple Information Computing Service)US DOD国防部 MIT,AT&T Bell,GE1970 Unix V1(PDP-7),AT&T Bell,K.Thompson,

25、D.M.Ritchie1970 Unix V2(B Language),K.Thompson1972 C Language,D.M.Ritchie1973 Unix V5(C)1973 ACM OS 原理会议1974 CACM“The Unix Time Sharing System”1975 Unix V6 发行源代码发行源代码1978 Unix V7 移植到不同机器上1980 BSD 发行BSD4.0,Microsoft 发行XENIX1981 AT&T System III (USG-UNIX System Group)1983 AT&T System V (USG并入USL(UNIX

26、System Laboratory)1983 ACM Turing 奖奖(D.M.Rithie&K.Thompson)1984 UNIX System V Release 2(SVR2)推出。4.2 BSD推出1987 SVR3 推出。4.3BSD 推出1988 POSIX.1 发布。OSF 和 UI成立1989 SVR4 推出1991 Linus Torvalds 推出推出 Linux1992 SVR4.2(USL)推出。4.4 BSD推出(最后版)USL并入Novell发布 SVR4.2MP(最后版)和UNIXWARE1995 X/Open 推出 UNIX95 UNIXWARE 卖给SCO

27、(Santa Cruz Operation)1996 Open Group 成立1998 Open Group 推出 UNIX981999 Linux 2.2 内核发布2001 Linux 2.4 内核发布UNIX 标准标准 由各自独立的组织所制定的三个标准:由各自独立的组织所制定的三个标准:ISO CIEEE POSIXSingle UNIX Specification ISO C 1989年下半年,年下半年,C程序设计语言的程序设计语言的ANSI标准标准X3.159-1989得到批准。此标准已被采纳为国际得到批准。此标准已被采纳为国际标准标准ISO/IEC 9899:1990。此标准不仅定

28、义了此标准不仅定义了C程序设计语言的语法和语义,程序设计语言的语法和语义,还定义了其标准库。因为还定义了其标准库。因为所有现今的所有现今的UNIX系统系统都提供都提供C标准中定义的库例程标准中定义的库例程,所以该标准库是,所以该标准库是很重要的。很重要的。在在1999年,年,ISO C标准被更新为标准被更新为ISO/IEC 9899:1999。新标准显著改善了对进行数值处理的应。新标准显著改善了对进行数值处理的应用程序的支持。用程序的支持。按标准定义的各个头文件(按标准定义的各个头文件(header),可将),可将ISO C库库分成分成24个区。下表列出了个区。下表列出了C标准定义的各个头文件

29、。标准定义的各个头文件。IEEE POSIX POSIX是一系列由是一系列由IEEE制定的标准,指的是制定的标准,指的是可移植的操作系统接口可移植的操作系统接口(Portable Operating System Interface)。)。它原来指的只是它原来指的只是IEEE标准标准1003.1-1988(操作(操作系统接口),后来则扩展成包括很多标记为系统接口),后来则扩展成包括很多标记为1003的标准及标准草案,包括的标准及标准草案,包括shell和实用程序和实用程序(1003.2)该标准的目的是提高应用程序在各种该标准的目的是提高应用程序在各种UNIX系系统环境之间的可移植性。它定义了统

30、环境之间的可移植性。它定义了“依从依从POSIX的的”(POSIX compliant)操作系统必)操作系统必须提供的各种服务。须提供的各种服务。由于由于1003.1标准标准定义的是一个接口定义的是一个接口(interface)而不是一种而不是一种实现实现(implementation),所以并不区分系统),所以并不区分系统调用和库函数。调用和库函数。经过不断演变,最终的文档作为经过不断演变,最终的文档作为IEEE Std.1003.1-1990正式出版,这也就是国际正式出版,这也就是国际标准标准ISO/IEC 9945-1:1990。通常被称为。通常被称为 POSIX.1。IEEE 1003

31、.1工作组继续对标准做出修改,工作组继续对标准做出修改,最终形成了最终形成了IEEE标准标准1003.1-2001。IEEE标准标准1003.1-2001,其中包括了下列几个标准:,其中包括了下列几个标准:.ISO/IEC 9945-1(IEEE标准1003.1-1996),它包括.IEEE标准1003.1-1990。.IEEE标准1003.1b-1993(实时扩展)。.IEEE标准1003.1c-1995(pthreads)。.IEEE标准1003.1i-1995(实时技术勘误表)。.IEEE P1003.1a标准草案(系统接口修订版)。.IEEE标准1003.1d-1999(高级实时扩展)

32、。.IEEE标准1003.1j-2000(更高级的实时扩展)。.IEEE标准1003.1q-2000(文件跟踪)。.IEEE标准1003.2d-1994(批处理扩展)。.IEEE P1003.2b草案标准(附加的实用程序)。.IEEE标准1003.1g-2000(协议无关接口)的某些部分。.ISO/IEC 9945-2(IEEE标准1003.2-1993)。.Single UNIX Specification第2版的基本规范。.开放组技术标准,网络服务,5.2 发行版。.ISO/IEC 9899:1999,C编程语言。Single UNIX Specification Single UNIX

33、Specification(单一(单一UNIX规范)规范)(SUS)由)由Open Group发布,是发布,是POSIX.1标准的一标准的一个超集,定义了一些附加的接口,这些接口扩展了个超集,定义了一些附加的接口,这些接口扩展了基本的基本的POSIX.1规范所提供的功能。相应的系统接规范所提供的功能。相应的系统接口全集被称为口全集被称为X/Open系统接口系统接口(XSI,X/Open System Interface)。)。XSI还定义了必须实现还定义了必须实现POSIX.1的哪些可选部分才的哪些可选部分才能认为是能认为是遵循遵循XSI(XSI conforming)的。它们包)的。它们包括

34、文件同步、存储映射文件、存储保护及线程接口。括文件同步、存储映射文件、存储保护及线程接口。只有遵循只有遵循XSI的实现才能称为的实现才能称为UNIX系统。系统。2003年年ISO将其批准为国际标准将其批准为国际标准ISO/IEC 9945:2003。二、二、UNIX系统结构系统结构 简略结构简略结构 总体结构总体结构 UNIX运行环境运行环境 文件系统结构文件系统结构 UNIX核心结构核心结构硬件kernelShell编译编译部件部件实用程序实用程序应用程序应用程序编译编译程序程序UNIX简略结构简略结构UNIX层次结构说明:层次结构说明:硬件:硬件:可以是便携机、个人机、工作站、小可以是便携

35、机、个人机、工作站、小型机等型机等内核:内核:包括中断、存储、进程、包括中断、存储、进程、I/O、文件等、文件等管理程序管理程序Shell:具有多种功能的系统程序具有多种功能的系统程序实用程序:实用程序:完成大部分完成大部分UNIX高级命令的功能高级命令的功能系统调用入口表Shell核心程序GUI实用程序和应用程序中断向量表 设备开关表硬件系统调用接口硬件接口字符界面图形界面用户态核心态 总体结构总体结构CRTkeybordUNIXSERVERTTYPCPCMPSTNMTTY/PCPCRouterDial serverTermserver远程网RouterPSTNPSTNPCPCTTYPC控制

36、台网卡多端口卡哑终端哑终端或或PC仿真终端仿真终端(主机多用户)(主机多用户)哑终端拨号上网wwwemailftptelnet(伪终端伪终端)PC仿真终端仿真终端.(网络多用户)(网络多用户)PPPPPPTCP/IP UNIX运行环境运行环境LANLAN串口文件系统结构文件系统结构rootboot启动目录,存放Bootloader和内核etcbin sbinlibusrvarhomebinsbin liu wangtmpdevmntproctty1lp0注册用户目录设备文件root用户目录内存文件/根目录被安装的文件系统系 统 命 令 文 件临时文件变化文件库文件系统文件一般来说一般来说OS的

37、核心有以下几种的核心有以下几种:1.单块核心单块核心(MONOLITHIC KERNEL)将所有将所有OS功能放入核心功能放入核心.UNIX就是这种结构就是这种结构.2.环状核心环状核心 分为核心分为核心,任务任务,用户几级用户几级,如如MINIX.LINUX 也有这种特征也有这种特征,比如比如LINUX增加某些种类的服务时不像增加某些种类的服务时不像UNIX,必须重新启必须重新启动动.这就是这种结构比这就是这种结构比UNIX先进的地方先进的地方.3.无内核无内核:不区分核心和用户程序的分别不区分核心和用户程序的分别,这样省去了状态切换的时间这样省去了状态切换的时间,这种模式适合这种模式适合W

38、EB服务器服务器.4.微内核微内核 微内核和超微内核结构主要用于研究性操作系统,还有一微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核。些嵌入式系统使用外核。微内核将许多微内核将许多OS服务放入分离服务放入分离的进程的进程,如文件系统如文件系统,设备驱动程序设备驱动程序,而进程通过消息传递调而进程通过消息传递调用用OS服务服务.微内核结构必然是多线程的。微内核结构必然是多线程的。用户级用户级核心级核心级硬件级硬件级核心级核心级traptrapI/O进程进程UNIX核心结构核心结构系统调用界面系统调用界面程序库程序库硬件硬件硬件控制硬件控制driver字符设备字符设备 块设

39、备块设备cache文件系统文件系统用户程序用户程序IPC调度调度存储管理存储管理用户级用户级核心级核心级硬件级硬件级核心级核心级Linux核心结构核心结构用户程序用户程序系统调用界面系统调用界面VFS内存内存进程进程SOCKETFS1FS2FS3driverTCP/IPDiskdriverFlopydriverDISKFLOPYEther CardEther carddriver 习题习题什麽是内核?什麽是什麽是内核?什麽是shell?以以UNIX环境为例说明什麽是主机多用户环境和网络多用环境为例说明什麽是主机多用户环境和网络多用户环境?户环境?UNIX的文件系统是什麽结构?这有什麽优点?的文

40、件系统是什麽结构?这有什麽优点?UNIX的核心属于什麽结构?简述各成分的功能及它们间的核心属于什麽结构?简述各成分的功能及它们间的关系。的关系。Linux中中VFS的作用是什麽?有什麽优点?的作用是什麽?有什麽优点?三、三、UNIX特点特点 主要优缺点主要优缺点“机制,而不是策略机制,而不是策略”UNIX 哲学基础哲学基础 UNIX 哲学之一言以蔽之哲学之一言以蔽之UNIX优点和缺点优点和缺点Unix优点优点 l设计精湛设计精湛:小核心和大量实用工具(用管道和小核心和大量实用工具(用管道和shell组合)组合)l简单小巧的文件系统(字节流文件)简单小巧的文件系统(字节流文件)l系统使用文本数据

41、(便于管理)系统使用文本数据(便于管理)lI/O的文件表示便于的文件表示便于I/O重定向(设备独立性)重定向(设备独立性)l可移植性(可移植性(c语言)语言)Unix缺点缺点I/O库复杂库复杂用户接口不方便用户接口不方便(描述过于简单描述过于简单)积木式工具要求程序员有丰富的想象力和创造力积木式工具要求程序员有丰富的想象力和创造力版本太多,可移植性不能完全实现版本太多,可移植性不能完全实现无序模块结构内核,层次不清晰,显得复杂无序模块结构内核,层次不清晰,显得复杂机制,而不是策略机制,而不是策略 最持久的异议恰恰来自最持久的异议恰恰来自Unix 哲学的一个特性,哲学的一个特性,这一条特性是这一

42、条特性是X window 设计者首先明确提设计者首先明确提出的出的“机制,而不是策略机制,而不是策略”。这种选择机制而不是策略的代价是:当用户这种选择机制而不是策略的代价是:当用户“可以可以”自己设置策略时,他们其实是自己设置策略时,他们其实是“必须必须”自己设置策略。自己设置策略。只看眼前,只看眼前,Unix 的这种自由放纵主义风格会的这种自由放纵主义风格会让它失去很多非技术型用户。但从长远考虑,让它失去很多非技术型用户。但从长远考虑,最终你会发觉这个最终你会发觉这个“错误错误”换来至关重要的优换来至关重要的优势:策略相对短寿,而机制才会长存。势:策略相对短寿,而机制才会长存。UNIX 哲学

43、基础哲学基础从整体上来说,可以概括为以下从整体上来说,可以概括为以下1717点:点:模块原则:使用简洁的接口拼合简单的部模块原则:使用简洁的接口拼合简单的部件。件。Brian Kernighan 曾经说过的:曾经说过的:“计计算机编程的本质就是控制复杂度算机编程的本质就是控制复杂度”。要编。要编制复杂软件而又不至于一败涂地的唯一方制复杂软件而又不至于一败涂地的唯一方法就是降低其整体复杂度法就是降低其整体复杂度用清晰的接用清晰的接口把若干简单的模块组合成一个复杂软件。口把若干简单的模块组合成一个复杂软件。2.2.清晰原则:清晰胜于机巧。清晰原则:清晰胜于机巧。在写程序时,要想到你不是写给执行代码

44、的计在写程序时,要想到你不是写给执行代码的计算机看的,而是给人算机看的,而是给人将来阅读维护源码的将来阅读维护源码的人,包括你自己人,包括你自己看的。看的。这个建议不仅意味着代码注释。良好的这个建议不仅意味着代码注释。良好的Unix 实践同样信奉在选择算法和实现时就应该考虑实践同样信奉在选择算法和实现时就应该考虑到将来的可扩展性。到将来的可扩展性。3.3.组合原则:设计时考虑拼接组合。组合原则:设计时考虑拼接组合。如果程序彼此之间不能有效通信,那么软件就如果程序彼此之间不能有效通信,那么软件就难免会陷入复杂度的泥淖。要想让程序具有组难免会陷入复杂度的泥淖。要想让程序具有组合性,就要使程序彼此独

45、立。合性,就要使程序彼此独立。4.分离原则:策略同机制分离,接口同引擎分离原则:策略同机制分离,接口同引擎分离。分离。其中一个方法是将应用程序分成可以协作其中一个方法是将应用程序分成可以协作的前端和后端进程,通过套接字上层的专的前端和后端进程,通过套接字上层的专用应用协议进行通讯;前端实现策略,后用应用协议进行通讯;前端实现策略,后端实现端实现机制。机制。5.简洁原则:设计要简洁,复杂度能低则低。简洁原则:设计要简洁,复杂度能低则低。一种软件文化,以简洁为美。一种软件文化,以简洁为美。6.6.吝啬原则:除非确无它法,不要编写庞大吝啬原则:除非确无它法,不要编写庞大的程序。的程序。“大大”有两重

46、含义:体积大,复杂程度高。有两重含义:体积大,复杂程度高。7.透明性原则:设计要可见,以便审查和调试。透明性原则:设计要可见,以便审查和调试。一个特别有效的减少调试工作量的方法就是设计时一个特别有效的减少调试工作量的方法就是设计时充分考虑透明性和显见性。充分考虑透明性和显见性。透明性是指你一眼就能够看出软件是在做什么以及透明性是指你一眼就能够看出软件是在做什么以及怎样做的。显见性指程序带有监视和显示内部状态怎样做的。显见性指程序带有监视和显示内部状态的功能。的功能。8.健壮原则:健壮源于透明与简洁。健壮原则:健壮源于透明与简洁。让程序健壮的方法,就是让程序的内部逻辑更易于让程序健壮的方法,就是

47、让程序的内部逻辑更易于理解。要做到这一点主要有两种方法:透明化和简理解。要做到这一点主要有两种方法:透明化和简洁化。洁化。9.表示原则:把知识叠入数据以求逻辑质朴而健壮。表示原则:把知识叠入数据以求逻辑质朴而健壮。在设计中,你应该主动将代码的复杂度转移到数据在设计中,你应该主动将代码的复杂度转移到数据之中去。之中去。10.通俗原则:接口设计避免标新立异。通俗原则:接口设计避免标新立异。(也就是众所周知的(也就是众所周知的“最少惊奇原则最少惊奇原则”。)。)最易用的程序就是用户需要学习新东西最最易用的程序就是用户需要学习新东西最少的程序少的程序或者,换句话说,最易用的或者,换句话说,最易用的程序

48、就是最切合用户已有知识的程序。程序就是最切合用户已有知识的程序。11.缄默原则:如果一个程序没什么好说的,缄默原则:如果一个程序没什么好说的,就沉默。就沉默。12.补救原则:出现异常时,马上退出并给出补救原则:出现异常时,马上退出并给出足够错误信息。足够错误信息。软件在发生错误的时候也应该与在正常操软件在发生错误的时候也应该与在正常操作的情况下一样,有透明的逻辑。作的情况下一样,有透明的逻辑。13.经济原则:宁花机器一分,不花程序员一秒。经济原则:宁花机器一分,不花程序员一秒。14.生成原则:避免手工生成原则:避免手工hack,尽量编写程序去,尽量编写程序去生成程序。生成程序。由程序生成代码几

49、乎由程序生成代码几乎(在在各个各个层次层次)总是比手写总是比手写代码廉价并且更值得信赖。代码廉价并且更值得信赖。15.优化原则:雕琢前先要有原型,跑之前先学优化原则:雕琢前先要有原型,跑之前先学会走。会走。在在Unix 世界里,有一个非常明确的悠久传统:世界里,有一个非常明确的悠久传统:先制作原型,再精雕细琢。优化之前先确保能先制作原型,再精雕细琢。优化之前先确保能用。或者:先能走,再学跑。用。或者:先能走,再学跑。“极限编程极限编程”宗宗师师Kent Beck 从另一种不同的文化将这一点有从另一种不同的文化将这一点有效地扩展为:先求运行,再求正确,最后求快。效地扩展为:先求运行,再求正确,最

50、后求快。16.多样原则:决不相信所谓多样原则:决不相信所谓“不二法门不二法门”的断言。的断言。Unix 奉行的是广泛采用多种语言、开奉行的是广泛采用多种语言、开放的可扩展系统和用户定制机制。放的可扩展系统和用户定制机制。17.扩展原则:设计着眼未来,未来总比预扩展原则:设计着眼未来,未来总比预想来得快。想来得快。设计代码时,要有很好的组织,让将来的设计代码时,要有很好的组织,让将来的开发者增加新功能时无需拆毁或重建整个开发者增加新功能时无需拆毁或重建整个架构。建议在编写代码时要考虑到将来的架构。建议在编写代码时要考虑到将来的需要,使以后增加功能比较容易。程序接需要,使以后增加功能比较容易。程序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(最新01第一二次课UNIX系统简介课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|