Alpha平台Linux引导详解:Bootloader与Firmware的作用
需积分: 1 140 浏览量
更新于2024-09-21
收藏 32KB DOCX 举报
"本文概述了Linux在Alpha/AXP平台上的启动过程,主要涉及Bootloader的角色,包括MILO和Firmware两种引导方式。MILO类似于i386平台的LILO,具有内置的磁盘驱动和文件系统支持。Firmware分为ARC和SRM,两者都可通过引导MILO或直接引导Linux的引导代码来启动系统。Linux Bootloader的实现主要由'arch/alpha/boot'目录下的文件完成,包括'head.S'和'main.c'等,它们负责初始化数据结构,加载内核,并将控制权交给kernel。"
在Alpha/AXP架构的Linux系统启动过程中,Bootloader起着至关重要的作用。它分为两个主要的引导途径:一是通过MILO或其他类似引导程序,二是直接由Firmware引导。MILO是一个功能丰富的引导加载程序,它可以识别和处理多种磁盘驱动(如IDE和SCSI)以及文件系统(如ext2和iso9660)。此外,Firmware有ARC和SRM两种形态,前者提供类似BIOS的图形界面,后者则拥有强大的命令行交互。
在具体实现上,Bootloader的代码主要位于'arch/alpha/boot'目录下。'head.S'是入口点,用于调用OSFPAL/1并加载到引导扇区。一旦获得控制权,它会初始化数据结构,然后将执行权传递给'main.c'中的'start_kernel()'函数。'start_kernel()'执行一系列初始化操作,如输出提示信息,初始化PAL代码,打开引导设备,加载内核到内存特定地址,并将引导参数加载到内存零页。最后,它调用'runkernel()'将控制权交给kernel的入口点0x100000,完成Bootloader的任务。
如果使用MILO作为引导程序,Bootloader的步骤会简化,MILO会自动解压缩内核(可能是vmlinux或vmlinux.gz)并将其加载到内存中,然后直接启动内核,无需上述手动编译和写入引导扇区的过程。
Linux在Alpha/AXP平台上的启动涉及Bootloader与Firmware的协同工作,以及Bootloader内部的复杂流程,包括初始化、加载内核以及传递控制权。理解这些过程对于系统维护、故障排查以及优化具有重要意义。
2008-11-14 上传
2023-06-06 上传
2023-06-06 上传
2023-08-09 上传
2023-03-16 上传
2023-07-14 上传
2024-01-18 上传
2023-03-16 上传
2023-07-28 上传
b03040604
- 粉丝: 2
- 资源: 12
最新资源
- 社交媒体营销激励优化策略研究
- 终端信息查看工具:qt框架下的输出强制抓取
- MinGW Win32 C/C++ 开发环境压缩包快速入门指南
- STC8G1K08 PWM模块实现10K频率及易改占空比波形输出
- MSP432电机驱动编码器测路程方法解析
- 实现动静分离案例的css/js/img文件指南
- 爱心代码五种:高效编程的精选技巧
- MATLAB实现广义互相关时延估计GCC的多种加权方法
- Hive CDH Jar包下载:免费获取Hive JDBC驱动
- STC8G单片机实现EEPROM及MODBUS-RTU协议
- Java集合框架面试题精讲
- Unity游戏设计与开发资源全集
- 探索音乐盒.zip背后的神秘世界
- Matlab自相干算法GUI界面设计及仿真
- STM32智能小车PID算法实现资料
- Python爬虫实战:高效爬取百度贴吧信息