网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
天线制作 GPS 地标
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | Open source | GNU | Linux | BSD | Solaris | AIX | HP-UX | IRIX | Mac OS X | Minix | Tru64 | SCO UNIX | Network | Security | X-Window | Database | 应用服务 | Programming | 经典著作 | 永远的纪念 | 杂项
 当前位置: Home > Linux > 嵌入式系统 > Boot loader > 文章  
Bootloader存在的必要性
文章来源: good02xaut.21ic.org 文章作者: good02xaut 发布时间: 2006-10-29   字体: [ ]  
 

  Bootloader的功能决定了在引导Linux系统时,必须使用bootloader,除非你对linux内核进行了修改。

  Bootloader有两个主要功能:

  1.在发布模式,自动引导linux系统,为系统初始化各种参数。

  2.在调试模式,要能够方便的下载内核,引导内核。

  Linux系统一定要bootloader支持吗?

  答:是的。通用的Linux内核,启动时需要很多参数,这些参数必须通过bootloader传递。而且内核一般是压缩存放到外存上的,从外存到内存的拷贝也是由bootloader完成。

  Bootloader为什么不和kernel放到一起呢?

  答:不可以这样做。从bootloader的第二个功能就知道,bootloader是不能和内核放到一起。当然,在发布模式时,是可以集成到一起的,通常没必要。

  从哪里可以得到bootloader?

  答:目前通用的bootloader很多,不论是嵌入式还是桌面系统,比如lilo,grub,blob等。桌面用的bootloader我们就不讨论了,重点说一下嵌入式领域用的bootloader。采用通用的bootloader功能强大,开发容易,而且由专人维护升级,不过多是针对特定的CPU或者特定开发板的。如果是学习,推荐自己开发bootloader。

  如何编写自己的bootloader?

  答:编写一个bootloader只要能够完成前面提到的两个功能就可以了。分别描述一下这两个功能的实现:

  1.该功能比较简单,就是从FLASH中拷贝数据到RAM。如果内核的存放不是基于文件系统的,直接采用汇编就可以完成块拷贝。然而如果内核存放在文件系统之上,比如内核存放到了基于ext2文件系统的CF卡上。首先我们的bootloader要能够访问CF卡,然后要能够识别文件系统,只有这样才能正确找到内核文件并拷贝到内存中。

  2.该功能一般通过串口实现。对于ARM来说,驱动串口比较容易,直接从主机的串口接收内核数据存放到RAM中,就可以启动内核了。如果需要发布,还要实现把内核从RAM烧写到外存的能力。

  为了提高速度,充分挖掘开发板和CPU的潜力,出现了许多用网口和USB接口下载内核的bootloader。使用网口,bootloader必须提供网卡驱动和TCP/IP协议的支持。使用USB接口,需要提高大容量存储类驱动。

  为了拓展思路,你也可以使用红外,存储卡接口进行数据下载。使用红外接口,和串口基本一样,无非就是没有了连线。使用存储卡,通常需要文件系统的支持。比如,我们使用XD卡存放内核,在主机交叉编译好内核后,把内核存放到XD卡上。然后将XD卡插到目标板的插槽中,bootloader必须有能力把XD卡上的内核拷贝的RAM中,过程参考功能1的实现。

--
原文链接: http://blog.21ic.com/more.asp?name=good02xaut&id=8299

 
推荐文章
·ARM的嵌入式Linux移植体验之Boot
·嵌入式系统 Boot Loader 技术内
 
 
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
相关分类
热点文章
·U-Boot简介
·U-BOOT的启动流程及移植
·ARM的嵌入式Linux移植体
·嵌入式系统 Boot Loader
·U-Boot在S3C2410上的移
·bootloader的加载和运行
相关文章
·bootloader的加载和运行
·ARM的嵌入式Linux移植体
·ARM的嵌入式Linux移植体
·ARM的嵌入式Linux移植体
·Linux PDA和手持PC一览
·嵌入式Linux系统中的GUI
·QTE/Qtopia在Liod-270上
·嵌入式Linux操作系统启
更多...
 
 

Copyright(c) 2001-2009 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统