网站大量收购闲置独家精品文档,联系QQ:2885784924

第八章 嵌入式Linux 的内核.pptVIP

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 Agenda 8.1 Linux 内核概述 8.2 Linux 内核模块简介 8.3 Linux 的编译和定制 8.4 Linux 系统调用举例 8.1 Linux 内核概述 8.1.1 Linux 内核和功能结构 8.1.2 Linux 内核源代码布局 8.1.3 内核的移植 8.1.1 Linux 内核和功能结构 内核(kernel)是操作系统的内部核心程序,它向外部提供了对计算机系统资源进行请求和管理的调用接口和服务 内核 可以将操作系统的代码分成两部分: 内核所在的地址空间称为内核空间; 而在内核以外,剩下的程序统称为外部管理程序,它们大部分是对外围设备的管理和界面操作,外部管理程序与用户进程所占据的地址空间称为外部空间。 通常,一个程序会跨越两个空间。 当执行到内核空间的一段代码时,称程序处于内核态 当程序执行到外部空间代码时,称程序处于用户态。 8.1.1 Linux 内核和功能结构 常见的OS内核有两个模式: 微内核(micro-kernel) 单一内核(Monolithic kernel) 微内核 在微内核结构中,操作系统的内核只需要提供最基本,最核心的一部分操作(比如创建和删除任务,内存管理,中断管理等) 其他的管理程序(如文件系统,网络协议栈等)则尽可能地放在内核以外。这些外部程序可以独立运行,并对应用程序提供操作系统服务,服务之间使用进程间通信机制(IPC)进行交互。只在需要内核的协助时,才通过一套接口对内核发出调用请求。 微内核优点 使操作系统具有良好的灵活性。使得操作系统内部结构变得简单清晰。 在内核以外的外部程序分别独立运行,其间并不互相关联。这样,可以对这些程序分别进行维护和拆装,只要遵循已经规定好的界面,就不会对其他程序有任何干扰。这使得程序代码在维护上十分方便,体现了面向对象软件的结构特征。 微内核的不足 首先,程序代码之间的相互隔离,使得整个系统丧失了许多优化的机会; 其次,部分资源浪费在外部进程之间的通信上(进程间通信的开销要比直接的函数调用大),这样,微内核结构在效率上必然低于传统的单一内核结构,这些效率损失将作为结构精简的代价。 总体上说,在当前的硬件条件下,微内核在效率上的损失小于其在结构上获得的效益,故而选取微内核成为操作系统的一大潮流。 8.1.1 Linux 内核和功能结构 Linux内核属于单一内核 参与Linux系统开发的程序员大多数为世界各地的黑客们。比起结构的清晰,他们更加注重功能的强大和高效率的代码。 他们将大量的精力花在优化代码上,而这样的全局性优化必然以损失结构精炼作为代价,导致Linux中的每个部件都不能被轻易拆出,否则必然破坏整体效率。 Linux内核 虽然Linux是一个单一内核操作系统,但它与传统的单一内核UNIX操作系统不同。 在普通单一内核系统中,所有内核代码都是被静态编译和链接的。 而在Linux中,可以动态装入和卸载内核中的部分代码。Linux中将这样的代码段称做模块(module),并对模块给予了强有力的支持。在Linux中,可以在需要时自动装入和卸载模块。 8.1.1 Linux 内核和功能结构 Linux内核的结构 8.1.1 Linux 内核和功能结构 Linux 内核主要由5 个模块构成,它们分别是: 进程调度模块:控制进程对CPU 资源的使用 内存管理模块:确保所有进程能够安全地共享机器主内存区;虚拟内存管理 文件系统模块:支持对外部设备的驱动和存储 进程间通信模块:支持多种进程间的信息交换方式 网络接口模块:提供对多种网络通信标准的访问并支持许多网络硬件 内核模块之间的依赖关系 内核模块之间的依赖关系 所有的模块都与进程调度模块存在依赖关系。因为它们都需要依靠进程调度程序来挂起(暂停)或重新运行它们的进程。通常,一个模块会在等待硬件操作期间被挂起,而在操作完成后才可继续运行。 内核模块之间的依赖关系 进程调度子系统需要使用内存管理器来调整一特定进程所使用的物理内存空间。 进程间通信子系统则需要依靠内存管理器来支持共享内存通信机制。 虚拟文件系统也会使用网络接口来支持网络文件系统(NFS),同样也能使用内存管理子系统来提供内存虚拟盘(ramdisk)设备。 而内存管理子系统也会使用文件系统来支持内存数据块的交换操作。 8.1.2 Linux 内核源代码布局 安装的时候,如果选择了Kernel Develop,则会在/usr/scr/linux下找到源代码 根据各个目录的名字,可以容易猜出各个目录里面的文件的功能 8.1.2 Linux 内核源代码布局 Documentation arch drivers fs include init ipc lib mm net …

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档