Ext3、Ext4、FAT、FAT32、NTFS、exFAT、Sparse、Raw

最近在做的事情,设涉及到稀疏文件相关的知识。同时这个稀疏的东西是ext4。

ext4这个东西是我以前装虚拟机的时候留下的映像,但是具体是什么,我也不是很了解。这里来进行个扫盲。

都是文件系统。知道这个就行了,具体的单个内容,需要了可以针对性学习。

EXT3、EXT4

文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,其中包含:EXT2、EXT3、EXT4、FAT、FAT32等。那么Linux系统中ext3和ext4有什么不同

1、更大的文件系统和更大的文件

ext3:16TB文件系统和最大2TB文件;

ext4:1EB文件系统和最大16TB文件。

2、无限数量的子目录

ext3:32000个子目录;

ext4:无限数量的子目录。

3、Extents

ext3:采用间接块映射,当操作大文件时,效率极其低下。比如一个100MB大小的文件,在ext3中要建立25600个数据块的映射表。

ext4:引入了Extents概念,每个Extent为一组连续的数据块,上述文件则表示为该文件数据保存在接下来的25600个数据块中,提高了不少效率。

4、多块分配

ext3的数据块分配器每次只能分配一个4KB的块,写一个100MB文件就要调用25600次数据块分配器,而ext4的多块分配器multiblock allocator支持一次调用分配多个数据块。

5、延迟分配

ext3的数据块分配策略是尽快分配,而ext4是尽可能地延迟分配,直到文件在cache中写完才开始分配数据块并写入磁盘,这样就能优化整个文件的数据块分配,与前两种特性搭配起来可以显著提升性能。

6、inode相关特性

ext3:128byte;

ext4:256byte。

FAT、FAT32、NTFS、exFAT

FAT、FAT32、NTFS和exFAT是U盘的常见分区格式,一般情况下,U盘格式是FAT和FAT32。

随着技术的进步,文件所占内容越来越大,FAT和FAT32格式已经不能满足用户的需求,越来越多用户选择将U盘格式转为NTFS或exFAT。

一、FAT(FAT16)文件系统

   这是MS-DOS和最早期的WIN95操作系统中最常见的硬盘分区格式。它采用16位的文件分配表,能支持最大为2GB的硬盘分区。

FAT文件系统优点:FAT(FAT16)是目前应用最为广泛和获得操作系统最多的一种磁盘分区格式,几乎所有的操作系统都支持这一种格式,从DOS WINDOWS95/98/NT/ME/2000/XP,甚至LINUX都支持这种分区格式。

FAT文件系统缺点:最大只支持2GB的分区,而且每个分区最多只能有65525个簇。因此磁盘利用效率非常 低。因为在DOS和WINDOWS系统中,磁盘文件的分配是以簇为单位的,一个簇只分配给一个文件使用,不管这个文件占用整个簇容量的多少。这样,即使一 个文件很小的话,它也要占用一个簇,剩余的空间便全部闲置在那里,形成了磁盘空间的浪费。由于分区表容量的限制,FAT的分区越大,磁盘上每个簇的容量也 越大,造成的浪费也越大。

    FAT文件系统,目前除了一些特殊应用之外,基本上已经不再使用了。试想下,目前主流的硬盘容量已经达到1TB(1TB=1024GB)了,假如使用FAT格式的话,每个分区最大只能2GB,那么电脑里面会有多少个盘符呀!

二、FAT32文件系统

   相信大家对FAT32文件系统不会太陌生,毕竟从Win98开始,FAT32就已经的到了广泛的应用。FAT32格式采用32位的文件分配表,使其对磁盘 的能力大大增强,突破了FAT16对每一个分区的容量只有2GB的限制。Win95以上的操作系统都支持FAT32格式。

FAT32文件系统优点:突破了FAT对每一个分区的容量只有2GB的限制,可以支持大到2TB(2048G)的分区。在不超过8GB的分区容量下,每个簇的容量都固定为4KB,与FAT16相比,可以大大减少磁盘的浪费,提高磁盘利用率。

FAT32文件系统缺点:用 FAT32格式分区的磁盘,由于文件分配表的扩大,运行速度比采用FAT16格式分区的磁盘要慢,且DOS系统和某些早期的应用软件不支持这种分区格式。 另外还有一个致命的缺点让FAT32逐渐被淘汰,这就是FAT32的单个文件最大只能支持4GB。现在已经进入高清时代,720P和1080P高清视频文 件都很容易超过4GB,因此FAT32已经走向没落。

三、NTFS文件系统

   NTFS是从Windows XP系统开始逐渐成为主流的磁盘格式,是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。支持NTFS磁盘格式的操作系统有:WINDOWS NT、WINDOWS2000、WINDOWS2003、WINDOWS XP、WINDOWS vista、WINDOWS7等。因此NTFS目前仍是主流的磁盘格式,有大量用户在使用。

NTFS文件系统优点:NTFS分区具有极高的安全性和稳定性,在使用中不易产生文件碎片。它能对用户的操作 进行记录,通过对用户权限进行非常严格的限制,使每个用户只能按照系统赋予的权限进行操作,充分保护了系统与数据的安全。另外对大部分用户而言,NTFS 最直观的优点是,单个文件的大小突破了FAT32的4GB的限制。

NTFS文件系统缺点:NTFS虽然有诸多优点,但这些都是针对传统机械硬盘而设计的,对于新兴的Flash 闪存材料不一定适用。NTFS分区是采用“日志式”的文件系统,因为要记录磁盘的详细读写操作,对U盘这种闪存储介质会造成较大的负担,比如同样存取一个 文件或目录,在NTFS系统上的读写次数就会比FAT32来得多,理论上NTFS格式的U盘比较容易损坏,而且400MB以下的分区也比FAT16更浪费 空间。

四、exFAT文件系统

exFAT是近年才出现的格式,主要针对移动存储设备,什么闪存、U盘等。因为FAT32格式单个文件不能超过4G,使用NTFS格式又容易损坏闪存芯片,所以才开发EXFAT格式来解决这些问题。

exFAT文件系统优点:分区大小和单文件大小最大可达16EB(16×1024×1024TB);簇大小非 常灵活,最小0.5KB,最高达32MB;采用了剩余空间分配表,空间利用率更高;同一目录下最大文件数可达65536个;支持访问控制;支持 TFAT(WINCE早期文件系统)。可以看出,ExFAT就是闪存专用的文件系统,只有U盘和存储卡才能格式化成exFAT,传统硬盘是无法格式化成 exFAT格式的,因为exFAT的特性其实并不比NTFS强,但却比NTFS及FAT32更适合闪存使用。

exFAT文件系统缺点:exFAT作为一种全新的文件系统,在电脑上的兼容性却不太好,目前主流的XP和Vista默认都不支持ExFAT,XP需升级至SP3补丁、Vista需升级至SP1补丁才能支持它。当然微软也提供了exFAT的单独更新文件,Win7默认支持。

Sparse、Raw

系统镜像是地址ROM最常使用的一个镜像,用于存储Android系统的核心文件,System.img就是设备中system目录的镜像,里面包含了Android系统主要的目录和文件。

一般这些文件是不允许修改的。系统镜像对应的文件名一般叫system.img,当然,系统镜像的文件可以任意命名,之所以叫system.img,是为了与生成镜像文件之前的system目录保持一致,这样比较容易与其他类型的镜像文件区分。

但是该文件经常以两种格式出现:raw和sparse。

一种是raw ext4 image,即经常说的raw image,使用file观察它: 其特点是完整的ext4分区镜像(包含很多全零的无效填充区),可以直接使用mount进行挂载,因此比较大(一般1G左右)。

另外一种是sparse ext4 image,即常常说的simg,就是说是一个很是普通的dat文件(DAT文件,可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义)。因为它将raw ext4进行稀疏描述,所以尺寸比较小(没有全零的无效填充区,通常在300到500M之间)。

android自己提供了源代码工具在二者之间转换,源代码位于:

system/core/libsparse/simg2img.c // 将sparse image转换为raw image;

system/core/libsparse/img2simg.c // 将raw image转换为sparse image;

两种文件,sparse是对raw压缩后进行传输,这也提升了速度。

参考资料:

https://www.php.cn/linux-491663.html

https://blog.csdn.net/zjy764219923/article/details/106764765

https://www.jianshu.com/p/a686b6c63675

https://blog.csdn.net/weixin_35823048/article/details/117846394

猜你喜欢

转载自blog.csdn.net/weixin_45264425/article/details/127160215