没有合适的资源?快使用搜索试试~ 我知道了~
对Linux系统的启动过程做的总结
资源详情
资源评论
资源推荐
http://www-900.ibm.com/developerWorks/cn/linux/kernel/startup/index.shtml
Linux 启动过程综述
杨沙洲(pubb@163.net)
2001 年 5 月
本文以 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 部分结束。
“arch/alpha/boot/bootp.c”以“main.c”为基础,可代替“main.c”与“head.S” 生成用于 BOOTP 协议网络引导的
Bootloader。
Bootloader 中使用的所有“srm_”函数在“arch/alpha/lib/”中定义。
以上这种 Boot 方式是一种最简单的方式,即不需其他工具就能引导 Kernel,前提是按照 Makefile 的指导,生成
bootimage 文件,内含以上提到的 bootloader 以及 vmlinux,然后将 bootimage 写入自磁盘引导扇区始的位置
中。
当采用 MILO 这样的引导程序来引导 Linux 时,不需要上面所说的 Bootloader,而只需要 vmlinux 或
内容:
一 . Bootloader
二 .Kernel
引导入口
三 . 核心数据结构初始化 --
内核引导第一部分
四 . 外设初始化 -- 内核引导
第二部分
五 .init
进程和
inittab
引导指
令
六 .rc
启动脚本
七 .getty
和
login
八 .bash
附: XDM
方式登录
关于作者
tangjiert
- 粉丝: 0
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0