ARM Linux启动揭秘:映像生成与执行流程详解
需积分: 11 177 浏览量
更新于2024-09-22
收藏 155KB PDF 举报
ARM Linux 启动过程深入解析
ARM Linux 启动过程是一个复杂且精细的步骤,涉及到操作系统加载到ARM处理器的过程。本文针对AT91SAM9260EK板,以Linux内核版本2.6.211为例,主要探讨了两种不同类型的内核映像:非压缩内核映像和压缩内核映像。
首先,非压缩内核映像是由内核源代码编译、链接生成的,具体步骤如下:
1. 模块开发阶段:内核中的各个模块被编译并链接,形成顶层目录下的vmlinux文件,这是一个ELF格式的可执行映像,通常用于开发环境。
2. 映像转换:使用`arm-linux-objcopy`工具将vmlinux转换为二进制格式的Image文件,常用于部署到目标硬件。
另一种是压缩内核映像,通常称为zImage,它的生成更为复杂:
1. 压缩阶段:对非压缩的arch/arm/boot/Image二进制映像应用gzip压缩,生成piggy.gz文件。
2. 构建阶段:在arch/arm/boot/compressed/目录下,有一个自解压机制,包含piggy.s和head.S两个文件,其中piggy.s定义了gzip文件的数据段,head.S则包含解压内核的代码。同时,vmlinux-lds是链接脚本,用于构建最终的vmlinux映像。
3. 最终转换:再次使用`arm-linux-objcopy`将压缩后的vmlinux映像转换为zImage,这是一种ELF格式的二进制映像,但包含有内核自解压功能。
整个启动过程可以总结为:
- 非压缩内核映像(vmlinux)首先加载到内存,然后通过ELF格式的引导加载程序引导系统。
- 对于压缩内核映像(zImage),在引导过程中,会自动解压缩并执行非压缩内核内容,简化了存储需求。
理解这些细节对于嵌入式系统开发者来说至关重要,因为这直接影响到系统的启动速度、内存占用以及系统的稳定性和可移植性。在实际应用中,根据设备性能和资源限制,选择合适的内核映像类型是必要的。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-01-19 上传
2009-04-19 上传
2022-12-18 上传
2009-09-01 上传
2009-05-19 上传
binnary_01
- 粉丝: 9
- 资源: 26
最新资源
- 教你怎么写批处理.txt
- C语言 描述 数据采集 程序
- Oracle9i 数据库管理基础 I Ed 1.1 Vol.1
- intel平台的ELF 文件格式
- High.Performance.MySQL_Second.Edition.pdf
- 基于_NET企业信息资源管理系统的设计与实现
- Linux操作系统编程入门
- Ethereal用户手册.pdf
- 基于UDP通信协议的设计与实现
- 红外遥控系统原理及单片机软件解码实例
- 三言两语话Erlang
- java编程入门知识
- NET SQL Server数据访问抽象基础类
- linux 菜鸟过关
- Android 入门教程
- Oracle+9i&10g编程艺术:深入数据库体系结构