Linux操作系统概述.ppt

上传人:za****8 文档编号:13189799 上传时间:2020-06-07 格式:PPT 页数:54 大小:1.43MB
返回 下载 相关 举报
Linux操作系统概述.ppt_第1页
第1页 / 共54页
Linux操作系统概述.ppt_第2页
第2页 / 共54页
Linux操作系统概述.ppt_第3页
第3页 / 共54页
点击查看更多>>
资源描述
Linux操作系统,万月亮Email:fornetwork,参考书目,教材:Linux系统应用基础教程.张小进编著机械工业出版社参考教材:Linux操作系统原理与应用.陈莉君,康华.清华大学出版社Unix环境高级编程.Stevens著,尤晋元译.机械工业出版社Unix网络编程,第1卷:套接口API和X/Open传输接口API,Stevens著,施振川译.清华大学出版社Unix网络编程,第2卷:进程间通信,Stevens著,杨续张译.清华大学出版社,作业上交,所交的电子作业包括两部分:源程序(加注释并存为*.c或*.txt)或作业文档(存为*doc);是本次作业的心得体会(以注释形式附在程序或文档后面)最后将所有上述文件用winrar打包压缩后(文件名是班级+学号+姓名+x.rar),x表示第几次作业,作为电子邮件的附件发送。否则无效!发送电子邮件要注意的是:收件人地址为:fornetwork,主题为:作业(班级:姓名:*,学号:*,第x次),附上附件!一定要按照要求格式发送作业邮件,切忌不规范邮件出现。,成绩评定,成绩(100)=作业(20)+期末考试(60)+考勤(20),第一章操作系统概述,认识操作系统操作系统的发展开放源代码的Unix/Linux操作系统Linux内核Linux内核源代码,认识操作系统,不同角度看到的操作系统,操作系统,认识操作系统从使用者的角度看,打开计算机,首先跳入眼帘的是什么?要拷贝一个文件,具体的拷贝操作是谁完成的?你需要知道文件存放在何处吗?柱面、磁道、扇区描述什么?数据的搬动过程怎样进行繁琐留给自己,简单留给用户操作系统穿上华丽的外衣图形界面操作系统穿上朴素的外衣字符界面,认识操作系统从程序开发者的角度看,拷贝命令的C语言实现片断,inf=open(“/floppy/TEST”,O_RDONLY,0);out=open(“/mydir/test”,O_WRONLY,0600);dol=read(inf,buf,4096);write(outf,buf,l);while(l);close(outf);close(inf);,认识操作系统从所处位置看,操作系统是其它所有用户程序运行的基础。,#includemain()printf(“Helloworldn”),用户告诉操作系统执行test程序操作系统通过文件名找到该程序检查其类型,检查程序首部,找出代码和数据存放的地址文件系统找到第一个磁盘块操作系统建立程序的执行环境操作系统把程序从磁盘装入内存,并跳到程序开始处执行,该程序的执行过程简述如下:,操作系统检查字符串的位置是否正确操作系统找到字符串被送往的设备操作系统将字符串送往输出设备窗口系统确定这是一个合法的操作,然后将字符串转换成像素窗口系统将像素写入存储映像区视频硬件将像素表示转换成一组模拟信号控制显示器(重画屏幕)显示器发射电子束。你在屏幕上看到Helloworld。,从中看到什么,认识操作系统从程序执行看,从操作系统设计者的角度看操作系统的设计目标是什么?尽可能地方便用户使用计算机让各种软件资源和硬件资源高效而协调地运转起来。计算机的硬件资源和软件资源各指什么?假设在一台计算机上有三道程序同时运行,并试图在一台打印机上输出运算结果,必须考虑哪些问题?从操作系统设计者的角度考虑,一个操作系统必须包含以下几部分操作系统接口CPU管理内存管理设备管理文件管理,认识操作系统从设计者角度看,操作系统:计算机系统中的一个系统软件,是一些程序模块的集合它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源,合理的组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能,使得用户能够灵活、方便、有效的使用计算机,使整个计算机系统能高效、顺畅地运行。,认识操作系统定义,操作系统的演变单道批处理系统串行执行预先组织好的一组任务提高了系统效率。多道批处理系统可以交错运行多个程序再次提高系统效率。分时系统将处理器的运行时间分成数片,均分或依照一定权重派发给系统中的用户使用快速响应,操作系统的发展,硬件角度下的操作系发展轨迹,硬件角度下的操作系统发展轨迹,在硬件的性价比较低的时候,操作系统设计追求什么?在硬件性价比越来越高后,操作系统的设计开始追求的目标是什么?计算机开始普及后,操作系统的设计开始追求?从第三代到第四代计算机,操作系统的发展逐渐摆脱追随硬件发展的状况,形成自己的理论体系进入第四代系统后,分布式系统和多处理器系统虽然极大的扩充了操作系统理论,但系统结构并没有变化,只是各功能模块得以进一步完善。,硬件角度下操作系统发展的分析,软件角度下的操作系统发展轨迹,程序设计理论约束着操作系统设计。操作系统的发展滞后于计算机语言的发展,从结构化设计到对象化设计,操作系统总是最后应用新编程理论的软件之一。至今操作系统对于是否需要彻底对象化(即微内核化),还处于徘徊时期,仍在探索单内核与微内核的最佳结合方式。人机交互技术主要是为用户考虑,这是对操作系统设计进行的变革。以Linux为代表的开源软件的出现,打破了带有神秘色彩的传统的封闭式开发模式。,软件角度下的操作系统发展轨迹分析,讲究效率的单模块操作系统,进程管理,内存管理,设备管理,文件管理,模块之间可以互相调用的单模块结构,模块之间直接调用函数,除了函数调用的开销外,没有额外开销。庞大的操作系统有数以千计的函数复杂的调用关系势必导致操作系统维护的困难,讲究效率的单模块操作系统,追求简洁的微内核操作系统,客户进程,进程服务器,内存服务器,文件服务器,微内核,内核与各个服务器之间通过通信机制进行交互,这使得微内核结构的效率大大折扣。内核发出请求,服务器做出应答为各个服务器模块的相对独立性,使得其维护相对容易,追求简洁的微内核操作系统,一些重要的操作系统FMS(FORTRANMonitorSystem)和IBSYS(IBM为7094配备的操作系统)OS/360(IBM为系列机360配备的操作系统)CTSS(CompatibleTimeSharingSystem)MULTICS(MULTiplexedInformationandComputerService)UNIX类、LinuxCP/M,历史上的操作系统,MS-DOS、Windows3.1/95/98/Me、WindowsNT、Windows2000/XP、WindowsCE、WindowsServer2003、Windows7MacintoshOS/390MachVxWorks嵌入式领域研究型操作系统,历史上的操作系统,有线电视机顶盒领域PowerTV掌上计算机领域PalmOS数字影像领域Digita手机Symbian,SmartPhone,PalmOS,WindowsMobile,Linux,Android其他Nucleus,VxWorks嵌入式Linux:uClinux,MontaVistaLinux,LynxOS,操作系统领域中新的操作系统,1965年在ARPA的支持下MIT、贝尔实验室和通用电气公司决定开发一种“公用计算服务系统”,希望能够同时支持整个波士顿所有的分时用户。该系统称作MULTICS(MULTiplexedInformationandComputingService)MULTICS设计目标是:便利的终端使用大量远程终端通过电话线接入计算机主机高可靠的大型文件系统大容量的用户信息共享;存储和构造层次化信息结构的能力,历史悠久的Unix,MULTICS研制难度超出所有人的预料(PL/1语言)长期研制工作达不到预期目标,1969年4月贝尔实验室退出,通用电气公司也退出最终,MIT坚持下来,MULTICS成功运行,成为商业产品(通用汽车、福特、美国国家安全局等)运行MULTICS的计算机系统在九十年代中陆续被关闭(加拿大国防部于2000年10月30日17:08)MULTICS的意义引入了许多现代操作系统领域概念雏形,对随后的操作系统特别是UNIX的成功有着巨大的影响,历史悠久的Unix,1969年,在贝尔退出MULTICS研制项目后,KenThompson和DennisM.Ritchie想申请经费买计算机从事操作系统研究,但多次申请得不到批准项目无着落,他们在一台无人用的PDP-7上,重新摆弄原先在MULTICS项目上设计的“空间旅行”游戏为了使游戏能够在PDP-7上顺利运行,他们陆续开发了浮点运算软件包、显示驱动软件,设计了文件系统、实用程序、shell和汇编程序到了1970年,在一切完成后,给新系统起了个同MULTICS发音相近的名字UNIX随后,UNIX用C语言全部重写,自此,UNIX诞生了,历史悠久的Unix,UNIX是现代操作系统的代表。Unix运行时的安全性、可靠性以及强大的计算能力赢得广大用户的信赖促使UNIX系统成功的因素:首先,由于UNIX是用C语言编写,因此它是可移植的,UNIX是世界上唯一能在笔记本计算机、PC机、工作站直至巨型机上运行的操作系统第二,系统源代码非常有效,系统容易适应特殊的需求最后,也是最重要的一点,它是一个良好的、通用的、多用户、多任务、分时操作系统,历史悠久的Unix,UNIX的两大体系:System:具有BellLab的血统BSD4.3:伯克利版的,TCP/IP协议诞生于此Unix的商业化是一把双刃剑,历史悠久的Unix,SunSolarisIBMAIXSCOUnixWareHPHP-UXFreeBSD,主流Unix产品,1986年,AndrewTanenbaum开发Minix系统;1991年,芬兰赫尔辛基大学的学生LinusTorvalds开发Linux系统,并将源代码放在Internet上;起始于写两个进程:然后写驱动程序、文件系统、任务切换程序,从而形成一个操作系统雏形。随着Internet的发展,Linux系统迅速普及开来;1994年,发布Linux1.0内核;同年RedHat公司成立;1996年,发布LinuxKernel2.0;2003年,发布LinuxKernel2.6,Linux发展简史,Unix/Linux演化关系图,Linux的肥沃土壤GNU,GNU是GNUIsNotUnix的递归缩写,是自由软件基金会的一个项目。GNU项目产品包括emacs编辑器、著名的GNUC和Gcc编译器等,这些软件叫做GNU软件。GNU软件和派生工作均适用GNU通用公共许可证,即GPL(GeneralPublicLicense)Linux的开发使用了众多的GUN工具,Linux得以流行的原因之一遵循POSIX标准,POSIX表示可移植操作系统接口(PortableOperatingSystemInterface)POSIX是在Unix标准化过程中出现的产物。POSIX1003.1标准定义了一个最小的Unix操作系统接口任何操作系统只有符合这一标准,才有可能运行Unix程序,Linux系统或发布版,符合POSIX标准的操作系统内核、Shell和外围工具。C语言编译器和其他开发工具及函数库XWindow窗口系统各种应用软件,包括字处理软件、图象处理软件等。,开放与协作的开发模式,世界各地软件爱好者集体智慧的结晶提供源代码,遵守GPL。经历了各种各样的测试与考验,软件的稳定性好。开发人员凭兴趣去开发,热情高,具有创造性。,Linux内核,Linus领导下的开发小组开发出的系统内核是所有Linux发布版本的核心内核开发人员一般在百人以上,任何自由程序员都可以提交自己的修改工作。采用邮件列表来进行项目管理、交流、错误报告有大量的用户进行测试,正式发布的代码质量高,RedHatLinuxSuSELinuxDebianLinuxMandrakeLinuxTurboLinux,国外主要发行版本,红旗Linux中标普华Linux共创桌面Linux冲浪Linux,国内主要发行版本,整个系统的核心内核,硬件,系统调用接口,应用程序进程1,应用程序进程2,应用程序进程3,Linux内核,用户进程,内核子系统,系统调用,整个系统的核心内核,用户进程运行在Linux内核之上的一个庞大软件集合。系统调用内核的出口,用户程序通过它使用内核提供的功能。Linux内核操作系统的灵魂,负责管理磁盘上的文件、内存,负责启动并运行程序,负责从网络上接收和发送数据包等等。硬件包括了Linux安装时需要的所有可能的物理设备。例如,CPU、内存、硬盘、网络硬件等等。,Unix内核是单内核、单模块设计它是一个不可分割的静态可执行体,必须以完整、单独的可执行块的形式在一个单独的地址空间运行WindowsNT和Mach是微内核的典型实例微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器。Linux内核与Unix内核一样是单内核,多模块设计Linux内核运行在单独的内核地址空间。与Unix内核不同的是,Linux内核汲取微内核的思想具备模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力所有模块全部运行在内核态,直接调用函数,无需消息传递支持多称多处理SMP机制,Linux内核的特点,内核子系统,内核子系统,进程调度控制着进程对CPU的访问。内存管理允许多个进程安全地共享主内存区域虚拟文件系统隐藏各种不同硬件的具体细节,为所有设备提供统一的接口。网络提供了对各种网络标准协议的存取和各种网络硬件的支持。进程间通信(IPC)支持进程间各种通信机制,包括共享内存、消息队列及管道等。,Linux的版本号又分为两部分:内核(Kernel)版本和发行(Distribution)版本。内核版本的序号由3部分数字构成,其形式如下:major.minor.patchlevel,Linux的内核版本树,内核源代码结构,核心源码的顶层是/usr/src/linux目录,在此目录下可以看到大量子目录:arch这个子目录包含了所有体系结构相关的核心代码。它还包含每种支持的体系结构的子目录,如i386。include这个目录包括了用来重构核心的大多数include文件。对于每种支持的体系结构分别有一个子目录。init此目录包含核心启动代码。mm此目录包含了所有的内存管理代码。与具体体系结构相关的内存管理代码位于arch/mm目录下,例如arch/i386/mm/fault.c。,内核源代码组织,核心模块核心模块代码部分位于核心中部分位于modules包中。核心代码位于kernel/modules.c且其数据结构与核心后台进程kerneld消息位于include/linux/module.h和include/linux/kerneld.h目录中。同时必要时需查阅include/linux/elf.h中的ELF文件格式。,内核源代码组织,阅读Linux内核源代码的基本要求是:操作系统的基本知识。对C语言比较熟悉,最好要有汇编语言的知识和GNUC对标准C的扩展的知识的了解。在阅读之前还应该知道Linux内核源代码的整体分布情况。,内核源代码阅读要求,从对内核源码的分析中,体会到在解决某个具体细节问题时的巧妙方法,如Linux通过Botoom_half机制来加快系统对中断的处理。在源码的分析过程中,受到潜移默化地专业化。感受专业的程序员编写代码的清晰性,兼容性,可移植性放在很重要的位置。,内核源代码阅读好处,内核代码的冗长,和内核体系结构的庞杂,分析内核也是一个很艰难、很需要毅力的事。下面介绍分析代码时的几种方法:弄懂源码的文件组织形式:要分析Linux内核源码,首先必须找到各个模块的位置,即搞清楚源码的文件组织形式。以程序流程为线索:“以程序流程为线索、一线串珠”,就是指根据程序的执行流程,把程序执行过程所涉及到的代码分析清楚。这种方法最典型的应用有两个:一是系统的初始化过程;二是应用程序的执行流程:从程序的装载,到运行,一直到程序的退出。,内核源代码分析方法,以数据结构为基点,触类旁通:结构化程序设计思想认为:数据结构+算法=程序。数据结构体现了整个系统的构架,所以数据结构通常都是代码分析的很好的着手点,对Linux内核分析尤其如此。以功能为中心,各个击破:Linux系统可看作由进程管理机制、内存管理机制、文件系统、硬件驱动、系统调用等几个部分组成。以功能为中心、各个击破,就是指从这五个功能入手,通过源码分析,找出Linux是怎样实现这些功能的。,内核源代码分析方法,使用阅读源代码的工具和交叉参考网站:分析核心的一部分代码通常会要查看其它的几个相关的文件,而且这些文件可能还不在同一个子目录下,很快就会忘记原来在干什么。Windows平台下的源代码阅读工具SourceInsighthttp:/lxr.linux.no/安装VMwareWorkstationV5.5.3redhat,内核源代码分析方法,课后练习和实验,了解UNIX,MSDOS,Linux的历史在自己的机器上安装rethat虚拟机,配置好IP(ifconfig),并在windows下安装ssh,使得能够在ssh下使用Linux熟悉linux文件系统的结构练习linux下常用命令的用法:cd,mkdir,chmod,cp,more,cat,ls,ps,ifconfig,rm,ln,exit,halt等.(注:当在linux下忘记某个命令的用法时,可通过man命令,例如:manmkdir),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!