为什么嵌入式LINUX内核和根文件系统分开存放

http://wxqxq520.blog.sohu.com/164207588.html 


Flash 的分区可以根据需要划分,uClinux 中支持Flash 存储器的块设备驱动负责定义上述的分区和PC 机下的Linux 不同,Flash 的分区把系统内核文件和根文件系统单独划分到两个分区中,而PC 机的硬盘是把内核文件和根文件系统放在一个分区内。PC 机下Linux 的Bootloader 是LILO 或GRUB。它们在系统启动时能智能地在分区中找到内核文件块, 并把它加载到RAM 中运行。对于Flash 而言,把内核的镜像文件写进一个单独的分区对嵌入式系统有两大优点:

① 系统可以直接在Flash 上运行;
② LILO 或GRUB 更易找到内核代码并加载,甚至可以不用LILO 或GRUB 引导而直接运行。
内核文件和根文件系统在Flash 中的放置,可以根据系统设计需要适当选择, 选择如表1 所列。

模式选择优点缺点
内核和根文件系统放在固定偏移地址单元(单独分区)适用于主要系统成员地址单元固定,易于引导程序( Bootloader)加载和分别升级内核和根文件系统在内核和根文件系统之间不可避免要浪费Flash 空间
根文件系统紧跟内核放置(不单独分区)节省Flash 存储空间内核文件和根文件系统合二为
一,单独升级不够方便
内核和根文件系统压缩放置节省大量的Flash 存储空间,可选择压缩放置内核或根文件系统系统需要引导程序(Bootloader)和RAM 支持

可见,一般LINUX 内核镜像都是压缩的,因为对于X86系列处理器,系统启动初期,处于实模式状态,
可以寻得的地址空间十分有限,如果内核过大,就无法加载(还记得dos吗?因为dos只能工作在实模式,这就是
Dos下的应用程序不能超过640k的原因)。待内核加载完毕,系统被置成保护模式,32根地址线可以寻得4G地址,于是可以将被压缩过的内核展开了...有些处理器,如alpha,就没有这一限制。

对于嵌入式LINUX 而言,根文件系统有好多种,有直读的,有读写的,有专门针对NORFLASH的,有专门针对NANDFLASH 的,等等,因此,当然如果把 内核镜像放到根文件系统中的话,必须要BOOTLOAD 支持相应的文件系统,否则也无法读取并加载内核到RAM中,因此无法启动,基于这几点,因此,一般FLASH 系统中

内核和根文件系统放在固定偏移地址单元(单独分区)的,

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值