Linux原理与结构 作者 郭玉东 全书 第3章.pptVIP

Linux原理与结构 作者 郭玉东 全书 第3章.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
  与其它所有软件一样,Linux内核也是从入口点开始执行的。Linux内核的入口点程序又称为初始化程序,其任务是为Linux操作系统的运行做好必要的准备,如将内核映像在物理内存的适当位置展开、获取计算机各组成部分的配置参数、建立各种管理用的数据结构、启动各类守护进程、建立人机交互环境等。   然而,Linux内核是一个驻留在外存(如硬盘、光盘等)中的程序,在运行之前必须先将其读入物理内存。将Linux内核由外存读入内存的工作称为引导,完成引导工作的程序称为引导程序。 引导程序也是驻留在外存的程序,在运行之前需要先将其读入物理内存。将引导程序读入内存的工作由BIOS(Basic Input Output System)完成。BIOS驻留在非易失性内存(如Rom、Flash Memory)中,不需要再被引导。   引导程序在将Linux内核读入物理内存之后,将控制权交给内核头部的实模式初始化程序。实模式初始化程序先完成实模式状态下的初始化工作,再将处理器切换到保护模式,而后转入解压缩程序。解压缩程序将内核映像解压到物理内存的预定位置,而后将处理器的控制权交给内核的首部程序。内核首部程序完成内核的正式初始化,引领内核进入正常工作状态。   引导与初始化过程是操作系统中各种管理制度的创建过程,是运行环境的建立过程,是理解操作系统的关键,也是分析操作系统的切入点。      当计算机被加电或Reset时,Intel处理器和系统芯片组会完成一系列内建的自检和初始化工作,如将处理器的操作模式设为实模式并关闭其分页机制,将CS中的选择符设为0xF000、基地址设为0xFFFF0000,将EIP的初值设为0x0000FFF0等。 硬件初始化完成之后,处理器开始执行指令,第一条指令的地址由CS和EIP决定,为0xFFFFFFF0。根据芯片组的初始约定,地址0xFFFFFFF0位于一块Flash Memory中,是BIOS的入口。因此,系统开机以后,处理器最先执行的是BIOS程序。   BIOS检测整个计算机系统,收集系统的基本配置信息并将其记录在内存的BIOS 数据区中(如在物理内存最低4 KB处的基本数据、ACPI描述表、MP表等);而后根据系统的软硬件配置信息,选择引导设备(如硬盘、光盘、U盘等), 并将其第一扇区中的内容读入到物理内存的0x7C00处;最后跳转到0x7C00,开始执行第一扇区上的程序。由于BIOS只能读入一个扇区的内容,因而它无法担负起引导操作系统的重任。   引导设备的第一扇区可能是硬盘的主引导记录MBR(Master Boot Record),也可能是引导程序(如GRUB)的首部。MBR会检查硬盘的分区表,找到活动分区,而后读入活动分区的第一扇区(Boot Sector),再由该扇区上的程序读入活动分区上的引导程序;引导程序首部会将自己的剩余部分读入内存。 总之,由于系统配置的不同,引导程序的读入过程会有所不同,但从BIOS读入的第一扇区开始,肯定能够将完整的引导程序读入到物理内存。   引导程序的核心工作是将Linux内核从外存读入到内存,并将其摆放在内存的适当位置。被编译、连接后的Linux内核是一个大的可执行文件,由三部分组成:   (1) 主体部分是将要在保护模式或64位模式中运行的内核映像,已被压缩。   (2) 在压缩的内核映像之前有一段解压缩程序,用于解压内核映像。   (3) 文件头部是一段实模式初始化程序,用于将处理器切换到保护模式。   由于处理器最初运行在实模式中,能够直接访问的内存空间只有1 MB,因而引导程序必须将内核的实模式初始化程序放在基本内存(低640 KB)中,但却应将内核映像放置在1 MB以上的位置。   为了缩减内核规模,增加系统的灵活性和适应性,Linux通常将其内核分成基本部分和扩展部分。基本内核实现Linux内核中最基本的管理功能,不随计算机配置的变化而变化;扩展内核则由一些独立的内核模块(如设备驱动程序、文件系统等)组成, 用于扩展基本内核的功能,会随着计算机配置的不同而变化。扩展内核及初始工具软件被组织在独立的initrd或Ramdisk映像文件中,需要引导程序将其一并读入内存。   另外,在引导期间,引导程序还应能与用户交互,接受用户提供的命令行参数(如显示模式、内存大小、initrd文件名等)并将它们传递给内核,以指导内核的初始化。   早期的Linux自己实现引导程序,如Bootsect。目前的Linux使用独立的第三方引导程序,如GRUB。为了完成引导过程中的复杂交互,Linux专门定义了一个引导协议。 引导程序根据引导协议的要求将内核映像摆放在内存中的指定位置,并向内核传递必要的信息;Linux内核根据引导协议和引导程序传递过来的信息,确定内核各部分在内

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档