zoukankan      html  css  js  c++  java
  • squashfs文件系统

    一、Squashfs文件系统简介

     squashfs是以linux 内核源码补丁的形式发布,附带mksquashfs工具,用于创建squash文件系统。squashfs可以将整个文件系统或者某个单一的目录压缩在一起, 存放在某个设备, 某个分区或者普通的文件中. 如果你将其压缩到一个设备中, 那么你可以将其直接mount起来使用; 而如果它仅仅是个文件,你可以将其当为一个loopback 设备使用. squashfs文件系统的设计令人欣喜.  For archiving purposes, 它可以让你更加灵活的使用, 而且它比.tar.gz文档有更快的响应速度。

      以下是squash文件系统的特点:
    · 数据(data),节点(inode)和目录(directories)都被压缩。

    · 保存了全部的32位UID/GIDS和文件的创建时间. (注: cramfs是8位,没有创建时间)。

    · 支持多达4G的文件系统. (cramfs是16M)。

    · 节点和目录都是高度压缩, 而且都是存储在字节边界(packed on byte boundaries); 所有压缩的节点长度平均在8个字节左右.(具体的长度根据文件的类型是不同的. 比如, 普通文件,目录,符号链接,块设备和字符设备的节点的大小就不一样)。

    · squashfs可以允许块大小(block size)达32Kb(1.x)和64kb(2.x), 这样可以达到比4K块大小更大的压缩率。

    ·  squashfs 2引进了碎片块(fragment blocks)的概念: 一种将许多比块size 小的文件存储在一个块中, 以达到更大的压缩率。

    · 重复的文件会被检测并删除掉。

    · 同时支持big和little endian架构. SQ可以将文件系统MOUNT到不同的字节顺序(byte-order)的机器上面。

     编译使用SQ的基本步骤:
      1.重新打包和编译Linux内核, 使之支持SQ.
      2.编译mksquashfs工具.
      3.使用mksquashf创建压缩文件系统.
      4.试用: mount suqash文件系统到一个临时目录.
      5.如果需要的话,更改/etc/fstab 或者起始脚本, 以使linux操作系统自动加载新的 squashfs 文件系统.

     squashfs是一个只读压缩文件系统,对嵌入式来说,可以减少成本,在使用nand flash作为存储设备的开发板来说,要使用squashfs首先内核当中要有对squashfs的支持,同时还要有对mtd字符设备和块设备的支持。

    一般可以用于制作Android的ROM分区;

    二、构建squash文件系统

     https://www.ibm.com/developerworks/cn/linux/1306_qinzl_squashfs/

  • 相关阅读:
    IoC就是IoC,不是什么技术,与GoF一样,是一种 设计模式。
    控制反转是Spring框架的核心。
    一种是CI(Constructor Injection)构造方法注入,另一种是SI(Set Injection) set 注入
    IOC 的理解与解释
    java 单例模式5种写法
    AOP(Aspect Oriented Programming),即面向切面编程
    AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题
    ioc和aop的区别?
    JAVA设计模式之单例模式
    详解JNDI的lookup资源引用 java:/comp/env
  • 原文地址:https://www.cnblogs.com/linhaostudy/p/6891041.html
Copyright © 2011-2022 走看看