UBI文件系统应用中文件被压缩的问题探究
2016-09-23 16:41
351 查看
前提条件,环境是powerpc主控,linux系统(ubi文件系统)。
在项目中用到了nand flash,在对nand flash在进行读、写、擦除测试的过程中出现一个很怪异的现象,写入的是一个4M的二进制文件,nand flash的可用空间有1.5G。突然有一次意识到,本来应该只能写不到400次,但是实际情况是,在剩余空间为128M的情况下,文件写入达1300次。
经过多次实验(实验包括):
1——怀疑是文件中存在大量0xff,使得存储时文件存储时被压缩,于是将做自己造一个文件,没有0xff,结果4M的文件,写入达6000次;
2——用tftp将文件写入,用df -h查看已用空间和可用空间,tftp一个4M的文件到flash,刚写入的时候已用空间是4.1M,经过sync之后已用空间变成了400Kb,惊呆了;
。。。
经过各种实验,推断出将文件写入的时候被压缩了。又做了这样一个实验:
3——一个普通的二进制文件,压缩率很高,但是一个照片,用UltraEdit打开也是二进制文件,但是对它几乎没有什么压缩力度。于是,将做实验的文件换成了一个高清图片,2.16M,显示tftp进去,sync,df -h,已用为2.1M,然后将测试nand的文件换成该图片,写入次数为六百多次。完全可以证明,原来看似很诡异的现象确实和文件压缩相关。
再之后,在系统的启动代码中找到了关于文件压缩的信息:
其中,default compressor: lzo表明默认的压缩方法是lzo,而百度一下可知lzo是一种致力于解压速度的数据压缩算法。
最后,在一篇关于ubi文件系统的文章中找到理论解释,此处给出文章链接:
http://www.360doc.com/content/12/0305/19/1317564_192019619.shtml
在项目中用到了nand flash,在对nand flash在进行读、写、擦除测试的过程中出现一个很怪异的现象,写入的是一个4M的二进制文件,nand flash的可用空间有1.5G。突然有一次意识到,本来应该只能写不到400次,但是实际情况是,在剩余空间为128M的情况下,文件写入达1300次。
经过多次实验(实验包括):
1——怀疑是文件中存在大量0xff,使得存储时文件存储时被压缩,于是将做自己造一个文件,没有0xff,结果4M的文件,写入达6000次;
2——用tftp将文件写入,用df -h查看已用空间和可用空间,tftp一个4M的文件到flash,刚写入的时候已用空间是4.1M,经过sync之后已用空间变成了400Kb,惊呆了;
。。。
经过各种实验,推断出将文件写入的时候被压缩了。又做了这样一个实验:
3——一个普通的二进制文件,压缩率很高,但是一个照片,用UltraEdit打开也是二进制文件,但是对它几乎没有什么压缩力度。于是,将做实验的文件换成了一个高清图片,2.16M,显示tftp进去,sync,df -h,已用为2.1M,然后将测试nand的文件换成该图片,写入次数为六百多次。完全可以证明,原来看似很诡异的现象确实和文件压缩相关。
再之后,在系统的启动代码中找到了关于文件压缩的信息:
UBIFS: default file-system created UBIFS: mounted UBI device 0, volume 0, name "application" UBIFS: file system size: 1776975872 bytes (1735328 KiB, 1694 MiB, 3416 LEBs) UBIFS: journal size: 33292288 bytes (32512 KiB, 31 MiB, 64 LEBs) UBIFS: media format: w4/r0 (latest is w4/r0) UBIFS: default compressor: lzo UBIFS: reserved for root: 4952683 bytes (4836 KiB)
其中,default compressor: lzo表明默认的压缩方法是lzo,而百度一下可知lzo是一种致力于解压速度的数据压缩算法。
最后,在一篇关于ubi文件系统的文章中找到理论解释,此处给出文章链接:
http://www.360doc.com/content/12/0305/19/1317564_192019619.shtml
相关文章推荐
- SAM9X25文件系统ubi使用问题
- Android系统wifi之p2p(wifi直连)配置文件权限导致应用不能使用wifi问题
- UBI文件系统 nand驱动子页支持问题
- Nginx的配置与部署(12)应用模块之Memcached做文件缓存时压缩引起的问题
- ubi文件系统制作,还是"-c"选项的问题
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- 通过eclipse卸载系统应用、文件的导出导入操作以及elcipse操作常见问题分析
- Linux——文件与文件系统的压缩和打包(更重要的应用是备份)
- Ubuntu系统下解决压缩文件乱码问题
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- UBI文件系统遇到的问题
- 高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
- 使用NandFlash、ubi文件系统时需要的问题
- 如何使用C#压缩文件及注意的问题!
- UNIX系统平台下文件上传慢问题解决
- 一个文件搞定系统所有问题 推荐
- 调整文件系统的目录结构(弥补空间不足问题)
- C#解决大文件压缩的问题
- 如何使用C#压缩文件及注意的问题!
- kfs嵌入式文件系统应用指南(二)