没有合适的资源?快使用搜索试试~ 我知道了~
Linux启动过程综述.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 9 浏览量
2022-06-24
07:05:54
上传
评论
收藏 337KB PDF 举报
温馨提示
试读
9页
Linux启动过程综述.pdfLinux启动过程综述.pdfLinux启动过程综述.pdfLinux启动过程综述.pdfLinux启动过程综述.pdfLinux启动过程综述.pdf
资源推荐
资源详情
资源评论
Linux 启动过程综述
本文以 Redhat 6.0 Linux 2.2.19 for Alpha/AXP 为平台,描述了从开机到登录的 Linux
启动全过程。该文对 i386 平台同样适用。
Bootloader
在 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 文件,内含以上提到的 bootloader 以及 vmlinux,然后
将 bootimage 写入自磁盘引导扇区始的位置中。
当采用 MILO 这样的引导程序来引导 Linux 时,不需要上面所说的 Bootloader,而只需要
vmlinux 或 vmlinux.gz,引导程序会主动解压加载内核到 0x1000(小内核)或 0x100000
(大内核),并直接进入内核引导部分,即本文的第二节。
对于 I386 平台
i386 系统中一般都有 BIOS 做最初的引导工作,那就是将四个主分区表中的第一个可引导
分区的第一个扇区加载到实模式地址 0x7c00 上,然后将控制转交给它。
在“arch/i386/boot”目录下,bootsect.S 是生成引导扇区的汇编源码,它首先将自己拷
贝到 0x90000 上,然后将紧接其后的 setup 部分(第二扇区)拷贝到 0x90200,将真正的
内核代码拷贝到 0x100000。以上这些拷贝动作都是以 bootsect.S、setup.S 以及 vmlinux
在磁盘上连续存放为前提的,也就是说,我们的 bzImage 文件或者 zImage 文件是按照
bootsect,setup, vmlinux 这样的顺序组织,并存放于始于引导分区的首扇区的连续磁
盘扇区之中。
bootsect.S 完成加载动作后,就直接跳转到 0x90200,这里正是 setup.S 的程序入口。
资源评论
a66889999
- 粉丝: 36
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功