详解 linux的启动过程

来源:不详 责任编辑:栏目编辑 发表时间:2013-07-02 01:22 点击:

本文以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的程序入口。
setup.S的主要功能就是将系统参数(包括内存、磁盘等,由BIOS返回)拷贝到
0x90000-0x901FF内存中,这个地方正是bootsect.S存放的地方,这时它将被系统参数覆盖。
以后这些参数将由保护模式下的代码来读取。
     
除此之外,setup.S还将video.S中的代码包含进来,检测和设置显示器和显示模式。最
后,setup.S将系统转换到保护模式,并跳转到0x100000(对于bzImage格式的大内核是
0x100000,对于zImage格式的是0x1000)的内核引导代码,Bootloader过程结束。
     
        对于2.4.x版内核
       
没有什么变化。
     
     

Kernel引导入口
     
    &n

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • ESC键实用方法介绍
    • 索尼 SONY OEM Windows XP PRO SP3 CD-KEY 序列号
    • 10招最有效防电脑辐射方法
    • 一个问题阻止windows正确检查此机器的许可证 错误代码为:0x8007
    • 强行删除文件夹及工具
    • 笔记本屏幕倒了过来如何恢复正常
    • EPSON EPL-6200L激光打印机打印时“通讯错误”
    • 电脑开机弹出SCSIAdapter硬件驱动安装向导的原因及解决方案
    • 845主板鼠标口,USB都异常
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1