Linux启动过程综述78094.pdfVIP

  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启动过程综述78094

章来源:http :///thread-2-1-3.html 在 Alpha/AXP 平台上引导 Linux 通常有两种方法,一种是由 MILO 及其他类似的引导程序引导,另一种是由Firmware 直接引导。MILO 功能与 i386 平台的LILO 相近,但内置有基本的磁盘驱动程序(如 IDE 、SCSI 等),以及常见的 件系统驱动程序(如ext2 ,iso9660 等), firmware 有ARC 、SRM 两种形式,ARC 具有类BIOS 界面,甚至还 有多重引导的设置;而SRM 则具有功能强大的命令行界面,用户可 以在控制台上使用boot 等命令引导系统。ARC 有分区(Partition )的 概念,因此可以访问到分区的首扇区;而SRM 只能将控制转给磁盘 的首扇区。两种firmware 都可以通过引导MILO 来引导Linux ,也可 以直接引导Linux 的引导代码。 arch/alpha/boot”下就是制作Linux Bootloader 的 件。 head.S”文件 提供了对 OSF PAL/1 的调用入口,它将被编译后置于引导扇区(ARC 的分区首扇区或SRM 的磁盘0 扇区),得到控制后初始化一些数据结 构,再将控制转给 main.c”中的start_kernel(),start_kernel() 向控制台 输出一些提示,调用pal_init()初始化PAL 代码,调用openboot() 打 开引导设备 (通过读取Firmware 环境),调用load()将核心代码加载 到START_ADDR (见 include/asm-alpha/system.h”),再将Firmware 中的核心引导参数加载到 ZERO_PAGE(0) 中,最后调用 runkernel() 将控制转给0x100000 的kernel,bootloader 部分结束。 Bootloader 中使用的所有 srm_”函数在 arch/alpha/lib/”中定义。 以上这种 Boot 方式是一种最简单的方式,即不需其他工具就能引导 Kernel,前提是按照 Makefile 的指导,生成bootimage 件,内含以 来源 (欢迎查看):http :///thread-2-1-3.html 章来源:http :///thread-2-1-3.html 上提到的bootloader 以及vmlinux ,然后将 bootimage 写入自磁盘引 导扇区始的位置中。 当采用 MILO 这样的引导程序来引导 Linux 时,不需要上面所说的 Bootloader,而只需要 vmlinux 或 vmlinux.gz,引导程序会主动解压 加载内核到0x1000 (小内核)或0x 100000 (大内核),并直接进入内 核引导部分,即本文的第二节。 对于I386 平台 i386 系统中一 都有BIOS 做最初的引导工作,那就是将四个主分区 表中的第一个可引导分区的第一个扇区加载到实模式地址 0x7c00 上,然后将控制转交给它。 在 arch/i386/boot” 目录下,bootsect.S 是生成引导扇区的汇编源码,它 先将自己拷贝到0x90000 上,然后将紧接其后的setup 部分(第二 扇区)拷贝到0x90200 ,将真正的内核代码拷贝到0x 100000 。以上这 些拷贝动作都是以bootsect.S、setup.S 以及vmlinux 在磁盘上连续存 放为前提的,也就是说,我们的bzImage 文件或者zImage 件是按 照bootsect,setup , vmlinux 这样的顺序组织,并存放于始于引导分 区的首扇区的连续磁盘扇区之中。 bootsect.S 完成加载动作后,就直接跳转到0x90200 ,这里正是setup.S 的程序入口。 setup.S 的主要功能就是将系统参数 (包括内存、磁盘 等,由BIOS 返回)拷贝到 0x90000-0x901FF 内存中,这个地方正是 bootsect.S 存放的地方,这时它将被系统参数覆盖。以后这些参数将 由保护模式下的代码来读取。 来

文档评论(0)

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

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

1亿VIP精品文档

相关文档