unix培训教材-基础知识.doc_第1页
unix培训教材-基础知识.doc_第2页
unix培训教材-基础知识.doc_第3页
unix培训教材-基础知识.doc_第4页
unix培训教材-基础知识.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

UNIX培训教材-基础知识(内部使用)恒 生 在 您 身 边 杭州恒生电子股份有限公司第一章 UNIX历史60年代后期,AT&T公司和麻省理工学院(MIT)合作开发MULTICS操作系统,MULTICS是最早的分时系统之一,实现了当代多任务操作系统大多数思想。但过于笨拙、复杂,作为革新的角色而蒙受了不幸。 AT&T 撤出了他的开发人员,这些富有创造性才华而又遭受挫折的人员(Ken Thompson 和 Dennis Ritchie,以及J.F.Ossanna 和 R.Morris)在一台废弃的DEC PDP-7上从一个太空旅行游戏的制作开始,用汇编语言制作了一个简化的MULTICS,称为UNIX。71年开发出C语言,并用C语言来完成其他系统开发工作。目前,只有极少数高性能的核心子程序仍由汇编语言编制。这是用高级语言编写整个操作系统的首次尝试,由此而来的可移植性是使UNIX得到广泛好评的重要原因。从UNIX的发展历史来看,主要有两大流派:AT&T的UNIX系统V版本和加州大学伯克利分校的BSD版本。经过几十年的发展,UNIX已经成为流行于从大型机、小型 机到工作站甚至微机等多种平台的操作系统。在此基础上,各家UNIX厂商均开发了各自的UNIX操作系统。如:小型机上有IBM的 AIX、惠普公司的HP-UX、SUN 的solaris等。等,微机上有SCO UNIX、微软的Xenix以及随着Internet而风靡全球的Linux等。第二章 系统概况UNIX系统的结构UNIX系统可以概略地分为用户层与内核层两个部分:内核紧邻裸机,是系统的灵魂,是操作系统的管理和控制中心;用户层处于UNIX系统外层,主要是补充操作系统的功能,包括UNIX本身提供的命令、公用程序和用户使用系统指令开发的软件。用户层内核层裸机UNIX系统中,用户命令通过shell执行命令解释程序来实现。shell是一个用户程序,不是内核的一部分,它提供用户与核心打交道的界面,使得用户没有意识到核心的存在。UNIX系统的特点l 分时的多用户多任务操作系统;l 文件、目录和设备统一处理;l 网络功能强;l 可装卸的树型文件系统;l 具有很好的移植性和伸缩性;l 强大的数据库支持能力UNIX的基本部件1、文本编辑器,包括行编辑器和全屏编辑器;2、文本操作系统工具,如head、tail、sort等;3、软件开发工具;4、shell命令;5、具有内在安全性的层次文件系统;6、分布式文件系统,主要是TCP/IP网络的推广和NFS的广泛应用;7、文件系统;8、电子邮件和网络新闻;9、网络支持,支持UUCP、FTP、TELNET等;UNIX的标准化l SVID标准国际UNIX组织和AT&T公司于85年宣布的: System V Interface Definition,即SVID。该文件在系统调用、例行程序库和实用程序等方面描述了UNIX System V。它给出了定义UNIX System V的基准,UNIX System V的所有提供者必须遵循这一基准。 l POSIX规范(Portable Operating System Interface) 美国的UNIX用户协会和美国的IEEE学会在85年制订的一个可移植的操作系统规范。它包括可移植操作系统的规范、命令语言Shell和其它工具、以及验证测试方法等。 第三章 文件系统文件目录概述UNIX系统提供了一种层次目录方案。目录就象存放一组文件的柜子一样,目录也可以包括在其他目录中,这样就形成了一种庞大的、具有分支的组织方式,这种结构通常被称为树状结构。目录实际上也是一种特殊的文件。命令、数据文件、其他命令甚至设备(特别文件)都可以作为目录中的项(文件)。l I标识号、I列表和I节点一个目录是由一系列结构组成的;每个结构包含一个文件名和一个指向文件自身的指针,该指针是一个整数,称为文件的I标识号。当文件被访问时,它的I标识号用来作为索引打开一个系统表(I列表),系统中存放着文件(I节点)的实体。I节点包含了对文件的描述:文件自身的用户和用户组ID文件的保护码文件内容所在的物理磁盘地址文件的大小最后一次I节点改变的时间,最后一次使用和修改的时间连接该文件的次数,即它出现在其他目录中的次数一个指明文件类型的标记(目录、普通文件、特别文件)l 文件的三级保护UNIX把使用文件的用户分成三个等级:文件所有者、同组用户和其他用户。文件所有者也称文件主,是文件的创建者,对该文件拥有所有权限;同组用户是具有相同组标识号的所有用户,文件主可以决定一个文件属于哪个组以及该组用户对文件的存取权;其他用户是指与文件主无关的用户,他们与文件主不属于同一个用户组,其他用户对一个文件的访问权限也由该文件主决定的。一个文件的访问权限存放在该文件I节点的di_mode域中,di_mode的08位表示文件主、文件组用户和其他用户对该文件的存取权限。举个例子,用ls -l命令可列出文件hello.c的模式和属性:-rwxr-xr-x 1 yds user 58 9月 25日 10时54分 hello.c最左面一栏显示了该文件的模式:文件主对该文件可读(r)、可写(w)、可执行(x),同组用户对该文件可读、可执行,其他用户对该文件可读、可执行。相应的,di_mode的08位为111101101(0755)。访问权限控制文件和目录的访问权限基础在前面曾介绍过,命令ls -l可以列出文件或目录的访问权限。所谓访问权限是指用户是否具有对文件或目录进行读写和执行的能力。在UNIX系统中,文件和目录的权限分为以下三类:l 属主的权限定义了文件和目录属主可对其进行的操作。l 同组用户的权限定义了与属主在同组的其他成员可对其进行的操作,以下简称为组权限。l 其他用户的权限定义了除去属主及其同组的成员外,其他用户可其进行的操作。创建文件的用户是文件的属主,文件的属主可以选择同组用户或其他用户对文件和目录的访问权限。UNIX系统按属主、同组用户和其他用户的顺序(即依次将当前用户与上述三类用户匹配)来验证对文件操作的用户的许可权。在使用ls 杔命令时,所列文件的第一项的从第二位起便对应文件的访问权限,第二至四位为文件属主的访问权限,第五至七位为组权限,第八至十位为其他用户的访问权限。当目录权限被设为只读时,用户只能列出该目录的文件清单而无法对其中文件进行任何操作,如果用户想要对目录中的一个文件进行操作,则他必须有对目录的可执行权限。文件所属组的定义与具体的UNIX系统有关。一些系统上当前目录决定组。在另一些系统中文件属主可以指定其所在的一个二级组做为文件的组(使用newgrp命令),并且可以产生一个属于某个二级组的文件或目录。注意:UNIX系统中,超级用户可以读、写和执行任何一个文件而忽略该文件的属主所规定的权限。权限位在前面,我们提到每个文件或目录都有属主和所在的组,并且文件和目录的访问权限分为属主的权限、组权限和其他用户的权限三类。对于每一类访问权限,UNIX使用三个权限位来加以定义,在文件中这三个权限位及其意义如下:l 读(r):当被置为1时,文件可读。l 写(w):当被置为1时,文件可修改、可删除、可重命名。l 执行(x):当被置为1时,文件可执行。在目录中这在个权限位及其意义如下:l 读(r):当被置为1时,目录可读。l 写(w):当被置为1时,目录可被修改、删除、重命名。l 执行(x):当被置为1时,可对目录中的文件操作:这里执行位又叫查寻位,因为目录的执行位并不表示该目录是否可被执行,而是表示是否允许在该目录下寻找文件。下面我们进一步分析一下目录的访问权限,设在/home/liuy目录下有一子目录testdir,该子目录有以下属性:drwxrwx- 3 liuy develop 1536 Nov 4 06:00 testdir在目录testdir下还有一个test file文件,其属性为:-rwxr- 1 liuy develop 2000 Nov 4 06:10 testfile这意味着用户liuy可以读、修改、重命名目录testdir和文件testfile,组staff中的其他成员可以访问testdir目录。虽然文件testfile的组权限为只读,但由于staff同组用户可以读、写、执行目录testdir,故他们也可以修改、删除或重命名文件testfile。注意:由上例可以看出如果某用户对一目录有写的权力,那么该目录中文件的访问权限就将失效。UNIX系统中文件和目录的每一类访问权限都以一个八进制的数(取值07)来表示,八进制数在UNIX中用三位表示,下面是这三位的含义:l 第一位(r)值0或1(定义读权限,为1时表示可读)l 第二位(w)值0或1(定义写权限,为1时表示可写)l 第三位(x)值0或1(定义执行权限,为1时表示可执行)其中第一、二、三位的权分别为4、2、1。例如101的值为5(二进制101的值为4101115)。下面介绍怎样用八进制数定义访问权限,例如当前目录中testfile文件的访问权限定义为:l 属主可读、可写、可执行l 同组用户可读、可执行l 其他用户不可访问用权限位可表示为:属主(1117) 同组用户(1015) 其他用户(0000)。因此可定义testfile文件的访问权限为750。一般文件目录设备文件r可读取或拷贝文件内容可显示目录内容可从该设备读取数据w可修改或删除文件可在该目录下建立文件或子目录可将数据输出到设备x该文件可以执行可进入该目录无意义下面是在给文件和目录定义访问权限时的一些常用规范:l 对于私人信息,访问权限为 700,即只有属主才可以读、写、执行该文件。l 如果想让信息与他人共享,而又不许他人对信息改动,访问权限可以设为755,这样别人没有写的权限,也无法对文件或目录的内容进行修改。l 如果不想让除了自己或本组成员外的其他用户访问该文件,可将其他用户的访问权限设为0,即750或770。有关文件和目录权限的命令l umask命令当用户登录进UNIX后,系统将提供一个默认权限,该用户所创建的所有文件和目录都使用该默认权限。用户使用umask命令可以查看和修改默认权限,umask命令的命令格式如下:umask xxx当不使用任何参数时,命令将显示当前用户的默认权限的屏蔽码,即使用777减取输出值就是当前用户的默认权限。用户还可以修改默认权限,此时将使用xxx参数,命令执行完毕后,使用777减取xxx的值就是当前用户的默认权限。例如用户想定义默认权限为:属主可读、可写、可执行(7),组成员可读、可执行(5),其他用户可执行(1),那么xxx的值需定义为777751026,因此可执行命令:umask 026。l chmod命令chmod命令使用户可以根据需要修改已存在的文件或目录的访问权限,它的命令格式如下:chmod -R mode file或chmod -R whooperatorpermission file在第一种格式下,用户可以直接给出文件或目录权限位的绝对值,从而实现对文件或目录的访问权限的修改,此时的mode为一个八进制的数,是由下列的mode值或这些值的“逻辑或”操作构成:400允许文件属主可读200允许文件属主可写100允许文件属主可执行040允许同组用户可读020允许同组用户可写010允许同组用户可执行004允许其他用户可读002允许其他用户可写001允许其他用户可执行。在第二种格式下,用户通过使用符号方式给出文件或目录的访问权限来实现对文件或目录的访问权限的修改,此时的who用以指定修改哪一类访问权限,为以下的零个或多个字符:u文件属主的权限g组权限o其他用户的权限a所有用户的权限当who被省略时,其默认值为a。operator为以下三种运算符之一,用于指明文件或目录的访问权限改变的方式:+在原有访问权限的基础上加入某些权限-在原有访问权限的基础上去掉某些权限=绝对地赋予某种访问权限,此时将清楚原有的访问权限permission指明修改的权限内容,是由下列字母任意组合而成:r读权限w写权限x执行权限命令中所使用的任选项-R的含义为,当命令的参数file为一个目录时,将修改该目录下的所有文件的访问权限。注意:普通用户只能修改自己的文件(即用户为文件的属主)的访问权限,超级用户可以修改系统中所有文件的访问权限。l chown和chgrp命令文件属主和超级用户可以通过chown命令来改变文件的属主,chown命令的命令格式如下:chown -R -h owner file命令将把文件file的属主改为owner,命令所使用的任选项及其含义如下:-R:递归。当file为一个目录时,命令将把目录及其下的所有文件的属主均改为owner。-h:如果文件为一个符号链接,则改变符号链接的属主。当不使用此任选项时,命令将改变符号链接所链接的文件的属主。文件属主和超级用户还可以使用chgrp命令来修改文件的用户组,chgrp命令的命令格式如下:chgrp -R -h group file命令将把文件file的用户组改为group,group可以是一个用户组的组名(该组名在/etc/group文件中有定义)或者是一个十进制的数表示组ID。命令所使用的任选项及其含义如下:-R:递归。当file为一个目录时,命令将把目录及其下的所有文件的用户组均改为group。-h:如果文件为一个符号链接,则改变符号链接的用户组。当不使用此任选项时,命令将改变符号链接所链接的文件的用户组。第四章 进程系统UNIX系统中所有操作都是通过进程来实现的,因此对进程的管理是UNIX系统管理中一个十分重要的部分。进程状态转换进程状态及状态转换进程的状态是指进程从被创建到它终止这一段时间内所处的位置,通常进程的状态有以下几种:1. 进程在用户态下执行;2. 进程在核心态下执行;3. 进程没有被执行,但是处于就绪状态,且在内存,即位于进程调度队列中,只要核心调度到它,就可以被执行;4. 进程正在睡眠,且驻留在内存中;5. 进程处于就绪状态,且被对换进程换出内存而驻留在辅存中;6. 进程正在睡眠,且被对换进程换出内存而驻留在辅存中;7. 进程刚被创建;8. 进程在从核心态返回用户态时被内核抢先以调度另一个进程;9. 进程执行了exit系统调用而处于僵死状态,这也是进程终止前的最后一个状态,此时进程不再存在,但是它留下一些记录供其父进程收集使用。通过下图可以看出上述的几种状态以及它们之间是如何转换的。下面我们就结合图来介绍一个典型进程的状态转换过程。首先,进程的父进程执行fork系统调用创建进程,这样进程进入“创建”状态;在一定时期后进程将转入“内存中就绪”状态;当内核的进程调度程序选取这个进程去执行时,它便进入“核心态运行”状态,此时进程将完成fork系统调用;当系统调用完成后,进程可能进入“用户态运行”状态;一段时间后,可能会发生中断,这时进程又将进入“核心态运行”状态;在中断处理结束后,进程可能再次进入“用户态运行”状态,也有可能转入“被抢先”状态,因为进程调度程序决定调度另一个进程去执行。当进程在“用户态运行”状态下执行某个系统调用时,它将转入“核心态运行”状态,若系统调用是进行I/O处理,则进程可能必须等待I/O处理的完成,于是它将进入“内存中睡眠”状态;当I/O处理结束,将发出中断唤醒进程,使之进入“内存中就绪”状态。当进程处于“内存中睡眠”或“内存中就绪”状态时,系统可能为了执行另一个进程而需要内存,此时进程就可能被对换进程换出内存,而转入“睡眠且换出”或“就绪且换出”状态,等待对换进程将它换入内存,以进入“内存中就绪”状态。当进程执行结束后,它将发出exit系统调用,从而转入“核心态运行”状态,并由此进入“僵死”状态。 UNIX进程状态转换图用户态运行1返回到用户态系统调用中断中断中断返回返回核心态运行72被抢先退出抢先9重新调度进程睡眠僵死在内存中就绪34在内存中睡眠唤醒内存足够创建换入 换出换出fork8内存不足(仅在对换系统中)5唤醒6睡眠且换出就绪换出进程管理一个进程启动另一个进程后,被启动进程是子进程,原进程是启动进程的父进程。一个父进程可以有多个子进程,而一个子进程只有一个父进程。父进程消亡时子进程一般也消亡,用户可以使子进程继续存在,该子进程的父进程就变成了原父进程的父进程。每一个进程都有父进程。进程号是1 的为最原始进程。 用户可以通过命令ps(process status,进程状态)检查机器中当前存活的进程。不加参数时,显示发出该命令用户的登录对话期内所有正在运行的进程。 参数: -f显示进程的全部信息; -a显示全部用户当前活动的进程; -e显示当前系统正在运行的全部进程; -t 终端名显示对应终端的进程; -u 用户名显示某用户的进程; 通常 -ef 、-af和 -t 使用较多。 一般显示如下信息: l UID 用户名l PID 进程号l PPID 父进程号l C 进程最近所耗的CPU 资源l STIME 进程开始时间 l TTY 启动进程的终端设备l TIME 进程总共占用CPU 的时间l COMMAND 进程名命令kill 终止自己所拥有进程的执行,如:$ kill 435向进程号是435的进程发送信号15 ,使其终止,有可能不启作用; $ kill -9 362强制终止362号进程; 第五章 信号机制信号是UNIX进程间最基本的通讯手段,主要作用是实现进程间异步事件的通讯。信号是传送到进程的软中断,它通知进程在它们的环境中出现了非正常事件。程之间可以互相通过系统调用kill发送软中断信号。核心也可以因为内部事件而给进程发送信号,通知进程发生了某个事件。注意,信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。UNIX信号的种类很多,下面介绍一些最常用的信号:SIGHUP 挂断。这是当控制终端被挂起时送到进程的信号。SIGCLD子进程退出。SIGQUIT 退出。由键盘产生的中断。SIGKILL 终止。这个信号不能被捕获、阻塞或忽略。SIGALRM 定时信号。SIGTERM 软件终止信号。SIGUSR1 用户定义的信号1。SIGUSR2 用户定义的信号2。这些信号值的声明在/usr/include/sys/signal.h文件中。进程接收到信号后要进行处理,处理方式为以下三种之一:(1) 缺省方式(SIG_DFL):这是进程对信号的一般处理方式,在无特殊情况下,进程在接收到信号后将终止执行。有一些信号,在终止进程运行前需将终止进程的正文段、数据段、user结构和栈段内容写到当前目录的core文件中,以备调试工具分析与使用。(2) 忽略方式(SIG_IGN):进程接收到一个已指明忽略的信号,则将该信号清除后,立即返回,不在任何工作。(3) 捕获方式(设置信号处理函数):这是用户设置的信号处理方式,当进程接收到这种信号时,执行用户设置的信号处理函数,执行完后,恢复现场,然后继续往下执行。注意: 信号SIGKILL和SIGSTOP既不能被捕捉,也不能被忽略。进程通过系统调用signal来指定进程对某个信号的处理行为。在进程表的表项中有一个软中断信号域,该域中每一位对应一个信号,当有信号发送给进程时,对应位置位。由此可以看出,进程对不同的信号可以同时保留,但对于同一个信号,进程并不知道在处理之前来过多少个。核心处理一个进程收到的信号的时机是在一个进程从核心态返回用户态时。所以,当一个进程在核心态下运行时,软中断信号并不立即起作用,要等到将返回用户态时才处理。进程只有处理完信号才会返回用户态,进程在用户态下不会有未处理完的信号。核心处理一个进程收到的软中断信号是在该进程的上下文中,因此,进程必须处于运行状态。前面介绍概念的时候讲过,处理信号有三种类型:进程接收到信号后退出;进程忽略该信号;进程收到信号后执行用户设定用系统调用signal的函数。当进程接收到一个它忽略的信号时,进程丢弃该信号,就象没有收到该信号似的继续运行。如果进程收到一个要捕捉的信号,那么进程从核心态返回用户态时执行用户定义的函数。而且执行用户定义的函数的方法很巧妙,核心是在用户栈上创建一个新的

温馨提示

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

评论

0/150

提交评论