第一章 Unix系统基础知识课件

上传人:我*** 文档编号:138893848 上传时间:2020-07-18 格式:PPT 页数:42 大小:1.04MB
返回 下载 相关 举报
第一章 Unix系统基础知识课件_第1页
第1页 / 共42页
第一章 Unix系统基础知识课件_第2页
第2页 / 共42页
第一章 Unix系统基础知识课件_第3页
第3页 / 共42页
第一章 Unix系统基础知识课件_第4页
第4页 / 共42页
第一章 Unix系统基础知识课件_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《第一章 Unix系统基础知识课件》由会员分享,可在线阅读,更多相关《第一章 Unix系统基础知识课件(42页珍藏版)》请在金锄头文库上搜索。

1、基于操作系统编程技术,王 勇 电子科技大学 计算机科学与工程学院,第一章 UNIX系统基础知识,2020/7/18,Cla.R,3,提 纲,课程介绍 UNIX体系结构 UNIX下的若干重要常识 UNIX下的常用命令 UNIX标准化及实现 程序实例分析 问题讨论,2020/7/18,Cla.R,4,课程介绍,课程名称:基于操作系统编程技术 上课地点:清水河校区 A310 上课时间:第117周,周一第7,8节,共48学时 课程目标: 掌握UNIX系统编程基础知识 掌握WINDOWS系统程序设计基础知识 掌握UNIX系统环境下编程技术 通过实际程序设计,掌握开发程序的基本过程,2020/7/18,C

2、la.R,5,课程介绍,课程教材及参考资料 Unix/Linux编程实践教程 (美)Bruce Molay 著,杨宗源等译 UNIX环境高级编程(第2版) (美)W.Richard Stevens,Stephen A.Rago著,尤晋元等译 Windows核心编程(第5版) (美)Jeffrey, J.,(法)Christophe, N.著,葛子昂等译 课程需要的前序知识 C+语言程序设计基础,操作系统基础,计算机组成原理和体系结构,数据结构等,2020/7/18,Cla.R,6,课程介绍,考核方式: 笔试(60%)+ 平时作业(10%) 期中考试(10%) + 课外实验(20),2020/7

3、/18,Cla.R,7,UNIX历史,迄今为止最有生命力的OS! 1969年起源于一个失败的项目Multics 由麻省理工学院,AT&T贝尔实验室和通用电气合作进行的操作系统项目,被设计运行在GE-645大型主机上 肯汤普逊和丹尼斯里奇在此基础上开发了一个新的多任务操作系统,包括命令解释器和一些实用程序,戏称为UnICS,后演变为UNIX,2020/7/18,Cla.R,8,UNIX历史,1971年,肯汤普逊和丹尼斯里奇发明了C语言,并重写UNIX系统 1982 年,AT&T基于版本7开发了第一个商业版UNIX System ,随后发布了UNIX System V Release 1,成为一个

4、重要参考版本 1991年,System V Release 4(SVR4) 发布,结束了UNIX版本混乱的局面 1993年以后,大多数商业UNIX发行商都基于SVR4开发自己的UNIX变体。,2020/7/18,Cla.R,9,UNIX家族图谱,2020/7/18,Cla.R,10,UNIX的文化,UNIX is not just an operating system, but a way of life 简洁至上,提供机制而非策略,2020/7/18,Cla.R,11,UNIX体系结构,严格意义上,可以将OS定义为一种特殊的软件,它控制计算机硬件资源,提供程序运行环境,称为内核(Kerne

5、l)。 内核的接口被称作系统调用(System call),公用函数库构建在系统调用接口上,应用软件即可使用公用函数库,也可使用系统调用 Shell是一种特殊的应用程序,为运行其它应用程序提供了一个接口 广义上讲,OS包括kernel和一些其它软件,例如:系统实用程序(System utilities),应用软件,shell以及公用函数库等。,2020/7/18,Cla.R,12,UNIX下若干重要常识,登 录 用户键入登录名和口令后,UNIX系统在其口令文件(通常是/etc/passwd)中查找登录名。 口令文件中的登录项由7个字段组成,以“:”分开,分别是:登录名,加密口令,数值用户ID,

6、数值组ID,注释字段,起始目录,以及shell程序,2020/7/18,Cla.R,13,UNIX下若干重要常识,Shell Shell是一个命令行解释器,它读取用户输入,然后执行命令,用户可以通过终端(交互式shell)或者通过文件(shell脚本,shell script)向shell进行输入 UNIX系统常见的shell,2020/7/18,Cla.R,14,UNIX下若干重要常识,文件和目录 UNIX文件系统是目录和文件组成的一种层次结构,目录的起点称为根(root,/),目录是一个包含许多目录项的文件 在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含该文件的属性信息,文件属性

7、包括:文件的类型(目录/文件?),文件大小、所有者、权限、被修改时间,使用stat和fstat函数可以获取文件属性的一个信息结构,2020/7/18,Cla.R,15,UNIX下若干重要常识,输入和输出 文件描述符(file descriptor) 是一个小的非负整数,Kernel用它标识一个特定进程正在访问的文件 标准输入、标准输出、标准出错 每当运行新程序,shell都会为其打开三个文件描述符:标准输入(standard input)、标准输出(standard output)、标准出错(standard error) 通常,这三个描述符都链向终端,2020/7/18,Cla.R,16,U

8、NIX下若干重要常识,程序和进程 程序(program)是存放在磁盘上,处于某个目录的一个可执行文件。可以使用6个exec函数中的一个由内核将程序读入存储器(RAM) 进程(process)是程序的执行实例。UNIX系统确保每一个进程都有一个唯一的数字标识符进程ID,进程ID是一个非负整数。 使用fork,exec和waitpid三个主要函数实现对进程的控制,2020/7/18,Cla.R,17,UNIX下若干重要常识,出错处理 UNIX函数出错时,常返回一个负值,而且整型变量errno常被设置为含有附加信息的一个值 文件中定义了符号errno以及可以附给它的各种常量,这些常量都以字符E开头

9、使用strerror和perror两个函数可以通过errno的值获取并打印出错信息,2020/7/18,Cla.R,18,UNIX下若干重要常识,用户标识 用户ID 用户ID是一个数值,他向系统标识各个不同的用户。用户不能更改其用户ID,通常每个用户有一个唯一的用户ID 用户ID为0的用户为根用户(root)或者超级用户(superuser) 组ID 组ID是一个数值,由系统管理员在指定用户登录名时分配 组被用于将若干用户分到不同的项目组或部门去,进而允许同组的各个成员之间共享资源 组文件(/etc/group)将组名映射为数字组ID 使用getuid()和getgid()函数获取user I

10、D和group ID。,2020/7/18,Cla.R,19,UNIX下若干重要常识,信 号 信号(Signal)是通知进程已发生某种情况的一种技术 例如:除0操作,进程将收到SIGFPE(浮点异常)的信号 进程有三种处理信号的方式 忽略该信号 按系统默认方式处理 捕捉该信号,提供一个函数,信号发生时调用该函数 产生信号的方法 中断键(Del,Ctrl+C),退出键(Ctrl+),调用kill函数等,2020/7/18,Cla.R,20,UNIX下若干重要常识,时间值 UNIX下两种不同的时间值 日历时间。从1970年1月1日00:00:00以来国际标准时间(UTC)所经过的秒数累积值。使用t

11、ime_t类型保存 进程时间(CPU时间)。用以度量进程使用的CPU资源,以CPU时钟的滴答(click)计算。使用clock_t类型保存。 度量一个进程的执行时间,UNIX系统使用三个进程时间值 时钟时间进程运行的时间总量 用户CPU时间执行用户指令所用的时间 系统CPU时间为该进程执行内核程序所经历的时间,2020/7/18,Cla.R,21,UNIX下若干重要常识,系统调用和库函数 UNIX版本的实现都提供定义明确、数量有限、可直接进入内核的入口点,被称作系统调用(system call) UNIX还为用户提供了通用函数,这些库函数可能会使用一个或多个系统调用。 从实现者的角度观察,系统

12、调用和库函数有质的不同,但是从使用者的角度来看,二者都是以C函数的形式出现。必要的时候,库函数可以被替换,但是系统调用,却不行。 系统调用通常提供一个最小接口,库函数通常提供比较复杂的功能,2020/7/18,Cla.R,22,UNIX常用命令,Cut,paste,tr,grep,sort,Uniq Ls,man,who,ps,vi,vim More,cp,rm,make,netstat,date 作为课后作业,请回去后查找并说明各命令的功能(任选6个,不限于此)!,2020/7/18,Cla.R,23,示例(1),列出一个目录中的所有文件,类ls命令,2020/7/18,Cla.R,24,示

13、例(2),将标准输入复制到标准输出,2020/7/18,Cla.R,25,示例(3),用标准I/O将标准输入复制到标准输出,2020/7/18,Cla.R,26,标准I/O,标准I/O提供了一种对不用缓冲I/O函数的带缓冲的接口,使用标准IO函数可以无需担心如何选取最佳的缓冲区大小,例如示例2中的BUFFSIZE常量 标准IO函数的另一个优点是简化了对输入行的处理,例如fgets函数读完整的行,而read函数读指定字节数,不知道何时是行结束。 标准I/O函数库提供了能够控制该库所使用的缓冲风格的函数。,2020/7/18,Cla.R,27,示例(4),从标准输入读命令并执行,类shell功能,

14、2020/7/18,Cla.R,28,示例(5),从标准输入读命令并执行,2020/7/18,Cla.R,29,UNIX标准化及实现,1989年,C语言的ANSI标准X3.159-1989获得批准,后被采纳为ISO/IEC9899:1990国际标准 ANSI: American National Standards Institute ISO: International Organization for Standardization IEC: International Electronical Commission IEEE POSIX指的是可移植的操作系统接口 IEEE: Instit

15、ute of Electrical and Electronics Engineers POSIX: Portable Operating System Interface of UNIX 原来是IEEE标准1003.11988(操作系统接口),后来扩展为包括很多标记为1003的标准和草案,也包括shell和实用程序(1003.2)标准,2020/7/18,Cla.R,30,UNIX标准化及实现,Single UNIX Specification(单一UNIX规范)是POSIX.1标准的一个超集,相应的系统接口全集被称为X/Open系统接口(XSI, X/Open System Interfa

16、ce),只有遵循XSI的实现才能称为UNIX系统 Single UNIX Specification(SUS)由Open Group发布,2001年出版了第三版,与IEEE1003.12001规范相同,分成4部分 基本定义,系统接口,Shell和实用程序,基本理论 2002年,ISO采纳为ISO/IEC 9945:2002成为国际标准,2020/7/18,Cla.R,31,UNIX标准化及实现,UNIX实现有三个重要的分支 AT&T System III和System V,用于商业版 加州大学伯克利分校 4.x BSD实现 AT&T贝尔实验室的计算科学研究中心 UNIX研究版本 UNIX分时系统V8,V9,V10,2020/7/18,Cla.R,32,UNIX标准化及实现,SVR4 UNIX system V release 4 前身是AT&T的UNIX Software Operation 集成了多个系统的功能和特色 SVR3.2, SUNOS,4.3BSD,MS的Xenix 4.4BSD Berkeley Software Distribution由加州大学伯

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号