Linux启动过程详解:从开机到登录

需积分: 1 0 下载量 117 浏览量 更新于2024-09-15 收藏 38KB DOC 举报
"本文详细介绍了Linux在Alpha/AXP平台上的启动过程,特别是Redhat 6.0 Linux 2.2.19版本。启动流程包括Bootloader阶段,涉及MILO引导程序、Firmware(ARC和SRM)的作用,以及内核加载的详细步骤。" 在Linux操作系统启动过程中,Bootloader扮演着至关重要的角色。对于Alpha/AXP架构的机器,有两种常见的引导方式:一是通过MILO引导,二是由Firmware直接引导。MILO类似于i386平台的LILO,拥有基本的磁盘驱动和文件系统支持,能引导Linux并加载内核。另一方面,Firmware分为ARC和SRM两种形式,两者都有不同的引导功能和用户交互界面。 1. MILO引导:MILO内置了IDE、SCSI等磁盘驱动和ext2、iso9660等文件系统驱动,使得它可以直接从特定的分区或磁盘首扇区引导Linux。通过编写在`arch/alpha/boot`目录下的代码,如`head.S`和`main.c`,实现引导过程。`head.S`首先被编译并放置在引导扇区,初始化数据结构,然后调用`start_kernel()`开始内核的加载。 2. Firmware引导:ARC提供类似BIOS的界面,支持多重引导设置,可以访问分区首扇区。SRM则具有命令行界面,用户可以直接使用`boot`命令引导系统。虽然SRM无法直接访问分区,但它能将控制权交给磁盘首扇区。 启动流程中,`start_kernel()`会打印一些启动信息,初始化PAL代码,打开引导设备,加载核心代码到内存,并将Firmware中的引导参数加载到内存特定位置。最终,控制权传递给内核,Bootloader的使命完成。 如果使用MILO这样的引导程序,需要生成包含Bootloader和vmlinux的bootimage文件,写入磁盘的引导扇区。这种方式无需其他工具,但要求遵循Makefile的指示进行操作。 在采用MILO引导时,Bootloader会处理更复杂的任务,比如识别和加载内核映像,而Firmware则主要负责机器的基本初始化和控制权转移。理解这些启动细节对于调试和优化Linux系统的启动性能至关重要。