Chinaunix首页 | 论坛 | 博客
  • 博客访问: 869274
  • 博文数量: 189
  • 博客积分: 4310
  • 博客等级: 上校
  • 技术积分: 1925
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-27 08:56
文章分类

全部博文(189)

文章存档

2015年(1)

2013年(2)

2012年(1)

2011年(39)

2010年(98)

2009年(48)

分类: LINUX

2009-12-01 14:55:19

  在pc上引导linux的过程为从BIOS(基本输入/输出系统)转移到Bootloader,而在嵌入式系统直接运行Bootloader。在X86进入与linux相关代码之前,会经历如下阶段。
  (1)当系统上电或复位时,CPU会将PC指针赋值为一个特定的地址0xFFFF0,并执行该地址处的指令,在PC中,该地址位于BIOS中,它保存在主板上的ROM或Flash中。
  (2)BIOS运行时按照CMOS的设置定义的启动设备顺序来搜索处于活动状态,并且可以引导的设备,若从硬盘启动,BIOS会将硬盘MBR(主引导记录)中的内存加载到RAM、MBR是一个512字节大小的扇区,位于磁盘上的第一个扇区中(0道0柱而1扇区)。当MBR被加载到RAM中之后,BIOS就会将控制权交给MBR。
  (3)主引导加载程序查找并加载次引导加载程序。它在分区表中查找活动分区,当找到一个活动分区时,扫描分区表中的其他分区,以确保它们都不是活动的,当这个过程验证完成之后,就将活动分区的引导记录从至二个设备中读入RAM中并执行它。
  (4)次引导加载程序加载linux内核和可选的初始RAM磁盘,并将控制权交linux内核源代码。
  (5)运行被加载的内核,并启动用户空间应用程序。
 
 
 具有如下特征就可以成为Bootloader
  (1)可以再系统上电或复位的时候以某种方式执行,这些方式包括被BIOS引导执行,直接在NOR Flash中执行,NAND Flash中的代码被MCU自动复制到内部或外部RAM执行等。
  (2)能将U盘,磁盘,光盘,NOR/NAND Flash,ROM,SD卡等存储介质,或将网口,串口中的操作系统加载到RAM,并把控制权交割操作系统源代码执行。
 
当内核映像被加载到RAM之后,Bootloader的控制权被释放。内核映像并不是可直接执行的目标代码,而是一个压缩过zImage或bzImage或uImage
 
并非zImage和bzImage或uImage映像中的一切都是被压缩的部分,映像中包含未被压缩的部分,这部分中包含解压缩程序,解压缩程序会解压缩映像中被压缩的部分,
 
 
 
阅读(615) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~