cramfs

cramfs

  CRAMFS文件系统是专门针对闪存设计的只读压缩的文件系统,其容量上限为256M,采用zlib压缩,文件系统类型可以是EXT2或EXT3.
  如果使用RAMDISK方式来使用文件系统,那么在系统运行之后,首先得把flash上的 映像文件全部解压到ram中,构造ramdisk环境,才可以运行程序,但有一个致命的弱点,在正常情下,同样的代码不仅在flash占用了空间,而且还在ram中占用极大的空间,这违背了 嵌入式中节省资源的原则.
  cramfs文件系统并不需要一次性地将文件系统中的所有内容解压到ram中,而只是当系统需要访问某个位置的数据时,马上计算出该数据在cramfs中的位置,将其解压到ram中,然后通过内存访问来获取数据,cramfs中的 解压缩之后的内存中的数据存放位置都是由cramfs文件系统本身来管理,用户并不需要实现过程,因此增加了透明度,给开发人员节约了时间.
   cramfs拥有以下一些特性:
  采用实时 解压缩方式,但解压缩的时候有延迟。
  cramfs的数据都是经过处理、打包的,对其进先写操作有一定困难。所以cramfs不支持写操作,这个特性刚好适合 嵌入式应用中使用Flash 存储文件系统的场合。
  在cramfs中,默认文件最大不能超过16MB,可以通过修改cramfs-1.1/linux/ cramfs_fs.h下的CRAMFS_SIZE_WIDTH的大小来支持最大为256MB的单个文件,当然linux 内核参数也要修改(include/linux/cramfs_fs.h)成相同的参数。
  支持组标识(gid),但是mkcramfs只将gid的低8位保存下来,因此只有这8位是有效的。
  支持 硬链接。但是cramfs并没有完全处理好, 硬链接文件属性中,链接数仍然为1.
  cramfs的目录中,没有“.”和“..”这两项。因此,cramfs中的目录的链接数通常也仅有一个。
  cramfs中,不会保存文件的 时间戳(timestamps)信息。当然,正在使用的文件由于inode保存在内存中,因此其时间可以暂时地变更为最新时间,但是不会保存到cramfs文件系统中去。
  当前版本的cramfs只支持PAGE_CACHE_SIZE为4096的 内核。因此,如果发现cramfs不能正常读写的时候,可以检查一下 内核的参数设置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值