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 系统中

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

GitHub 加速计划 / li / linux-dash
13
2
下载
A beautiful web dashboard for Linux
最近提交(Master分支:4 个月前 )
186a802e added ecosystem file for PM2 5 年前
5def40a3 Add host customization support for the NodeJS version 5 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐