《linux内核-第一章 操作系统概述.ppt》由会员分享,可在线阅读,更多相关《linux内核-第一章 操作系统概述.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Linux内核分析内核分析学习内容学习内容Linux的进程管理、内存管理、中断和异的进程管理、内存管理、中断和异常、系统调用、内核中的同步、文件系常、系统调用、内核中的同步、文件系统、设备驱动等。统、设备驱动等。先导课先导课计算机组成原理、操作系统、计算机组成原理、操作系统、C语言、汇编语言、汇编语言语言数据结构、程序设计基础数据结构、程序设计基础学习目的学习目的通过分析通过分析Linux内核,加深对操作系统原理的内核,加深对操作系统原理的理解理解熟悉熟悉linux系统,为今后从事系统,为今后从事linux系统开发和系统开发和应用开发打下基础应用开发打下基础提高专业素养、锻炼实践能力和系统分析
2、能力提高专业素养、锻炼实践能力和系统分析能力学习编程高手们的编程技巧,提高自己的编程学习编程高手们的编程技巧,提高自己的编程水平水平还可以学到很多计算机底层知识,如系统的引还可以学到很多计算机底层知识,如系统的引导和中断机制等导和中断机制等学习方法学习方法弄懂源码的文件组织形式弄懂源码的文件组织形式以程序流程为线索,一线串珠以程序流程为线索,一线串珠系统的初始化过程;应用程序的执行流程系统的初始化过程;应用程序的执行流程以数据结构为基点,触类旁通以数据结构为基点,触类旁通数据结构体现整个系统的构架,如把进程控制块分数据结构体现整个系统的构架,如把进程控制块分析清楚了,就对整个进程有了基本的把握
3、析清楚了,就对整个进程有了基本的把握以功能为中心,各个击破以功能为中心,各个击破使用源码阅读器和交叉参考网站使用源码阅读器和交叉参考网站Source Insighthttp:/www.plinux.org/lxr/http/crossref.htmlhttp:/lxr.linux.no/source/学习形式学习形式授课授课/讨论讨论上机试验上机试验自学和小组交流自学和小组交流考核形式考核形式上课考勤上机期末论文参考书目Linux内核设计与实现内核设计与实现,第二版第二版译者译者 陈莉君陈莉君 机械工业出版社机械工业出版社 2006-1-1深入理解深入理解linux内核内核,第二版第二版译者译
4、者 陈莉君陈莉君 中国电力出版社中国电力出版社 2004-6第一章操作系统概述认识操作系统 操作系统的发展开放源代码的Unix/Linux操作系统 Linux内核 Linux内核源代码不同角度看到的操作系统不同角度看到的操作系统不同角度看到的操作系统不同角度看到的操作系统操作系统操作系统操作系统操作系统整体看整体看整体看整体看操作系统设计者操作系统设计者操作系统设计者操作系统设计者使用者使用者使用者使用者普通开发者普通开发者普通开发者普通开发者认识操作系统认识操作系统v打开计算机,首先跳入眼帘的是什么?v要拷贝一个文件,具体的拷贝操作是谁完成的?l你需要知道文件存放在何处吗?l柱面、磁道、扇区
5、描述什么?l数据的搬动过程怎样进行v繁琐留给自己,简单留给用户 l操作系统穿上华丽的外衣图形界面l操作系统穿上朴素的外衣字符界面认识操作系统认识操作系统从使用者的角度看从使用者的角度看v拷贝命令的C语言实现片断infinf=open(“/floppy/TEST”,O_RDONLY,0);=open(“/floppy/TEST”,O_RDONLY,0);out=open(“/out=open(“/mydirmydir/test”,O_WRONLY,0600);/test”,O_WRONLY,0600);do dol=read(l=read(infinf,bufbuf,4096);,4096);w
6、rite(write(outfoutf,bufbuf,l);,l);while(l);while(l);close(close(outfoutf););close(close(infinf););认识操作系统认识操作系统从程序开发者的角度看从程序开发者的角度看 浏览器 信息管理 文件管理系统 游戏编译程序编辑程序命令解释程序操作系统CPU、内存、I/O接口硬件内核认识操作系统认识操作系统从所处位置看从所处位置看操作系统是其它所有用户程序运行的基础。#includemain()printf(“Hello worldn”)用户告诉操作系统执行用户告诉操作系统执行testtest程序程序 操作系统通
7、过文件名找到该程序操作系统通过文件名找到该程序 检查其类型检查其类型,检查程序首部,找出代检查程序首部,找出代码和数据存放的地址码和数据存放的地址文件系统找到第一个磁盘块文件系统找到第一个磁盘块 操作系统建立程序的执行环境操作系统建立程序的执行环境 操作系统把程序从磁盘装入内存,并操作系统把程序从磁盘装入内存,并跳到程序开始处执行跳到程序开始处执行 该该程序的执行过程简述如下程序的执行过程简述如下:操作系统检查字符串的位置是否正确操作系统检查字符串的位置是否正确 操作系统找到字符串被送往的设备操作系统找到字符串被送往的设备 操作系统将字符串送往输出设备窗口操作系统将字符串送往输出设备窗口系统确
8、定这是一个合法的操作,然后系统确定这是一个合法的操作,然后将字符串转换成像素将字符串转换成像素窗口系统将像素写入存储映像区窗口系统将像素写入存储映像区 视频硬件将像素表示转换成一组模拟视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)信号控制显示器(重画屏幕)显示器发射电子束。你在屏幕上看到显示器发射电子束。你在屏幕上看到Hello worldHello world。从中看从中看到什么到什么认识操作系统认识操作系统从程序执行看从程序执行看从操作系统设计者的角度看v操作系统的设计目标是什么?l尽可能地方便用户使用计算机 l让各种软件资源和硬件资源高效而协调地运转起来。v计算机的硬件资源和
9、软件资源各指什么?v假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,必须考虑哪些问题?v从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分 l操作系统接口lCPU管理l内存管理l设备管理l文件管理认识操作系统认识操作系统从设计者角度看从设计者角度看 操作系统操作系统是计算机系统中的一个系统软件,是一些程序模块的集合它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。认识操作系统认识操作系统定义定义操作系统的演变v
10、单道批处理系统单道批处理系统 l串行执行预先组织好的一组一组任务 l提高了系统效率。v多道批处理系统多道批处理系统 l可以交错运行多个程序 l再次提高系统效率。v分时分时系统系统l将处理器的运行时间分成数片,均分或依照一定权重派发给系统中的用户使用 l快速响应 操作系统的发展操作系统的发展硬件角度下的操作系发展轨迹 年 代 硬 件 特点 操作系统特点 背 景 机械计算机时代17世纪20世纪初 1)纯机械结构,低速2)只能进行简单的数学运算 纯手工操作 从计算尺至差分机到分析机发展了数百年第一代计算机1946年50年代末电子管计算机 1)体积大、能耗高、故障多、价格贵2)难以普及应用 无操作系统
11、(程序按机器码编写,载体从插件板到卡片与纸带)1906年发明电子管1946 ENIAC研制成功(第一台电子管计算机)年 代 硬 件 特点 操作系统特点 背 景 第二代计算机50年代末60年代中期晶体管计算机 1)采用印刷电路2)稳定性与可靠性 大 大 提 高3)批量生产成为可能4)进入实际应用领域但数量有限1)单道批处理系统2)操作系统以监督软件形式出现3)任务按顺序方式处理 1947年发明晶体管 第三代计算机60年代中期70年代初集成电路计算机 1)体积减小,性价 比 迅 速 提 高2)小型计算机发展迅速3)进入商业应用4)尚不适合家庭应用的需求1)涌现大批操作系统多道批处理系统、分时系统和
12、实时系统2)奠定了现代操作系统的基本框架 1958年发明集成电路1971年INTEL发明微处理器 硬件角度下的操作系统发展轨迹硬件角度下的操作系统发展轨迹分析v在硬件的性价比较低的时候,操作系统设计追求什么?v在硬件性价比越来越高后,操作系统的设计开始追求的目标是什么?v计算机开始普及后,操作系统的设计开始追求?v从第三代到第四代计算机,操作系统的发展逐渐摆脱追随硬件发展的状况,形成自己的理论体系v进入第四代系统后,分布式系统和多处理器系统虽然极大的扩充了操作系统理论,但系统结构并没有变化,只是各功能模块得以进一步完善。操作系统的发展操作系统的发展硬件角度下操作系统发展的分析硬件角度下操作系统
13、发展的分析主流操作系统 系统特点 计 算 机 语 言 背 景 无 手工操作 无编程语言直接使用机器代码 1936年图灵提出图灵机 单道批处理系统 作业运行的监督程序 编程语言雏形期 1957年 FORTRAN语言开发成功多道批处理分时系统实时系统多处理系统 操作系统结构确立,分为处理机管理、内存管理、设备管理、文件管理等模块 1)编程语言大量涌现2)结构化程序设计3)C语言逐渐 60年代的软件危机导致软件工程的发展1969年 Unix诞生1972年 C语言推出 主流操作系统 系统特点 计 算 机 语 言 背 景 类Unix系列WINDOWS系列 人机交互成为主题1)可视化界面2)多媒体技 面向
14、对象语言成为主流 80年代中期开始面向对象技术逐步发展网络操作系统分布式操作系统 微内核技术兴起 1)JAVA语言2)脚本语言兴起 1995年 JAVA推出 嵌入式系统 单内核与微内核竞争激烈 编程工具向跨平台方向发 1991年免费的操作系统Linux发布 软件角度下的操作系统发展轨迹软件角度下的操作系统发展轨迹 分析v程序设计理论约束着操作系统设计。操作系统的发展滞后于计算机语言的发展,从结构化设计到对象化设计,操作系统总是最后应用新编程理论的软件之一。v至今操作系统对于是否需要彻底对象化(即微内核化),还处于徘徊时期,仍在探索单内核与微内核的最佳结合方式。v人机交互技术主要是为用户考虑,这
15、是对操作系统设计进行的变革。v以Linux为代表的开源软件的出现,打破了带有神秘色彩的传统的封闭式开发模式。软件角度下的操作系统发展轨迹分析软件角度下的操作系统发展轨迹分析 讲究效率的单模块操作系统讲究效率的单模块操作系统进程管理进程管理内存管理内存管理设备管理设备管理文件管理文件管理模块之间可以互相调用的单模块结构模块之间可以互相调用的单模块结构讲究效率的单模块操作系统讲究效率的单模块操作系统v模块之间直接调用函数,除了函数调用的开销模块之间直接调用函数,除了函数调用的开销外,没有额外开销。外,没有额外开销。v庞大的操作系统有数以千计的函数v复杂的调用关系势必导致操作系统维护的困难追求简洁的
16、微内核操作系统追求简洁的微内核操作系统客户进程客户进程进程服务器进程服务器内存服务器内存服务器文件服务器文件服务器微内核微内核追求简洁的微内核操作系统追求简洁的微内核操作系统v内核与各个服务器之间通过通信机制进行交互,内核与各个服务器之间通过通信机制进行交互,这使得微内核结构的效率大大折扣。这使得微内核结构的效率大大折扣。v内核发出请求,服务器做出应答v为各个服务器模块的相对独立性,使得其维护相对容易历史悠久的历史悠久的Unixv在在MULTICS(1969)的肩上的肩上制研制者制研制者KenThompson和和DennisM.Ritchie 站站Unix的诞生还伴有的诞生还伴有C语言呱呱落地
17、语言呱呱落地UnixUnix是现代操作系统的代表:安全、可靠、强大是现代操作系统的代表:安全、可靠、强大的计算能力的计算能力UnixUnix的商业化是一把双刃剑的商业化是一把双刃剑 自由而奔放的黑马自由而奔放的黑马Linux诞生于学生之手诞生于学生之手成长于成长于Internet Internet 壮大于自由而开壮大于自由而开放的文化放的文化LinuxLinux之父之父-Linus TorvaldsLinus Torvalds芬兰、赫尔辛基大学、芬兰、赫尔辛基大学、19901990起始于写两个进程起始于写两个进程 然后写驱动程序、文件然后写驱动程序、文件系统、任务切换程序,系统、任务切换程序,
18、从而形成一个操作系统从而形成一个操作系统邹形邹形Linux得以流行的原因之一得以流行的原因之一 遵循遵循POSIXPOSIX标准标准vPOSIX POSIX 表示可移植操作系统接口表示可移植操作系统接口(Portable Operating System Portable Operating System InterfaceInterface)vPOSIXPOSIX是在是在UnixUnix标准化过程中出现的产物。标准化过程中出现的产物。vPOSIX 1003.1POSIX 1003.1标准定义了一个最小的标准定义了一个最小的UnixUnix操作系统接口操作系统接口 v任何操作系统只有符合这一标
19、准,才有可任何操作系统只有符合这一标准,才有可能运行能运行UnixUnix程序程序 Linux的肥沃土壤的肥沃土壤GNUvGNU GNU 是是 GNU Is Not Unix GNU Is Not Unix 的递归缩写,是自的递归缩写,是自由软件基金会的一个由软件基金会的一个项目项目 。v GNU GNU 项目产品包括项目产品包括 emacs emacs 编辑器、著名的编辑器、著名的 GNU C GNU C 和和 GccGcc编译器等,这些软件叫做编译器等,这些软件叫做GNUGNU软件。软件。vGNU GNU 软件和派生工作均适用软件和派生工作均适用 GNU GNU 通用公共许通用公共许可证,
20、即可证,即 GPLGPL(General Public License)vLinuxLinux的开发使用了众多的的开发使用了众多的GUNGUN工具工具GPL开源软件的法律开源软件的法律vGPL GPL 允许软件作者拥有软件版权允许软件作者拥有软件版权 v但但GPLGPL规定授予其他任何人以合法复制、规定授予其他任何人以合法复制、发发行和修改软件的权利。行和修改软件的权利。LinuxLinux系系统统或或发发布版布版 v符合符合 POSIX POSIX 标准的操作系统内核、标准的操作系统内核、Shell Shell 和外围工具。和外围工具。v C C 语言编译器和其他开发工具及函数库语言编译器和
21、其他开发工具及函数库 vX Window X Window 窗口系统窗口系统 v各种应用软件,包括字处理软件、图象处理各种应用软件,包括字处理软件、图象处理软件等。软件等。开放与开放与协协作作的开发模式的开发模式 v世界各地软件爱好者集体智慧的结晶世界各地软件爱好者集体智慧的结晶 v提供源代码,遵守提供源代码,遵守GPLGPL。v经历了各种各样的测试与考验,软件的稳定经历了各种各样的测试与考验,软件的稳定性好。性好。v开发人员凭兴趣去开发,热情高,具有创造开发人员凭兴趣去开发,热情高,具有创造性。性。LinuxLinux内核内核 vLinusLinus领导下的开发小组开发出的系统内核领导下的开
22、发小组开发出的系统内核 v是所有是所有Linux Linux 发布版本的核心发布版本的核心 v内核开发人员一般在百人以上,任何自由程内核开发人员一般在百人以上,任何自由程序员都可以提交自己的修改工作。序员都可以提交自己的修改工作。v采用邮件列表来进行项目管理、交流、错误采用邮件列表来进行项目管理、交流、错误报告报告v有大量的用户进行测试,正式发布的代码质有大量的用户进行测试,正式发布的代码质量高量高 整个系统的核心内核整个系统的核心内核 硬件硬件系统调用接口应用应用程序进程程序进程1应用应用程序进程程序进程2应用应用程序进程程序进程3Linux内核内核用户进程用户进程内核子系统内核子系统系统调
23、用系统调用整个系统的核心内核整个系统的核心内核 v用户进程用户进程运行在运行在LinuxLinux内核之上的一个庞大软件集内核之上的一个庞大软件集合。合。v系统调用系统调用内核的出口,用户程序通过它使用内核内核的出口,用户程序通过它使用内核提供的功能。提供的功能。vLinuxLinux内核内核操作系统的灵魂,负责管理磁盘上的文操作系统的灵魂,负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等等。收和发送数据包等等。v硬件硬件包括了包括了LinuxLinux安装时需要的所有可能的物理设安装时需要的所有可能的物理设备。例如,备
24、。例如,CPUCPU、内存、硬盘、网络硬件等等。内存、硬盘、网络硬件等等。内核子系统内核子系统 内核子系统内核子系统 v进程调度控制着进程对进程调度控制着进程对CPUCPU的访问。的访问。v内存管理允许多个进程安全地共享主内存区域内存管理允许多个进程安全地共享主内存区域 v虚拟文件系统隐藏各种不同硬件的具体细节,为虚拟文件系统隐藏各种不同硬件的具体细节,为所有设备提供统一的接口。所有设备提供统一的接口。v网络提供了对各种网络标准协议的存取和各种网网络提供了对各种网络标准协议的存取和各种网络硬件的支持。络硬件的支持。v进程间通信进程间通信(IPC)IPC)支持进程间各种通信机制,包支持进程间各种
25、通信机制,包括共享内存、消息队列及管道等。括共享内存、消息队列及管道等。LinuxLinux内核版本树内核版本树 0.01Linux(第一版)第一版)0.13版版|产品化版本产品化版本实验版本实验版本1.0.01.1.0(1.0.0的拷贝的拷贝)1.0.X(修改修改)1.1.X(增加新功能,进行测试增加新功能,进行测试)1.1.95(1.1.95(成为成为1.2.0)1.2.0)内核源代码结构内核源代码结构Linux内核源代码分析工具内核源代码分析工具 vLinuxLinux超文本交叉代码检索工具超文本交叉代码检索工具 http:/http:/lxrlxr.linuxlinux.no/.no/v Windows平台下的源代码阅读工具平台下的源代码阅读工具Source Insight“内核之旅内核之旅 ”网站网站v http:/ v 第一期第一期“走入走入LinuxLinux世界世界”涉猎了操作系统的来龙涉猎了操作系统的来龙去脉后与大家携手步入去脉后与大家携手步入LinuxLinux世界。世界。v下载代码,亲手搭建实验系统。下载代码,亲手搭建实验系统。