第四篇 LINUX系统初始化.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4 章 系统初始化 第4 章 系统初始化 当你想要运行程序时,你需要把程序的文件名敲入 shell ――或者更为流行的,在如 GNOME 或者 KDE 等之类桌面环境中点击相应的图标――这样就能将其装载进内核并运 行。但是,首先必须有其它的软件来装载并运行内核;这通常是诸如LOADLIN 或者LILO 之类的内核引导程序。更进一步,我们还需要其它的软件来装载运行内核引导程序――称之 “内核引导程序的引导程序”――而且看起来似乎运行内核引导程序的引导程序也需要内核 引导程序的引导程序的引导程序,等等,这个过程是无限的。 这个无限循环的过程必然最终在某个地方终止,这就是硬件。因此,在最低的层次上, 启动系统的第一步是从硬件中获得帮助。该硬件总是运行一些短小的内置程序――软件,但 是这些软件是被固化在只读存储器中,存储在已知地址中。因此,在这种情况下就不需要软 件引导程序了――它能够运行更大更复杂的程序,直到内核自身装载成功为止。按照这种方 式,系统自己的引导过程(bootstrap )会引发系统的启动,当然这只是术语“系统引导 (booting )”的一个比喻。虽然不同体系结构的引导过程的具体细节差异很大,但是它们的 原则都基本相同。 前面的工作都完成以后,内核就已经成功装载了。随后内核可以初始化自身以及系统的 其它部分。 本章首先将简单介绍基于x86 PC 机的典型自启动方式,接着回顾一下每一步工作在什 么时机发生,最后我们还要介绍的是内核的相应部分。 引导PC 机 本节简要介绍x86 PC 是如何引导的。本节的目的不是让你精通PC 是怎样引导的―― 这超出了本书的范围――而是向你展示特定体系结构一般的引导方式,为下文中的内核初始 化进行铺垫。 首先,机器中的每个CPU 都要自行初始化,接着可能要用几分之一秒的时间来执行自 测试。在多处理器的系统中,这个过程会更复杂些――但是实际上也并不多。在双处理器的 Pentium 系统中,一个CPU 总是作为主CPU 存在,另外一个CPU 则是辅CPU 。主CPU 执 行启动过程中的剩余工作,随后内核才会激活辅CPU 。在多处理器的Pentium Pro 系统中, CPU 必须根据Intel 定义的算法“抢夺标志”――来动态决定由哪个CPU 启动系统。取得标 志的CPU 启动系统,随后内核激活其它的CPU 。无论是哪种情况,启动程序的剩余部分只 与一个CPU 有关。这样,在随后的一段时间内,我们可以认为该系统中只有一个CPU 是可 用的,而不考虑其它的CPU ,或者说这些CPU 被暂时隐藏了。另一方面,内核还需要明确 的激活所有其它的CPU ――这一点你可以在本章后续部分看到。 接下来, CPU 从0xfffffff0 单元中取得指令并执行,这个地址非常接近于32 位CPU 的 最后可用的地址。因为大多数PC 都没有4GB 的RAM ,所以通常在这个地址上并没有实际 内存的。内存硬件可以虚拟使用它。对那些确实有4GB 内存的机器来说,它们也只是仅仅 损失了供BIOS 使用的顶端地址空间末尾的少量内存(实际上BIOS 在这里只保留了64K 的 空间――这种损失在4GB 的机器中是可以忽略的)。 该地址单元中存储的指令是一条跳转指令,这条指令跳转到基本输入输出(BIOS )代 码的首部。BIOS 内置在主板中,它主要负责控制系统的启动。请注意CPU 实际上并不真正 关心BIOS 是否存在,这样就使得在诸如用户定制的嵌入系统之类的非PC 体系结构的计算 - 34 - 第4 章 系统初始化 机中使用Intel 的CPU 成为可能。CPU 执行在目标地址中发现的任何指令,在这里使用跳转 指令转移到BIOS 只是PC 体系结构的一部分。(实际上,跳转指令自己是BIOS 的一部分, 但是这不是考虑这个问题的最方便的方法。) BIOS 使用内置的规则来选择启动设备。通常情况下,这些规则是可以改变的,方法是 在启动过程开始时按下一个键(例如,在我的系统中是 Delete 键)并通过一些菜单选项浏 览选择。但是,通常的过程是BIOS 首先试图从软盘启动,如果失败了,就再试图从主硬盘 上启动。如果又失败了,就再试图从CD-ROM 上启动。为了使问题更具体,这里讨论的情 况假定是最普通

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档