第八章Linux系统结构.ppt_第1页
第八章Linux系统结构.ppt_第2页
第八章Linux系统结构.ppt_第3页
第八章Linux系统结构.ppt_第4页
第八章Linux系统结构.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

1、2010-12-7,1,嵌入式系统操作系统,吴国伟 大连理工大学软件学院,2010-12-7,2,第八章 Linux系统结构,本章首先将简要说明Linux的相关背景,包括诞生和发展、特性等,然后着重介绍Linux的系统结构和内核基本组成,最后详细分析Linux的启动过程。,2010-12-7,3,8.1 Linux简介 8.2 Linux操作系统的结构分析 8.3 Linux内核组成 8.4 Linux内核源码分析 8.5 Linux启动,第八章 Linux系统结构,2010-12-7,4,8.1 Linux简介,Linux诞生和发展 Linux的特点 Linux的发展优势 Linux版本管理

2、 Linux存在的问题 Linux网络学习资源,2010-12-7,5,1. Linux诞生和发展,1984年,曾是比尔盖茨哈佛大学同学的Richard Stallman组织开发了一个完全基于自由软件的软件体系计划GNU(GNU是GNU is Not Unix的缩写),并且拟定了一份通用公共许可证(General Public License,简称GPL)。GPL保证任何人有共享和修改自由软件的自由,任何人都有权取得、修改和重新发布自由软件的源代码,并且规定在不增加附加费用的条件下得到源代码(基本发行费用除外)。这一规定保证了自由软件总体费用是低的,在使用Internet的情况下则是免费的。,

3、2010-12-7,6,在20世纪80年代,著名计算机科学家Andrew S.Tanenbaum教授为了满足教学的需要,自行设计了一个微型Unix操作系统Minix。 在此基础上,1991年,芬兰赫尔辛基大学的学生Linus Benedict Torvalds在自己的Intel 386个人计算机上开发了属于他自己的第一个程序,并利用Internet发布了他开发的源代码,将其命名为Linux,从而创建了Linux操作系统。,2010-12-7,7,Linus Benedict Torvalds,Richard Stallman,2010-12-7,8,到现在为止,Linux已成为具有全部Unix

4、特征、与POSIX兼容的操作系统。近年来,Linux在国际上发展迅速,得到了除微软以外的几乎所有知名软件和硬件公司的支持。支持Linux的硬件公司有IBM、HP、Sun、Intel、AMD、SONY等,软件公司有CA、Oracle、Sybase、Informix、BEA、Borland、Veritas等。这些支持包括提供技术支持、开发Linux的应用软件,从而将Linux系统的应用推向各个领域,使得Linux已经进入到企业级应用。,2010-12-7,9,Linux成功的意义不仅在于Linux操作系统本身,还在于Linus Torvalds所建立的、全新的软件开发方法和Stallman的GNU

5、精神。Linus把Linux奉献给了自由软件,奉献给了GNU,从而使自由软件有了一个良好的发展根基基于Linux的GNU。,2010-12-7,10,Linux是自由软件的杰出代表。1993年Linus Torvalds将Linux系统转向了GPL,并加入了GNU。这一版权上的转变对于Linux的进一步发展起了极其重要的作用。,2010-12-7,11,2. Linux的特点,(1)与Unix兼容 (2)自由软件,源码公开 (3)性能高,安全性强 (4)便于定制和再开发 (5)互操作性高 (6)全面的多任务和真正的32位操作系统。,2010-12-7,12,3. Linux的发展优势,Linu

6、x的迅速发展具有一系列优势,主要包括: (1)开放源码系统从本质上就具有其它系统无法比拟的研制、开发优势。 (2)Linux受到各国政府的大力支持。 (3)得到了全球各大软、硬件公司的支持。 (4)价格优势和安全性。,2010-12-7,13,4. Linux版本管理,发行商所制定的信息 发行名,发行的版本号 Redhat6、Fedora9、Fedora10 Debian3.0_r1、Debian3.0_r5 Ubuntu8.04、Ubuntu9.04、Ununtu9.10 Linux的内核版本号 内核是决定Linux系统性能的核心部分 内核版本号大部分由数字构成 2.4.26、2.6.13、

7、 2.6.33-rc8 15,2010-12-7,14,5. Linux存在的问题,不使用Linux桌面的主要原因还包括应用软件少、使用不方便和功能不完备。 由于Linux版本众多,也影响了其普及和应用。 另外,如何使开发者和经营商获得合理的利润,对于促进Linux的快速、持续的发展也至关重要。,2010-12-7,15,6. Linux网络学习资源,/:Linux 主页 /:Linux 内核主页 .uk:ARM Linux 主页,拥有很多关于ARM Li

8、nux 方面的信息,2010-12-7,16,8.2 Linux操作系统的结构分析,Linux的四个组成部分: Linux内核(kernel) 系统程序 Shell 应用程序,2010-12-7,17,Linux内核,shell,应用程序,2010-12-7,18,1. 内核(kernel),操作系统的核心 它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。,2010-12-7,19,2. 系统程序,为优化系统性能非内核的相应系统程序 包括一系列GNU库及程序组成 例如,临时文件清理程序tmpwatch,网络管理测试工具route、netstat、tcpdum

9、p等,2010-12-7,20,3. shell,shell 用来与用户打交道,并且可以用来协调各个命令。 为了在终端中运行程序,需要 shell,2010-12-7,21,2010-12-7,22,4. 应用程序,在某个特定的L i n u x系统上运行的应用程序集合,它将随着该计算机系统的用途不同而有所变化,但一般会包括文字处理应用程序和Web浏览器。,2010-12-7,23,8.3 Linux内核组成,linux内核由5个主要的子系统构成: 1. 进程调度程序( S C H E D)负责控制进程访问C P U。调度程序所使用的策略可以保证进程能够公平地访问C P U,同时保证内核可以准

10、时执行一些必需的硬件操作。 2. 内核管理程序( M M)使多个进程可以安全地共享机器的主存系统。此外,内核管理程序支持虚拟内存,使得L i n u x可以支持进程使用超过系统中的内存数量的内存。,2010-12-7,24,3. 虚拟文件系统( V F S)。通过提供一个所有设备的公共文件接口, V F S抽象了不同硬件设备的细节。此外, V F S支持与其他操作系统兼容的不同的文件系统格式。 4. 网络接口( N E T)提供了对许多建网标准和网络硬件的访问。 5. 进程间通信( I P C)子系统为单个L i n u x系统上进程与进程之间的通信提供了一些机制。,2010-12-7,25,

11、子系统之间关系,2010-12-7,26,子系统之间关系,其他所有的子系统都依赖于进程调度程序,因为所有的子系统都需要中断和恢复进程的执行。 在进程恢复执行时,进程调度程序将使用内程管理程序来调整硬件内存映射。 进程间通信子系统依赖于内存管理程序来支持共享内存通信机制。,2010-12-7,27,子系统之间关系,虚拟文件系统使用网络接口来支持网络文件系统( N F S),它还使用内存管理程序来提供r a m d i s k设备。 内存管理程序使用虚拟文件系统来支持交换。这是内存管理程序之所以依赖于进程调度程序的唯一原因。当某进程访问的内存当前已经被交换出内存时,内存管理程序请求文件系统从永久性

12、存储设备中去取该内存,并中断该进程。,2010-12-7,28,8.4 Linux内核源码分析,内核源程序代码安装在/usr/src/linux目录下 该目录下还有几个其它目录,每一个都代表一个特定的内核功能性子集,2010-12-7,29,2010-12-7,30,arch:,该目录下的所有子目录中都是体系结构相关的代码。 每个体系结构特有的子目录下都又至少包含三个子目录: kernel,存放支持体系结构特有的诸如信号量处理和SMP之类特征的实现; Lib,存放高速的体系结构特有的诸如strlen和memcpy之类的通用函数的实现; mm,存放体系结构特有的内存管理程序的实现。,2010-1

13、2-7,31,drivers :,drivers目录下包含的代码占整个内核发行版本代码的一半以上。它包括显卡、网卡、SCSI适配器、软盘驱动器,PCI设备和其它任何你可以说出的Linux支持的外围设备的软件驱动程序。,2010-12-7,32,fs,Linux支持的所有文件系统在fs目录下面都有一个对应的子目录。一个文件系统(file system)是存储设备和需要访问存储设备的进程之间的媒介,2010-12-7,33,include,这个目录包含了Linux源程序树中大部分的包含(.h)文件。 这些文件按照下面的子目录进行分组: include/asm-*/这样的子目录有多个,每一个都对应着

14、一个arch的子目录 include/linux/内核和用户应用程序请求特定内核服务时所使用的常量和数据结构在头文件中定义,而该目录中就包含了这些头文件。 ,2010-12-7,34,init,这个目录下面的两个文件中比较重要的一个是main.c,它包含了大部分协调内核初始化的代码,2010-12-7,35,kernel,这个目录中包含了Linux中最重要的部分:实现平台独立的基本功能。这部分内容包括进程调度(kernel/sched.c)以及创建和撤销进程的代码(kernel/fork.c和kernel/exit.c),2010-12-7,36,lib,lib目录包含两部分的内容: lib/

15、inflate.c中的函数能够在系统启动时展开经过压缩的内核 lib目录下剩余的其它文件实现一个标准C库的有用子集。这些实现的焦点集中在字符串和内存操作的函数(strlen,mmcpy和其它类似的函数)以及有关sprintf和atoi的系列函数上。,2010-12-7,37,mm,该目录包含了体系结构无关的内存管理代码,为每个平台实现最低层的原语的体系结构特有的内存管理程序是存储在arch/platform/mm中的。,2010-12-7,38,net,这个目录包含了Linux应用的网络协议代码,例如AppleTalk,TCP/IP,IPX等等,2010-12-7,39,scripts,该目录

16、下没有内核代码,它包含了用来配置内核的脚本。当运行make menuconfig或者make xconfig之类的命令配置内核时,用户就是和位于这个目录下的脚本进行交互的,2010-12-7,40,8.5 Linux启动,分析Linux启动过程 分析Linux内核的第一步 以RedHat9.0和i386平台为例,2010-12-7,41,1. Linux启动过程,接通电源后,CPU会执行第一条指令,通常是使CPU能跳跃到BIOS的入口地址上。 BIOS开始进行开机自检,包括对内存等硬件进行检测,如果存在其它设备的也自带有BIOS (比如SCSI或RAID设置等),也会执行它们。 完成自检后的B

17、IOS会根据设定好的启动设备和启动顺序来启动真正的操作系统,如Linux。,2010-12-7,42,计算机存储设备的组成-ROM Rom中存放bios Bios查找引导加载程序 引导加载程序负责搬运操作系统内核。 Linux的引导加载程序:arch/i386/boot/bootsect.s 它将内核映像和setup.S文件加载到内存相应位置。,2010-12-7,43,内核加载结束后,系统跳转到Setup.S的开始位置开始执行,setup.S仍工作于实模式下。 另一种引导选择:lilo它加载完内核后也跳到Setup.s处执行。,2010-12-7,44,小问题,实模式、保护模式 Setup.

18、S作什么了? Setup.S如何完成实模式到保护模式的转换?,2010-12-7,45,2010-12-7,46,2. 内核初始化,保护模式下运行 如果内核是压缩的,首先执行arch/i386/boot/compressed/中的head.S。 head.S建立堆栈并解压缩内核映像,然后转向arch/i386/kernel下的head.S. 如果内核没压缩,直接执行 arch/i386/kernel下的head.S,2010-12-7,47,2010-12-7,48,小问题,加压后的内核映像存放位置?,2010-12-7,49,Head.S负责BSS,中断描述表IDT,段描述表,页表和寄存器的

19、初始化,最后转入start_kernel()模块。,2010-12-7,50,2010-12-7,51,2010-12-7,52,Start_kernel位于init/main.c中,此时执行与CPU类型无关,在CPU特权模式下运行,即内核模式。 完成了核心数据结构的初始化。,2010-12-7,53,小问题,哪些数据结构初始化?,2010-12-7,54,在start_kernel()的最后,通过调用init()函数,系统创建第一个核心线程,启动了init过程。 Init内核线程占用进程描述表的第一项,由它来创建其他完成系统初始化工作的进程。,2010-12-7,55,Init调用do_basic_setup来初始化外部设备及加载驱动程序。 init()又打开了/dev/console设备,重定向三个标准的输入输出文件stdin、stdout和stderr到控制台. 到此init()函数结束,内核的引导部分也到此结束了,2010-12-7,56,init的进程号是1,是系统所有进程的起点. Linux在完成核内

温馨提示

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

评论

0/150

提交评论