资源预览内容
第1页 / 共94页
第2页 / 共94页
第3页 / 共94页
第4页 / 共94页
第5页 / 共94页
第6页 / 共94页
第7页 / 共94页
第8页 / 共94页
第9页 / 共94页
第10页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC操作系统结构及应用编程操作系统结构及应用编程自动化工程学院自动化工程学院刘珊刘珊7/24/2024SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC主要内容主要内容n1、概述、概述n2、内存寻址、内存寻址n3、进程、进程n4、内存管理、内存管理n5、中断和异常、中断和异常n6、系统调用、系统调用n7、内核中的同步、内核中的同步n8、文件系统、文件系统n9、设备驱动、设备驱动7/24/20242SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC第一章第一章操作系统概述操作系统概述n1.1什么是操作系统?什么是操作系统?定义、功能、特征定义、功能、特征发展历程发展历程结构结构n1.2什么是什么是Linux操作系统?操作系统?n1.3Linux内核内核7/24/20243SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?认识角度认识角度操作系统操作系统操作系统操作系统整体看整体看整体看整体看操作系统设计者操作系统设计者操作系统设计者操作系统设计者使用者使用者使用者使用者普通开发者普通开发者普通开发者普通开发者7/24/20244SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?从使用者的角度从使用者的角度n打开计算机,首先跳入眼帘的是什么?打开计算机,首先跳入眼帘的是什么?n要拷贝一个文件,具体的拷贝操作是谁完成要拷贝一个文件,具体的拷贝操作是谁完成的?的?你需要知道文件存放在何处吗?你需要知道文件存放在何处吗?柱面、磁道、扇区描述什么?柱面、磁道、扇区描述什么?数据的搬动过程怎样进行数据的搬动过程怎样进行n繁琐留给自己,简单留给用户繁琐留给自己,简单留给用户操作系统穿上华丽的外衣图形界面操作系统穿上华丽的外衣图形界面操作系统穿上朴素的外衣字符界面操作系统穿上朴素的外衣字符界面7/24/20245SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?从程序开发者的角度从程序开发者的角度n拷贝命令的拷贝命令的C语言实现片断语言实现片断inf=open(“/floppy/TEST”,O_RDONLY,0);outf=open(“/mydir/test”,O_WRONLY,0600);dol=read(inf,buf,4096);write(outf,buf,l);while(l);close(outf);close(inf);7/24/20246SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?从程序执行的角度从程序执行的角度n操作系统是其它所有用户程序运行的基础。操作系统是其它所有用户程序运行的基础。#includemain()printf(“ Hello worldn”)用户告诉操作系统执行用户告诉操作系统执行testtest程序程序 操作系统通过文件名找到该程序操作系统通过文件名找到该程序 检查其类型检查其类型, ,检查程序首部,找出代检查程序首部,找出代码和数据存放的地址码和数据存放的地址文件系统找到第一个磁盘块文件系统找到第一个磁盘块 操作系统建立程序的执行环境操作系统建立程序的执行环境 操作系统把程序从磁盘装入内存,并操作系统把程序从磁盘装入内存,并跳到程序开始处执行跳到程序开始处执行 该该程序的执行过程简述如下程序的执行过程简述如下:操作系统检查字符串的位置是否正确操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备操作系统找到字符串被送往的设备 操作系统将字符串送往输出设备窗口操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后系统确定这是一个合法的操作,然后将字符串转换成像素将字符串转换成像素窗口系统将像素写入存储映像区窗口系统将像素写入存储映像区 视频硬件将像素表示转换成一组模拟视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)信号控制显示器(重画屏幕) 显示器发射电子束。你在屏幕上看到显示器发射电子束。你在屏幕上看到Hello worldHello world。 从中看从中看到什么到什么7/24/20247SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?从设计者的角度从设计者的角度n操作系统的设计目标是什么?操作系统的设计目标是什么?尽可能地方便用户使用计算机尽可能地方便用户使用计算机让各种软件资源和硬件资源高效而协调地运转起来。让各种软件资源和硬件资源高效而协调地运转起来。n计算机的硬件资源和软件资源各指什么?计算机的硬件资源和软件资源各指什么?n假设在一台计算机上有三道程序同时运行,并试图在一假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,必须考虑哪些问题台打印机上输出运算结果,必须考虑哪些问题?n从操作系统设计者的角度考虑,一个操作系统必须包含从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分以下几部分操作系统接口操作系统接口CPU管理管理内存管理内存管理设备管理设备管理文件管理文件管理7/24/20248SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?从所处位置从所处位置7/24/20249SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?定义定义n操作系统是计算机系统中的一个系统软操作系统是计算机系统中的一个系统软件,是一些程序模块的集合件,是一些程序模块的集合它们能它们能以尽量有效、合理的方式组织和管理计以尽量有效、合理的方式组织和管理计算机的算机的软硬件资源软硬件资源,合理的组织计算机,合理的组织计算机的工作流程,控制程序的执行并向用户的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。机系统能高效、顺畅地运行。7/24/202410SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n1提供用户接口提供用户接口为方便用户使用计算机系统,操作系统提供两个级别为方便用户使用计算机系统,操作系统提供两个级别的接口:的接口:(1)作业控制级接口(通常又称为命令接口):提)作业控制级接口(通常又称为命令接口):提供一组命令供用户直接或间接控制自己的作业供一组命令供用户直接或间接控制自己的作业作业:用户上机所作的一系列顺序相关的工作。一道作业:用户上机所作的一系列顺序相关的工作。一道作业由若干顺序相关的作业步构成。例如,我们上机作业由若干顺序相关的作业步构成。例如,我们上机编程要经历如下步骤:编程要经历如下步骤:编编 辑辑编编 译译连连 接接运运 行行源程序源程序目标程序目标程序可执行程序可执行程序7/24/202411SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n(1)作业控制级接口)作业控制级接口以上作业的工作流程要由用户按自己的需求进行控制,以上作业的工作流程要由用户按自己的需求进行控制,因此要提供给用户控制作业工作流程的手段,这是由因此要提供给用户控制作业工作流程的手段,这是由操作系统提供的,称为作业级接口。作业级接口由一操作系统提供的,称为作业级接口。作业级接口由一组用户可直接使用控制作业运行的命令和命令解释器组用户可直接使用控制作业运行的命令和命令解释器构成。该接口又可进一步分为联机用户接口和脱机用构成。该接口又可进一步分为联机用户接口和脱机用户接口。户接口。联机用户接口:由一组键盘字符命令(或鼠标命令)联机用户接口:由一组键盘字符命令(或鼠标命令)和命令解释器组成,使用户可以联机交互方式使用计和命令解释器组成,使用户可以联机交互方式使用计算机。用户每次键入一个合法命令(解释器能执行的算机。用户每次键入一个合法命令(解释器能执行的命令),启动一个作业步;一个作业步运行完毕后,命令),启动一个作业步;一个作业步运行完毕后,再键入下一个命令名,启动下一个作业步。在一个作再键入下一个命令名,启动下一个作业步。在一个作业步结束后,若发现错误,可以由用户修正错误,然业步结束后,若发现错误,可以由用户修正错误,然后重新启动该作业步。用户可根据作业运行情况随时后重新启动该作业步。用户可根据作业运行情况随时进行作业步的调整。进行作业步的调整。7/24/202412SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n(1)作业控制级接口)作业控制级接口脱机用户接口:操作命令的形式为作业控制语言,脱机用户接口:操作命令的形式为作业控制语言,用户以脱机批处理方式使用计算机。用户对作业用户以脱机批处理方式使用计算机。用户对作业流程的控制意图是利用作业控制语言书写成一份流程的控制意图是利用作业控制语言书写成一份作业说明书来表达的。上机时,用户将作业控制作业说明书来表达的。上机时,用户将作业控制说明书交给系统,系统逐条解释执行说明书中的说明书交给系统,系统逐条解释执行说明书中的命令。在这种方式下,用户一旦提交了作业,作命令。在这种方式下,用户一旦提交了作业,作业流程就由操作系统根据作业控制说明书自动控业流程就由操作系统根据作业控制说明书自动控制,用户无法干预该作业的运行。因此,用户必制,用户无法干预该作业的运行。因此,用户必须事先设计好作业流程,还要预测作业运行过程须事先设计好作业流程,还要预测作业运行过程中可能出现的错误,并给出发生错误时的处理方中可能出现的错误,并给出发生错误时的处理方法。法。7/24/202413SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n1提供用户接口提供用户接口(2)程序控制接口)程序控制接口操作系统提供的程序级接口由一组系统功能调用操作系统提供的程序级接口由一组系统功能调用命令以及完成这些命令的程序模块组成。为方便命令以及完成这些命令的程序模块组成。为方便用户编程,提高编程效率,规范编程,操作系统用户编程,提高编程效率,规范编程,操作系统提供了完成某些通用功能的程序提供用户在开发提供了完成某些通用功能的程序提供用户在开发应用程序时调用。不同的操作系统提供了不同的应用程序时调用。不同的操作系统提供了不同的系统功能调用以及调用方式。如系统功能调用以及调用方式。如DOS的系统功能的系统功能调用主要是进行硬件驱动,以软中断调用主要是进行硬件驱动,以软中断INT21H的的方式提供。方式提供。7/24/202414SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n(2)程序控制接口)程序控制接口Windows中的系统功能调用要比中的系统功能调用要比DOS丰富,且层丰富,且层次要高,不只局限于硬件驱动,以用户可在编程语次要高,不只局限于硬件驱动,以用户可在编程语言中使用的应用编程接口函数的方式提供,称为言中使用的应用编程接口函数的方式提供,称为APIApplicationProgrammingInterface。使用使用Windows的的API函数,可以提高编程效率,并函数,可以提高编程效率,并规范规范Windows环境下的编程,如可开发具有统一风环境下的编程,如可开发具有统一风格的应用程序窗口界面,这会使得软件用户能很快格的应用程序窗口界面,这会使得软件用户能很快熟悉该软件的窗口界面而不必重新学习。熟悉该软件的窗口界面而不必重新学习。7/24/202415SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?功能功能n2管理计算机资源管理计算机资源(1)处理机管理)处理机管理处理机调度、进程控制、进程处理机调度、进程控制、进程通信和同步通信和同步(2)存储器管理)存储器管理内存分配、地址转换、内存保内存分配、地址转换、内存保护和扩充护和扩充(3)设备管理)设备管理设备分配、缓冲管理、设备驱动设备分配、缓冲管理、设备驱动(4)文件管理)文件管理目录管理、文件操作和存取权限目录管理、文件操作和存取权限控制控制7/24/202416SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?处理机管理的功能处理机管理的功能n处理机管理的主要任务是对处理机进行分配,并对其运处理机管理的主要任务是对处理机进行分配,并对其运行进行有效的控制和管理。在多道程序环境下,处理机行进行有效的控制和管理。在多道程序环境下,处理机的分配和运行都是以进程为单位的,所以对处理机的管的分配和运行都是以进程为单位的,所以对处理机的管理可理解为对进程的管理理可理解为对进程的管理。n进程控制包括进程的创建、进程的撤消、控制进程在不进程控制包括进程的创建、进程的撤消、控制进程在不同的状态间转换。进程控制的实现是通过若干条操作系同的状态间转换。进程控制的实现是通过若干条操作系统提供的进程控制原语和系统功能调用来实现的统提供的进程控制原语和系统功能调用来实现的。n对各个进程的运行进行协调有两种方式对各个进程的运行进行协调有两种方式。(1)进程互斥方式。)进程互斥方式。(2)进程同步方式。)进程同步方式。7/24/202417SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?存储机管理的功能存储机管理的功能n内存分配内存分配主要任务是为每道程序分配内存空间,但要以存储器利用率最高、主要任务是为每道程序分配内存空间,但要以存储器利用率最高、减少不可用的内存空间为准则,同时允许正在运行的程序申请附减少不可用的内存空间为准则,同时允许正在运行的程序申请附加的内存空间,以适应程序和数据动态增长的需要。加的内存空间,以适应程序和数据动态增长的需要。操作系统在实施内存分配时可以采用静态分配方式和动态分配方操作系统在实施内存分配时可以采用静态分配方式和动态分配方式。式。n内存保护内存保护主要任务是确保每道用户程序在自己的内存空间中运行,互不干主要任务是确保每道用户程序在自己的内存空间中运行,互不干扰,也就是说绝不允许用户程序访问操作系统以及其他用户中的扰,也就是说绝不允许用户程序访问操作系统以及其他用户中的程序和数据。程序和数据。n地址映射地址映射在多道程序设计环境下,地址空间中的逻辑地址和内存空间中的在多道程序设计环境下,地址空间中的逻辑地址和内存空间中的物理地址是不可能一致的,因此,存储器管理必须提供正确的地物理地址是不可能一致的,因此,存储器管理必须提供正确的地址映射功能。址映射功能。n内存扩充内存扩充由于物理内存的容量有限,有时难以满足用户的需要,存储器管由于物理内存的容量有限,有时难以满足用户的需要,存储器管理的任务之一就是在不增加物理内存的条件下,借助于虚拟内存理的任务之一就是在不增加物理内存的条件下,借助于虚拟内存技术从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实技术从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。际内存容量大得多。7/24/202418SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?设备管理的功能设备管理的功能n操作系统设备管理的主要任务是完成用户操作系统设备管理的主要任务是完成用户提出的提出的I/O请求,为用户分配请求,为用户分配I/O设备;提设备;提高高CPU和和I/O设备的利用率;方便用户使用设备的利用率;方便用户使用I/O设备。设备管理应具有以下功能。设备。设备管理应具有以下功能。1.缓冲管理缓冲管理2.设备分配设备分配3.设备处理设备处理4.共享设备的分配与虚拟设备的分配。共享设备的分配与虚拟设备的分配。7/24/202419SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?文件管理的功能文件管理的功能n文件管理的主要任务是对用户文件和系统文件进文件管理的主要任务是对用户文件和系统文件进行管理,方便用户使用,并保证文件的安全性。行管理,方便用户使用,并保证文件的安全性。n文件系统应具有对文件存储空间的管理、目录管文件系统应具有对文件存储空间的管理、目录管理、文件的读写管理、文件的共享与保护等功能。理、文件的读写管理、文件的共享与保护等功能。n1.文件存储空间的管理文件存储空间的管理其主要任务是为每个文件分配必要的外存空间,并依其主要任务是为每个文件分配必要的外存空间,并依据一定的格式建立文件各逻辑块与物理块之间的对应据一定的格式建立文件各逻辑块与物理块之间的对应关系,即构建文件的物理结构,为用户顺序或随机存关系,即构建文件的物理结构,为用户顺序或随机存取文件做好准备,从而尽量提高外存的利用率,提高取文件做好准备,从而尽量提高外存的利用率,提高对文件的存取速度。对文件的存取速度。7/24/202420SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?文件管理的功能文件管理的功能n2、目录管理、目录管理目录管理的主要任务是为每个文件建立其目录项,并目录管理的主要任务是为每个文件建立其目录项,并对众多的目录项加以有效的组织,以实现按名存取。对众多的目录项加以有效的组织,以实现按名存取。另外,目录管理还应以链接方式实现文件的共享。另外,目录管理还应以链接方式实现文件的共享。n3.文件的操作文件的操作文件的读写管理、文件的共享与保护等功能。文件的读写管理、文件的共享与保护等功能。n除了上述功能之外,操作系统还要具备中断处理、除了上述功能之外,操作系统还要具备中断处理、错误处理等功能。错误处理等功能。n操作系统的各功能之间并非是完全独立的,它们操作系统的各功能之间并非是完全独立的,它们之间存在着相互依赖的关系。之间存在着相互依赖的关系。7/24/202421SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?特征特征n并发性并发性在多道程序环境下,并发性是指两个或多个事件在同一时在多道程序环境下,并发性是指两个或多个事件在同一时间间隔内发生,即宏观上有多道程序同时执行,而微观上,间间隔内发生,即宏观上有多道程序同时执行,而微观上,在单处理机系统中每一个时刻仅能执行一道程序在单处理机系统中每一个时刻仅能执行一道程序。n共享性共享性共享是指系统中的资源可供多个并发执行的进程使用共享是指系统中的资源可供多个并发执行的进程使用。n虚拟性虚拟性指通过某种技术把一个物理实体变成若干个逻辑上的对应指通过某种技术把一个物理实体变成若干个逻辑上的对应物物。n异步性异步性也称不确定性,是指在多道程序环境下,允许多个进程并也称不确定性,是指在多道程序环境下,允许多个进程并发执行,由于资源的限制,进程的执行不是发执行,由于资源的限制,进程的执行不是“一气呵成一气呵成”的,是的,是“走走停停走走停停”的的。7/24/202422SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n单道批处理系统单道批处理系统n多道批处理系统多道批处理系统n分时系统分时系统n实时系统实时系统n网络操作系统网络操作系统n通用操作系统通用操作系统n分布式操作系统分布式操作系统n嵌入式操作系统嵌入式操作系统7/24/202423SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程单道批处理系统单道批处理系统7/24/202424SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?单道批处理系统单道批处理系统n单道批处理系统的特征单道批处理系统的特征(1)自动性。)自动性。(2)顺序性。)顺序性。(3)单道性。)单道性。(4)存储器保护。)存储器保护。n单道批处理系统的缺点:单道批处理系统的缺点:一次仅能运行一个作业,这对于价格昂贵的计算一次仅能运行一个作业,这对于价格昂贵的计算机系统来说,只有一个部件工作,其余部件均处机系统来说,只有一个部件工作,其余部件均处于闲置状态,资源利用率很低。于闲置状态,资源利用率很低。7/24/202425SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程tk多道批处理系统多道批处理系统7/24/202426SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?多道批处理系统多道批处理系统n在批处理系统中引入多道程序设计后,具有以下特征:在批处理系统中引入多道程序设计后,具有以下特征:(1)多道性。)多道性。(2)并行性。)并行性。(3)串行性。)串行性。(4)无序性。)无序性。(5)调度性。)调度性。(6)系统开销小。)系统开销小。n多道批处理系统的缺点是:用户没有交互能力,用户一多道批处理系统的缺点是:用户没有交互能力,用户一旦把作提交给系统后就失去了对自己作业的控制,系统旦把作提交给系统后就失去了对自己作业的控制,系统将根据作业说明书来控制作业的执行,这对程序的修改将根据作业说明书来控制作业的执行,这对程序的修改和调试是非常不便的。作业的平均周转时间长,由于作和调试是非常不便的。作业的平均周转时间长,由于作业要排队,依次进行处理,因而周转时间较长。特别对业要排队,依次进行处理,因而周转时间较长。特别对于排在队尾作业其运行请求会被长期推迟响应。于排在队尾作业其运行请求会被长期推迟响应。7/24/202427SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n分时系统分时系统分时操作系统是在批处理系统的基础上,采用分时技分时操作系统是在批处理系统的基础上,采用分时技术提出的一种新型的操作系统。术提出的一种新型的操作系统。分时系统把处理机的运行时间分成多个很短的时间片,分时系统把处理机的运行时间分成多个很短的时间片,按照时间片轮流把处理机分配给每一个联机用户。按照时间片轮流把处理机分配给每一个联机用户。配置了分时操作系统的计算机采用主从式多终端的计配置了分时操作系统的计算机采用主从式多终端的计算机体系结构,一台主机连接着多个带有显示器、键算机体系结构,一台主机连接着多个带有显示器、键盘及控制器的本地或远程终端,每个用户可以通过终盘及控制器的本地或远程终端,每个用户可以通过终端以交互方式向系统发出命令,共享系统资源,请求端以交互方式向系统发出命令,共享系统资源,请求完成某项工作,系统则分析从终端设备发来的命令,完成某项工作,系统则分析从终端设备发来的命令,完成用户提出的需求,之后,用户又根据系统提供的完成用户提出的需求,之后,用户又根据系统提供的运行结果,向系统提出下一步请求,就这样重复上述运行结果,向系统提出下一步请求,就这样重复上述交互会话过程,直到用户完成预计的全部工作为止。交互会话过程,直到用户完成预计的全部工作为止。7/24/202428SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n分时系统分时系统其特征为:其特征为:1.交互性交互性2.及时性及时性3.独占性独占性4.同时性(多路性)同时性(多路性)7/24/202429SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n实时系统实时系统对外来信息进行快速处理,在允许的时间范围对外来信息进行快速处理,在允许的时间范围之内做出响应。之内做出响应。实时系统按其使用方式不同可以分为两类:实实时系统按其使用方式不同可以分为两类:实时控制系统和实时信息处理系统。时控制系统和实时信息处理系统。实时控制系统指微型计算机在实时过程控制和实时控制系统指微型计算机在实时过程控制和提供环境监督中的应用。过程控制系统是从传提供环境监督中的应用。过程控制系统是从传感器获得输入的数字或模拟信息进行分析处理感器获得输入的数字或模拟信息进行分析处理后,激发一个活动信号,从而改变可控过程,后,激发一个活动信号,从而改变可控过程,以达到控制的目的。以达到控制的目的。7/24/202430SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n实时系统实时系统实时信息处理系统的主要特点实时信息处理系统的主要特点是:是:n1.实时响应实时响应n2.整体性整体性n3.高可靠性和安全性高可靠性和安全性7/24/202431SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n网络操作系统网络操作系统可以看作是在网络环境下工作的操作系统软件,可以看作是在网络环境下工作的操作系统软件,可简单地定义为管理整个网络资源和方便网络可简单地定义为管理整个网络资源和方便网络用户的软件集合。网络操作系统是计算机网络用户的软件集合。网络操作系统是计算机网络的心脏和灵魂,是向网络计算机提供服务的特的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。它在计算机操作系统下工作,殊的操作系统。它在计算机操作系统下工作,使计算机操作系统增加了网络操作所需要的能使计算机操作系统增加了网络操作所需要的能力。力。建立在服务器主机操作系统基础上,管理网络建立在服务器主机操作系统基础上,管理网络通信和资源共享,协调各主机上的任务运行,通信和资源共享,协调各主机上的任务运行,并向用户提供统一、有效的网络接口。并向用户提供统一、有效的网络接口。7/24/202432SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n网络操作系统网络操作系统网络操作系统具有网络通信、资源管理、网络服务、网络操作系统具有网络通信、资源管理、网络服务、网络管理和相互操作能力等功能。网络管理和相互操作能力等功能。网络操作系统运行在称为服务器的计算机上,并由联网络操作系统运行在称为服务器的计算机上,并由联网的计算机用户(这类用户称为客户)共享,这就是网的计算机用户(这类用户称为客户)共享,这就是网络操作系统的客户机网络操作系统的客户机/服务器(服务器(C/S)模式,该模式)模式,该模式具有分布处理和集中控制的特征。具有分布处理和集中控制的特征。网络操作系统的另一种工作模式是具有分布处理特征网络操作系统的另一种工作模式是具有分布处理特征的对等模式,其中各个客户机可以看作是访问其他站的对等模式,其中各个客户机可以看作是访问其他站点(服务器)的客户,也可看作是向其他站点(客户)点(服务器)的客户,也可看作是向其他站点(客户)提供服务的服务器。即网络服务和控制功能分布于各提供服务的服务器。即网络服务和控制功能分布于各个站点上,各个站点(客户)是对等关系。个站点上,各个站点(客户)是对等关系。7/24/202433SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?发展历程发展历程n通用操作系统(通用操作系统(Linux,WindowsXP)同时具有多道批处理、分时或实时处理功同时具有多道批处理、分时或实时处理功能,或者其中两种以上功能的系统能,或者其中两种以上功能的系统n分布式操作系统分布式操作系统一方面强调分布式计算和处理,另一方面一方面强调分布式计算和处理,另一方面强调在物理上跨越不同计算机,逻辑上紧强调在物理上跨越不同计算机,逻辑上紧密耦合,构成统一完整的系统平台密耦合,构成统一完整的系统平台n嵌入式操作系统(智能家电)嵌入式操作系统(智能家电)随着计算机向微型化和专业化方向发展而随着计算机向微型化和专业化方向发展而出现出现7/24/202434SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?硬件角度下的操作系统发展轨迹硬件角度下的操作系统发展轨迹年 代 硬 件 特点 操作系统特点 背 景 机械计算机时代17世纪20世纪初 1)纯机械结构,低速2)只能进行简单的数学运算 纯手工操作 从计算尺至差分机到分析机发展了数百年第一代计算机1946年50年代末电子管计算机 1)体积大、能耗高、故障多、价格贵2)难以普及应用 无操作系统(程序按机器码编写,载体从插件板到卡片与纸带) 1906年发明电子管1946 ENIAC研制成功(第一台电子管计算机) 年 代 硬 件 特点 操作系统特点 背 景 第二代计算机50年代末60年代中期晶体管计算机 1)采用印刷电路2)稳定性与可靠性 大 大 提 高3)批量生产成为可能4)进入实际应用领域但数量有限1)单道批处理系统2)操作系统以监督软件形式出现3)任务按顺序方式处理 1947年发明晶体管 第三代计算机60年代中期70年代初集成电路计算机 1)体积减小,性价 比 迅 速 提 高2)小型计算机发展迅速3)进入商业应用4)尚不适合家庭应用的需求1)涌现大批操作系统多道批处理系统、分时系统和实时系统2)奠定了现代操作系统的基本框架 1958年发明集成电路1971年INTEL发明微处理器 7/24/202435SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?硬件角度下的操作系统发展分析硬件角度下的操作系统发展分析n在硬件的性价比较低的时候,操作系统设计追求什么在硬件的性价比较低的时候,操作系统设计追求什么?n在硬件性价比越来越高后,操作系统的设计开始追求在硬件性价比越来越高后,操作系统的设计开始追求的目标是什么?的目标是什么?n计算机开始普及后,操作系统的设计开始追求?计算机开始普及后,操作系统的设计开始追求?n从第三代到第四代计算机,操作系统的发展逐渐摆脱从第三代到第四代计算机,操作系统的发展逐渐摆脱追随硬件发展的状况追随硬件发展的状况,形成自己的理论体系,形成自己的理论体系n进入第四代系统后,分布式系统和多处理器系统虽然进入第四代系统后,分布式系统和多处理器系统虽然极大的扩充了操作系统理论,但系统结构并没有变化,极大的扩充了操作系统理论,但系统结构并没有变化,只是各功能模块得以进一步完善。只是各功能模块得以进一步完善。7/24/202436SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?软件角度下的操作系统发展轨迹软件角度下的操作系统发展轨迹主流操作系统主流操作系统 系统特点系统特点 计计 算算 机机 语语 言言 背背 景景 无无 手工操作手工操作 无编程语言直接无编程语言直接使用机器代码使用机器代码 19361936年图灵提年图灵提出图灵机出图灵机 单道批处理系单道批处理系统统 作业运行的监作业运行的监督程序督程序 编程语言雏形期编程语言雏形期 19571957年年 FORTRANFORTRAN语语言言开开发成功发成功多道批处理多道批处理分时系统分时系统实时系统实时系统多处理系统多处理系统 操作系统结构操作系统结构确立,分为处确立,分为处理机管理、内理机管理、内存管理、设备存管理、设备管理、文件管管理、文件管理等模块理等模块 1 1)编程语言大量)编程语言大量涌现涌现2 2)结构化程序设)结构化程序设计计3 3)C C语言逐渐语言逐渐 6060年代的软件年代的软件危机导致软件危机导致软件工程的发展工程的发展19691969年年 UnixUnix诞诞生生19721972年年 C C语言语言推出推出 主流操作系统主流操作系统 系统特点系统特点 计计 算算 机机 语语 言言 背背 景景 类类UnixUnix系列系列WINDOWSWINDOWS系列系列 人机交互成人机交互成为主题为主题1 1)可视化界)可视化界面面2 2)多媒体技)多媒体技 面向对象语言成面向对象语言成为主流为主流 8080年年代代中中期期开开始始面面向向对对象象技技术逐步发展术逐步发展网络操作系统网络操作系统分布式操作系统分布式操作系统 微内核技术微内核技术兴起兴起 1 1)JAVAJAVA语言语言2 2)脚本语言兴)脚本语言兴起起 19951995年年JAVAJAVA推推出出 嵌入式系统嵌入式系统 单内核与微单内核与微内核竞争激内核竞争激烈烈 编程工具向跨平编程工具向跨平台方向发台方向发 19911991年免费的年免费的操作系统操作系统LinuxLinux发布发布 7/24/202437SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?软件角度下的操作系统发展分析软件角度下的操作系统发展分析n程序设计理论约束着操作系统设计。操作系程序设计理论约束着操作系统设计。操作系统的发展滞后于计算机语言的发展,从结构统的发展滞后于计算机语言的发展,从结构化设计到对象化设计,操作系统总是最后应化设计到对象化设计,操作系统总是最后应用新编程理论的软件之一。用新编程理论的软件之一。n至今操作系统对于是否需要彻底对象化(即至今操作系统对于是否需要彻底对象化(即微内核化),还处于徘徊时期,仍在探索单微内核化),还处于徘徊时期,仍在探索单内核与微内核的最佳结合方式。内核与微内核的最佳结合方式。n人机交互技术主要是为用户考虑,这是对操人机交互技术主要是为用户考虑,这是对操作系统设计进行的变革。作系统设计进行的变革。n以以Linux为代表的开源软件的出现,打破了带为代表的开源软件的出现,打破了带有神秘色彩的传统的封闭式开发模式。有神秘色彩的传统的封闭式开发模式。7/24/202438SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?逻辑结构逻辑结构n操作系统的逻辑结构操作系统的逻辑结构7/24/202439SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n操作系统的体系结构操作系统的体系结构简单结构简单结构单体内核结构单体内核结构层次结构层次结构n全序结构全序结构n半序结构半序结构微内核结构微内核结构外核结构外核结构7/24/202440SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n简单结构简单结构7/24/202441SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n简单结构简单结构没有清晰的整体结构,系统各个部件混杂在没有清晰的整体结构,系统各个部件混杂在一起,宏观结构模糊。一起,宏观结构模糊。MS-DOS是一个很好的例子,其设计目标是是一个很好的例子,其设计目标是在比较有限的硬件资源上运行比较有限的应在比较有限的硬件资源上运行比较有限的应用程序,模块之间的相对独立性几乎被忽略。用程序,模块之间的相对独立性几乎被忽略。其他简单结构操作系统:其他简单结构操作系统:PalmOS5以前的以前的PalmOS,很多小型嵌入式操作系统,很多小型嵌入式操作系统7/24/202442SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n单体内核结构单体内核结构API7/24/202443SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n单体内核结构(模块结构)单体内核结构(模块结构)通过一种系统调用的通过一种系统调用的API机制对外层用户程序提供服务。机制对外层用户程序提供服务。模块之间直接调用函数,除了函数调用的开销外,没有模块之间直接调用函数,除了函数调用的开销外,没有额外开销。额外开销。庞大的操作系统有数以千计的函数,复杂的调用关系势庞大的操作系统有数以千计的函数,复杂的调用关系势必导致操作系统维护的困难必导致操作系统维护的困难将整个内核按照功能的不同,结构化为若干模块:文件将整个内核按照功能的不同,结构化为若干模块:文件管理模块、设备驱动模块、内存管理模块、管理模块、设备驱动模块、内存管理模块、CPU调度模调度模块以及网络协议处理等模块。模块之间定义以函数调用块以及网络协议处理等模块。模块之间定义以函数调用形式提供的通信接口。形式提供的通信接口。典型代表:典型代表:Unix、Linux、WindowsNT/XP7/24/202444SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n层次结构层次结构7/24/202445SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n层次结构层次结构层次结构的操作系统中,系统由若干层构成,层次结构的操作系统中,系统由若干层构成,每层构建在其下一层之上。每层构建在其下一层之上。每层的构造采用类似于抽象数据类型的设计每层的构造采用类似于抽象数据类型的设计方法,包含若干数据和操作。所有层内的数方法,包含若干数据和操作。所有层内的数据以及部分层内的操作对其他层不可见。每据以及部分层内的操作对其他层不可见。每层均公布一定的操作接口以供其他层调用,层均公布一定的操作接口以供其他层调用,这些接口是外层访问该层唯一的途径。这些接口是外层访问该层唯一的途径。层与层之间的调用关系严格遵守调用规则,层与层之间的调用关系严格遵守调用规则,每层只能访问其下层所提供的服务。每层只能访问其下层所提供的服务。7/24/202446SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n全序结构全序结构THE7/24/202447SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n半序结构半序结构SUE7/24/202448SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n全序结构全序结构理想的层次结构不仅是单向依赖的,而且每层之间理想的层次结构不仅是单向依赖的,而且每层之间也是相互独立的。这种结构称为全序的,也是相互独立的。这种结构称为全序的,THE系统系统就是一个全序层次结构操作系统。就是一个全序层次结构操作系统。但全序结构在实际实现时,特别是大型操作系统中,但全序结构在实际实现时,特别是大型操作系统中,建立全序结构很困难,无法完全消除循环调用。建立全序结构很困难,无法完全消除循环调用。n半序结构半序结构半序结构在各层之间是单向依赖的,但在某些层内半序结构在各层之间是单向依赖的,但在某些层内允许模块之间有循环关系。如:多伦多大学的允许模块之间有循环关系。如:多伦多大学的SUE系统。系统。7/24/202449SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n微内核结构微内核结构7/24/202450SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n微内核结构微内核结构微内核结构又称为客户机微内核结构又称为客户机/服务器模型。服务器模型。操作系统整个核心负责处理客户机与服务器之间的操作系统整个核心负责处理客户机与服务器之间的通信。操作系统被分为多个部分,每个部分只处理通信。操作系统被分为多个部分,每个部分只处理系统的一个方面的工作,如文件服务、进程服务等,系统的一个方面的工作,如文件服务、进程服务等,每部分都很小,易于管理。每部分都很小,易于管理。每个服务器都以独立的用户态进程方式运行,不直每个服务器都以独立的用户态进程方式运行,不直接访问硬件。所以单个服务器出现故障不会引起其接访问硬件。所以单个服务器出现故障不会引起其他部分崩溃或错误。他部分崩溃或错误。适合于分布式系统。适合于分布式系统。内核与各个服务器之间通过通信机制进行交互,这使得微内核内核与各个服务器之间通过通信机制进行交互,这使得微内核结构的效率大大折扣。结构的效率大大折扣。7/24/202451SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n外核结构外核结构7/24/202452SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n外核结构外核结构外核结构是操作系统为了获得性能和灵活性的一外核结构是操作系统为了获得性能和灵活性的一个极端。个极端。系统的内核只负责简单的申请、释放并复用硬件系统的内核只负责简单的申请、释放并复用硬件资源,将内存映射、资源,将内存映射、I/O和复杂的线程包等在传统和复杂的线程包等在传统操作系统内核中提供的抽象都转移到用户空间运操作系统内核中提供的抽象都转移到用户空间运行。内核负责:跟踪资源的所有权,通过保护所行。内核负责:跟踪资源的所有权,通过保护所有应用或绑定点来实现访问控制从而确保系统安有应用或绑定点来实现访问控制从而确保系统安全性,撤回对资源的访问。全性,撤回对资源的访问。用户程序通过调用库的形式实现对硬件资源的直用户程序通过调用库的形式实现对硬件资源的直接访问。接访问。如如MIT的的Exokernel。7/24/202453SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.1什么是操作系统?什么是操作系统?体系结构体系结构n各体系结构特性比较各体系结构特性比较7/24/202454SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC第一章第一章操作系统概述操作系统概述n1.1什么是操作系统?什么是操作系统?n1.2什么是什么是Linux操作系统?操作系统?定义、基础、现状定义、基础、现状开发模式、特征开发模式、特征系统概貌、框架和组成系统概貌、框架和组成n1.3Linux内核内核7/24/202455SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?定义定义nLinux系统有两种不同的含义。系统有两种不同的含义。n从技术角度,从技术角度,Linux指的是由指的是由LinusTorvalds维护的开维护的开放源代码放源代码UNIX类操作系统的内核。类操作系统的内核。n然而,目前大多数人用它来表示以然而,目前大多数人用它来表示以Linux内核为基础的内核为基础的整个操作系统。从这种意义讲,整个操作系统。从这种意义讲,Linux指的是开放源代指的是开放源代码的,包含内核、系统工具、完整的开发环境和应用的码的,包含内核、系统工具、完整的开发环境和应用的UNIX类操作系统。类操作系统。nLinux现在是个人计算机和工作站上的类现在是个人计算机和工作站上的类UNIX操作系统,操作系统,可以免费使用,遵循可以免费使用,遵循GPL声明,可以自由修改和传播。声明,可以自由修改和传播。Linux包含了人们希望操作系统拥有的所有功能特性,包含了人们希望操作系统拥有的所有功能特性,这些功能包括真正的多任务、虚拟内存、世界上最快的这些功能包括真正的多任务、虚拟内存、世界上最快的TCP/IP驱动程序、共享库和多用户支持。驱动程序、共享库和多用户支持。7/24/202456SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?基础基础nLinux诞生和发展的五大重要支柱:诞生和发展的五大重要支柱:GNU/Linux7/24/202457SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?基础基础nLinux的源头要追溯到最早的的源头要追溯到最早的UNIX,是,是Unix的的一种克隆系统。一种克隆系统。nUnix于于1969年诞生于年诞生于Bell实验室,是现代操作实验室,是现代操作系统的代表。系统的代表。n经过多年发展,经过多年发展,UNIX从实验室走出来并成为了从实验室走出来并成为了操作系统的主流。直到今天,操作系统的主流。直到今天,UNIX系统以其系统以其稳定、高效的性能在服务器高端市场中依然占稳定、高效的性能在服务器高端市场中依然占有绝对优势。有绝对优势。nMinix也是也是Unix的一种克隆系统,由荷兰教授的一种克隆系统,由荷兰教授Andrew开发完成。开发完成。7/24/202458SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC第一版第一版(1971(1971年年) )第三版第三版(1973(1973年年) )第六版第六版(1975(1975年年) )SYSTEM III(1982SYSTEM III(1982年年) )第七版第七版第八版第八版第九版第九版第十版第十版19891989年年SYSTEM V(1983SYSTEM V(1983年年) )SVR2(1984SVR2(1984年年) )SVR3(1987SVR3(1987年年) )SVR4(1989SVR4(1989年年) )SUNSolarisSUNSolarisIBM AIXIBM AIXHP UXHP UX1BSD(19781BSD(1978年年) )2BSD(19782BSD(1978年年) )3BSD(19793BSD(1979年年) )4.0BSD(19804.0BSD(1980年年) )4.4BSD(19934.4BSD(1993年年) )MACH2.5MACH2.5OSF/1(1989OSF/1(1989年年) ) DEC OSF/1DEC OSF/1Digital UNIXDigital UNIXTru64 UNIXTru64 UNIX UNIXUNIX发展简图发展简图 7/24/202459SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?基础基础nLinux是由芬兰赫尔辛基大学计算机系大学生是由芬兰赫尔辛基大学计算机系大学生LinusTorvalds在自己的在自己的PC上,以上,以MINIX为开发平台,为为开发平台,为了自己的操作系统课程学习和后来上网使用而陆续编了自己的操作系统课程学习和后来上网使用而陆续编写的。写的。nLinux诞生于诞生于1991年年10月月5日(第一次对外正式公布日(第一次对外正式公布的时间)。的时间)。n1993年,年,Linus的第一个的第一个“产品产品”版版Linux1.0问世问世的时候,是按完全自由发行版权进行发行的。的时候,是按完全自由发行版权进行发行的。nLinux与与GPL的结合,使许多软件开发人员相信这是的结合,使许多软件开发人员相信这是一个有前途的项目,开始参与内核的开发工作,并将一个有前途的项目,开始参与内核的开发工作,并将GNU项目的项目的C库、库、gcc、Emacs、bash等很快移植等很快移植到到Linux内核上来。内核上来。n在在2001年初年初LinuxWorld大会前夕推出了大会前夕推出了Linux2.4内内核核,现在已推出了,现在已推出了Linux2.6。7/24/202460SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?基础基础nGNU(GnuisNotUnix)是自由软件基金会()是自由软件基金会(FreeSoftwareFoundation,FSF)的一个项目,目的是)的一个项目,目的是开发一个自由的开发一个自由的Unix版本,版本,HURD。nGNU项目产品包括项目产品包括emacs编辑器、著名的编辑器、著名的GNUC和和Gcc编译器等,这些软件叫做编译器等,这些软件叫做GNU软件。软件。nRichardStallman在其他人的协作下创作了通用公在其他人的协作下创作了通用公共许可证(共许可证(GeneralPublicLicense,GPL)。所有)。所有的的GNU软件和派生工作均适用于软件和派生工作均适用于GPL。GPL保证任保证任何人有共享和修改自由软件的自由,任何人有权取得、何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件的源代码,并且规定在不增修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下得到源代码。加附加费用的条件下得到源代码。nLinux只是自由软件家族中的一员,是其中最具影响只是自由软件家族中的一员,是其中最具影响的成员之一。的成员之一。7/24/202461SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?基础基础nPOSIX表示可移植操作系统接口(表示可移植操作系统接口(PortableOperatingSystemInterface)标准由)标准由IEEE制定,由制定,由ISO接受为国际标准。接受为国际标准。nPOSIX是是Unix标准化过程的产物。标准化过程的产物。POSIX1003.1标准定义了一个最小的标准定义了一个最小的Unix操作系统操作系统接口,任何符合这一标准的操作系统都可能接口,任何符合这一标准的操作系统都可能运行运行Unix程序。程序。Linux设计遵循这一标准。设计遵循这一标准。n如果没有如果没有Internet网络,没有全世界无数计算网络,没有全世界无数计算机骇客的贡献,机骇客的贡献,Linux最多只发展到最多只发展到0.13(0.95)版的水平。)版的水平。7/24/202462SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?发展现状发展现状n当当Linux走向成熟时,一些人开始建立软件包来简化新用户走向成熟时,一些人开始建立软件包来简化新用户安装和使用安装和使用Linux的方法。这些软件包称为的方法。这些软件包称为Linux发布或发布或Linux发行版本。发行版本。n在早期众多的在早期众多的Linux发行版本中,最有影响的要数发行版本中,最有影响的要数Slackware发布。发布。Linux文档项目(文档项目(LDP)是围绕)是围绕Slackware发布写成的。发布写成的。n目前,目前,RedHat发行版本的安装更容易,应用软件更多,已发行版本的安装更容易,应用软件更多,已成为最流行的成为最流行的Linux发行版本,发行版本,2000年秋天已经发行了年秋天已经发行了7.0版本。版本。nLinux发行版本有很多,国内自主建立的如发行版本有很多,国内自主建立的如BluePointLinux、RedFlagLinux、XtermLinux以及美国的以及美国的XLinux、TurboLinux等。等。n每种发行版本都有各自的优点和弱点,但它们都提供相对每种发行版本都有各自的优点和弱点,但它们都提供相对完整的应用软件及帮助文档,都使用相同的内核和开发工完整的应用软件及帮助文档,都使用相同的内核和开发工具,大家都使用同一个名称具,大家都使用同一个名称Linux系统。系统。7/24/202463SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?组成部分组成部分nLinux系统或发布版包括系统或发布版包括符合符合POSIX标准的操作系统内核、标准的操作系统内核、Shell和外围工具。和外围工具。C语言编译器和其他开发工具及函数库语言编译器和其他开发工具及函数库XWindow窗口系统窗口系统各种应用软件,包括字处理软件、图象处各种应用软件,包括字处理软件、图象处理软件等。理软件等。7/24/202464SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?组成部分组成部分nLinux内核是系统的心脏,是运行程序和管理像磁盘和内核是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序。从用户那里接受命令并打印机等硬件设备的核心程序。从用户那里接受命令并把命令送给内核去执行把命令送给内核去执行。nLinuxShell是系统的用户界面,提供了用户与内核进行是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。入内核去执行。nLinux文件结构是文件存放在磁盘等存储设备上的组织文件结构是文件存放在磁盘等存储设备上的组织方法。主要体现在对文件和目录的组织上。方法。主要体现在对文件和目录的组织上。Linux目录目录采用多级树形结构。用户可以浏览整个系统,可以进入采用多级树形结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。任何一个已授权进入的目录,访问那里的文件。n标准的标准的Linux系统都有一套叫做实用工具的程序系统都有一套叫做实用工具的程序,它们是它们是专门的程序。专门的程序。实用工具可分三类实用工具可分三类:编辑器:用编辑器:用于编辑文件;过滤器:用于接收数据并过滤数据;交互于编辑文件;过滤器:用于接收数据并过滤数据;交互程序:允许用户发送信息或接收来自其他用户的信息。程序:允许用户发送信息或接收来自其他用户的信息。7/24/202465SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?开发模式开发模式nLinux是由世界各地的软件爱好者,以是由世界各地的软件爱好者,以Internet为纽带,通过电子邮件等通信为纽带,通过电子邮件等通信方式同时参与的软件开发项目。方式同时参与的软件开发项目。nLinux的开发模式(的开发模式(“巴扎巴扎”(Bazaar)模式)具有以下特点:)模式)具有以下特点:开放与协作;提供源代码,发挥集体智慧开放与协作;提供源代码,发挥集体智慧经历各种测试与考验,稳定性好经历各种测试与考验,稳定性好开发人员凭兴趣开发,热情高,具有创造开发人员凭兴趣开发,热情高,具有创造性性7/24/202466SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?特征特征nLinux不仅继承了不仅继承了Unix的基本特征,而的基本特征,而且在许多方面超过了且在许多方面超过了Unix。n基本特征:基本特征:真正的多用户、多任务操作系统真正的多用户、多任务操作系统符合符合POSIX标准标准提供具有内置安全措施的分层的文件系统提供具有内置安全措施的分层的文件系统提供提供shell命令解释程序和编程语言命令解释程序和编程语言提供强大的管理功能提供强大的管理功能具有内核的编程接口具有内核的编程接口7/24/202467SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?特征特征n基本特征:基本特征:具有图形用户接口具有图形用户接口具有大量实用程序和通信、联网工具具有大量实用程序和通信、联网工具具有面向屏幕的编缉软件具有面向屏幕的编缉软件n独特之处独特之处源代码几乎全部开放源代码几乎全部开放可以运行在多种硬件平台上可以运行在多种硬件平台上可以运行多种应用软件可以运行多种应用软件强大的网络功能强大的网络功能能充分发挥硬件的功能能充分发挥硬件的功能7/24/202468SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?系统概貌系统概貌nLinux内核在核心态下运行,内核程序包含内核在核心态下运行,内核程序包含/boot/vmlinux及及/lib/modules/下的各种可加下的各种可加载模块。载模块。命命 令令解解 释释器器数数 据据库库 管管理器理器数数 据据库库 应应用用编编 辑辑器器LinuxLinux内核内核硬件层硬件层 C C库库/ /数学库数学库/ /图形库图形库/ /窗口库等窗口库等系统调用库系统调用库X X服务器服务器窗口窗口管理器管理器窗口窗口应用应用系统概貌系统概貌7/24/202469SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?系统框架系统框架nLinux内核在整个系统中的位置内核在整个系统中的位置7/24/202470SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.2什么是什么是Linux操作系统?操作系统?系统组成系统组成nLinux系统包括三个部分:系统包括三个部分:用户进程:当一个用户应用程序运行在操作用户进程:当一个用户应用程序运行在操作系统之上时,它成为系统中的一个进程。系统之上时,它成为系统中的一个进程。系统调用接口:应用程序可以通过系统调用系统调用接口:应用程序可以通过系统调用来调用系统内核中的特定过程,以实现特定来调用系统内核中的特定过程,以实现特定的服务。系统调用是内核代码的一部分。的服务。系统调用是内核代码的一部分。Linux内核:内核:Linux的灵魂。负责管理磁盘上的灵魂。负责管理磁盘上的文件、内存,启动并运行程序,从网络上的文件、内存,启动并运行程序,从网络上接收和发送数据包等。接收和发送数据包等。7/24/202471SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC第一章第一章操作系统概述操作系统概述n1.1什么是操作系统?什么是操作系统?n1.2什么是什么是Linux操作系统?操作系统?n1.3Linux内核内核内核概貌、作用、特征内核概貌、作用、特征抽象结构、具体结构、源代码结构抽象结构、具体结构、源代码结构进程调度、内存管理、虚拟文件系统、进程调度、内存管理、虚拟文件系统、进程间通信、网络接口的简介进程间通信、网络接口的简介版本、源代码工具版本、源代码工具分析分析Linux内核的意义内核的意义7/24/202472SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC用户级程序用户级程序系统调用接口系统调用接口虚拟文件虚拟文件系统管理系统管理内存内存管理器管理器进程进程管理器管理器抽象网络服务抽象网络服务(套接字)(套接字)文件系统文件系统驱动程序驱动程序TCP/IP协议协议驱动程序驱动程序IDE硬盘硬盘驱动程序驱动程序软盘软盘网卡网卡驱动程序驱动程序IDE硬盘硬盘软盘软盘以太网卡以太网卡一般程序一般程序内核内核内核内核硬件硬件内内核核概概貌貌7/24/202473SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核作用作用n从程序员的角度来讲,操作系统的内核提供了从程序员的角度来讲,操作系统的内核提供了一个与计算机硬件等价的扩展或虚拟的平台,一个与计算机硬件等价的扩展或虚拟的平台,它抽象了许多硬件细节,程序可以以某种统一它抽象了许多硬件细节,程序可以以某种统一的方式处理数据,而程序员则可以避开许多硬的方式处理数据,而程序员则可以避开许多硬件细节。件细节。n从普通用户把操作系统看成为一个资源管理者,从普通用户把操作系统看成为一个资源管理者,在它的帮助下,用户可以以某种易于理解的方在它的帮助下,用户可以以某种易于理解的方式组织自己的数据、完成自己的工作并和其他式组织自己的数据、完成自己的工作并和其他人共享资源。人共享资源。nLinux以统一的方式支持多任务,而这种方式对以统一的方式支持多任务,而这种方式对用户进程是透明的。用户进程是透明的。7/24/202474SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核特征特征nLinux内核的组织形式为整体式结构,也是开放式的结内核的组织形式为整体式结构,也是开放式的结构。构。nLinux的进程调度方式简单而有效,对于用户进程,采的进程调度方式简单而有效,对于用户进程,采用简单的动态优先级调度方式,对于内核中的例程,采用简单的动态优先级调度方式,对于内核中的例程,采用内核例程处理程序,保证内核例程的高效运行。用内核例程处理程序,保证内核例程的高效运行。nLinux支持内核线程(或称守护进程),内核线程是在支持内核线程(或称守护进程),内核线程是在后台运行而又无终端或登录后台运行而又无终端或登录shell和它结合在一起的进和它结合在一起的进程。程。nLinux支持多种平台的虚拟内存管理,支持多种平台的虚拟内存管理,Linux的虚拟内的虚拟内存管理为不同的硬件平台提供统一的接口。存管理为不同的硬件平台提供统一的接口。7/24/202475SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核特征特征nLinux内核另一独具特色的部分是虚拟文件系统,虚拟内核另一独具特色的部分是虚拟文件系统,虚拟文件系统不仅为多种逻辑文件系统提供统一的接口,而文件系统不仅为多种逻辑文件系统提供统一的接口,而且为各种硬件设备也提供了统一的接口。且为各种硬件设备也提供了统一的接口。nLinux的模块机制使得内核保持独立而又利于扩充,模的模块机制使得内核保持独立而又利于扩充,模块机制可以使内核很容易地增加一个新的模块,而无需块机制可以使内核很容易地增加一个新的模块,而无需重新编译内核。重新编译内核。nLinux增加系统调用以满足用户的特殊需求,增加系统调用以满足用户的特殊需求,Linux开开放的源代码也允许用户设计自己的系统调用,然后加入放的源代码也允许用户设计自己的系统调用,然后加入内核。内核。n网络部分面向对象的设计思想使得网络部分面向对象的设计思想使得Linux内核支持多种内核支持多种协议、多种网卡驱动程序变得容易。协议、多种网卡驱动程序变得容易。7/24/202476SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核抽象结构抽象结构nLinux内核子系统及其之间的关系内核子系统及其之间的关系7/24/202477SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核组成内核组成nLinux内核包括五个部分:内核包括五个部分:进程调度:控制进程对进程调度:控制进程对CPU的访问。的访问。Linux使用基于使用基于优先级和时间片的进程调度算法来选择新的进程。优先级和时间片的进程调度算法来选择新的进程。内存管理:支持虚拟内存,操作系统只在内存中保内存管理:支持虚拟内存,操作系统只在内存中保存当前使用的程序,其余程序留在磁盘上,必要时,存当前使用的程序,其余程序留在磁盘上,必要时,操作系统负责在磁盘和内存之间交换程序块。操作系统负责在磁盘和内存之间交换程序块。虚拟文件系统:隐藏了各种不同硬件的具体细节,虚拟文件系统:隐藏了各种不同硬件的具体细节,为所有设备提供统一的接口。支持多达数十种不同为所有设备提供统一的接口。支持多达数十种不同的文件系统。的文件系统。网络:提供对各种网络标准协议的存取和各种网络网络:提供对各种网络标准协议的存取和各种网络硬件的支持。硬件的支持。进程间通信:支持进程间各种通信机制,包括共享进程间通信:支持进程间各种通信机制,包括共享内存、消息队列、管道等。内存、消息队列、管道等。7/24/202478SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核组成内核组成n各部分之间的依赖关系:各部分之间的依赖关系:进程调度与内存管理之间的关系:互相依赖。进程调度与内存管理之间的关系:互相依赖。进程间通信与内存管理之间的关系:进程间通信子进程间通信与内存管理之间的关系:进程间通信子系统要依赖于内存管理支持内存通信机制,这种机系统要依赖于内存管理支持内存通信机制,这种机制允许两个子进程除了拥有自己的私有内存,还可制允许两个子进程除了拥有自己的私有内存,还可以存取共同的区域。以存取共同的区域。虚拟文件系统与网络接口之间的关系:虚拟文件系虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统,也利用内存管统利用网络接口支持网络文件系统,也利用内存管理支持理支持RAMDISK设备。设备。内存管理与虚拟文件系统之间的关系:内存管理利内存管理与虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期地由调度用虚拟文件系统支持交换,交换进程定期地由调度程序调度,这也是内存管理依赖于进程调度的唯一程序调度,这也是内存管理依赖于进程调度的唯一原因。原因。7/24/202479SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核具体结构具体结构nLinux内核子系统之间的依赖关系内核子系统之间的依赖关系7/24/202480SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核源代码结构内核源代码结构Linux内核源代码位内核源代码位于于/usr/src/linux目目录下,每一个目录或录下,每一个目录或子目录可以看作一个子目录可以看作一个模块,其目录之间的模块,其目录之间的连线表示连线表示“子目录或子目录或子模块子模块”的关系。的关系。7/24/202481SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核进程调度进程调度n进程调度是进程调度是Linux操作系统的心脏,具有操作系统的心脏,具有以下功能:以下功能:运行进程建立自己的新拷贝运行进程建立自己的新拷贝决定哪个进程将占用决定哪个进程将占用CPU,使得可运行进程,使得可运行进程之间进行有效地转移之间进行有效地转移接受中断并将它们发送到合适的内核子系统接受中断并将它们发送到合适的内核子系统发送信号给用户进程发送信号给用户进程管理定时器硬件管理定时器硬件进程结束后,释放进程所占用的资源进程结束后,释放进程所占用的资源支持动态装入模块,这些模块代表内核启动支持动态装入模块,这些模块代表内核启动后所增加的内核功能,这种可装入的模块将后所增加的内核功能,这种可装入的模块将由虚拟文件系统和网络接口使用。由虚拟文件系统和网络接口使用。7/24/202482SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内存管理内存管理n内存管理提供以下功能:内存管理提供以下功能:扩大地址空间扩大地址空间进程保护进程保护内存映射内存映射公平的物理内存分配公平的物理内存分配共享虚拟内存共享虚拟内存n提供两级接口提供两级接口用户进程使用的系统调用接口用户进程使用的系统调用接口其他内核子系统完成它们的任务所使其他内核子系统完成它们的任务所使用的内核接口用的内核接口7/24/202483SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核虚拟文件系统虚拟文件系统n虚拟文件系统具有下列功能:虚拟文件系统具有下列功能:支持多种硬件设备支持多种硬件设备支持多种逻辑文件系统支持多种逻辑文件系统支持可执行文件格式支持可执行文件格式统一性统一性为各种文件系统和所有的为各种文件系统和所有的设备提供统一的接口设备提供统一的接口高性能高性能对文件进行高速存取对文件进行高速存取安全性安全性不丢失数据或不破坏数据不丢失数据或不破坏数据文件保护文件保护限制用户对文件的存取限制用户对文件的存取权限权限7/24/202484SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核进程间通信进程间通信nLinux支持的支持的IPC机制具有下列功能:机制具有下列功能:支持信号支持信号支持等待队列支持等待队列支持文件锁支持文件锁支持管道和命名管道支持管道和命名管道支持支持SystemVIPC机制机制支持信号量支持信号量支持消息队列支持消息队列支持共享内存支持共享内存支持支持Linux的套接口的套接口7/24/202485SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核网络接口网络接口nLinux网络系统支持两个机器之间的网络连接和网络系统支持两个机器之间的网络连接和sockets通信模型。通信模型。nLinux网络系统为不同的通信模型和服务质量提供了两网络系统为不同的通信模型和服务质量提供了两种传输协议,即不可靠的、基于消息的种传输协议,即不可靠的、基于消息的UDP传输协议传输协议和可靠的、基于流的传输协议和可靠的、基于流的传输协议TCP,它们是在,它们是在IP网络网络协议之上实现的。协议之上实现的。nIP协议位于设备驱动程序之上,设备驱动程序提供了三协议位于设备驱动程序之上,设备驱动程序提供了三种不同类型的连接:串行线路连接、并行线路连接及种不同类型的连接:串行线路连接、并行线路连接及以太网连接。以太网连接。n地址解析协议位于地址解析协议位于IP和以太网驱动程序之间,地址解析和以太网驱动程序之间,地址解析的作用就是把逻辑的作用就是把逻辑IP地址翻译成物理以太网地址。地址翻译成物理以太网地址。7/24/202486SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核版本内核版本nLinux内核采用的是双树系统。一棵树是稳定内核采用的是双树系统。一棵树是稳定树,主要用于发行;另一棵树是非稳定树或树,主要用于发行;另一棵树是非稳定树或者开发树,用于产品开发、改进。者开发树,用于产品开发、改进。n一些新特性、实验性改进等首先在开发树中一些新特性、实验性改进等首先在开发树中进行。如果在开发树中所做的改进也可以应进行。如果在开发树中所做的改进也可以应用于稳定树,那么在开发树中经过测试以后,用于稳定树,那么在开发树中经过测试以后,就在稳定树中进行相同的改进。按照就在稳定树中进行相同的改进。按照Linus的的观点,一旦开发树经过了足够的发展,开发观点,一旦开发树经过了足够的发展,开发树就会成为新的稳定树,如此周而复始地进树就会成为新的稳定树,如此周而复始地进行下去。行下去。7/24/202487SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核版本树内核版本树0.01Linux(第一版)(第一版)0.13版版产品化版本产品化版本实验版本实验版本1.0.01.1.0(1.0.0的拷贝的拷贝)1.0.X(修改修改)1.1.X(增加新功能,进行测试增加新功能,进行测试)1.1.95(成为成为1.2.0)7/24/202488SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核内核版本内核版本n源代码版本序号的形式为源代码版本序号的形式为x.y.z。对于稳定树来说,。对于稳定树来说,y是偶是偶数;对于开发树来说,数;对于开发树来说,y是比相应稳定树大一的奇数。截是比相应稳定树大一的奇数。截止到止到2000年年10月,最新的稳定内核版本号是月,最新的稳定内核版本号是2.4.test9。n这种开发会比常规惯例要快,因为每一版本所包含的改这种开发会比常规惯例要快,因为每一版本所包含的改变比以前更少了,内核开发人员只需花很短的时间就能变比以前更少了,内核开发人员只需花很短的时间就能够完成一个实验开发周期。够完成一个实验开发周期。n当今,当今,Linus率领分布在世界各地的率领分布在世界各地的Linux内核开发队伍内核开发队伍正在完善他们的作品。正在完善他们的作品。Linux内核内核2.x版本充分显示了版本充分显示了Linux开发队伍的非凡的创造力和市集开发模式的价值。开发队伍的非凡的创造力和市集开发模式的价值。Linux核心开发者的名单记录在文件核心开发者的名单记录在文件/usr/src/linux/CREDITS中。中。7/24/202489SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核源代码分析工具源代码分析工具nLinux超文本交叉代码检索工具超文本交叉代码检索工具http:/lxr.linux.no/nWindows平台下的源代码阅读工具平台下的源代码阅读工具SourceInsight7/24/202490SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC1.3Linux内核内核分析分析Linux内核的意义内核的意义nLinux开放的源代码为中国软件产业的开放的源代码为中国软件产业的发展和腾飞提供了前所未有的机遇,这发展和腾飞提供了前所未有的机遇,这体现在以下几个方面:体现在以下几个方面:开发适合自己的操作系统开发适合自己的操作系统开发高水平的软件开发高水平的软件有助于计算机科学的教学和科研有助于计算机科学的教学和科研7/24/202491SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC小结小结n计算机操作系统的概念及其发展计算机操作系统的概念及其发展n从不同角度叙述了计算机操作系统从不同角度叙述了计算机操作系统n详细阐述了操作系统的特性和功能详细阐述了操作系统的特性和功能n介绍了介绍了Linux操作系统的发展过程及特操作系统的发展过程及特点点n介绍了介绍了Linux内核的结构、组成内核的结构、组成7/24/202492SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC例题例题n1、在下列选择中,(、在下列选择中,()不是操作系统关心的主)不是操作系统关心的主要问题。要问题。A管理计算机裸机。管理计算机裸机。B设计、提供用户程序与计算机硬件系统的界面。设计、提供用户程序与计算机硬件系统的界面。C管理计算机系统资源。管理计算机系统资源。D高级程序设计语言的编译器。高级程序设计语言的编译器。【解答解答】Dn2、操作系统是一种、操作系统是一种()。A用户软件用户软件B应用软件应用软件C支撑软件支撑软件D系统软件系统软件【解答解答】D7/24/202493SHAN LIU, School of Auto. Eng., UESTCSHAN LIU, School of Auto. Eng., UESTC例题例题n3、批处理系统的主要缺点是、批处理系统的主要缺点是()。清华大学清华大学1996年年试题试题ACPU利用率低利用率低B不能并发执行不能并发执行C缺少交互性缺少交互性D以上都不是以上都不是【解答解答】Cn4、操作系统是计算机系统中的一个操作系统是计算机系统中的一个_,它管理和控制,它管理和控制计算机系统中的计算机系统中的_。【解答解答】系统软件,软硬件资源系统软件,软硬件资源n5、现代操作系统的两个最基本的特征是、现代操作系统的两个最基本的特征是_和和_。【解答解答】并发,共享并发,共享n6、批处理系统的主要缺点是、批处理系统的主要缺点是_。【解答解答】缺少交互性缺少交互性7/24/202494
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号