存储知识、mount挂载理解

来源:互联网 发布:少儿编程是什么意思 编辑:程序博客网 时间:2024/06/14 06:50

嵌入式系统存储知识

Android中mount命令可以得到

/dev/block/mtdblock3 /system yaffs2 rw,relatime 0 0/dev/block/mtdblock4 /cache yaffs2 rw,nosuid,nodev,relatime 0 0/dev/block/mmcblk0p3 /mnt/asec/extdata ext4 rw,nosuid,nodev,noat

MTD的介绍

Linux系统提供了MTD(Memory Technolgy Device,内存技术设备)系统来建立针对Flash设备的统一,抽象的接口。

有了MTD,就不用考虑不同Flash设备带来的差异,这点和FBD(FrameBuffer Device)作用类似。
Linux MTD层次图
Linux MTD层次图

  • MTD将文件系统与底层的Flash存储器进行隔离,这样应用层就无须考虑真实的硬件情况
  • 图中的mtdblock表示MTD块设备。

有了MTD后,就不用关心Flash是NOR还是NAND了。

Flash文件系统

Flash文件系统特性,常见的文件系统(FAT32,NTFS,Ext2)是无法直接在Flash设备上,因为无法重复再Flash用一块存储位置做写入操作(必须事先擦除该块后才能写入)。

为了能够在Flash设备上使用这些文件系统,必须透过一个转换层(Translation Layer),将逻辑地址对应到Flash存储器的物理地址上,以便系统能够把Flash当做普通的磁盘处理器。可以把这一层FTL(Flash Translation Layer),如图:
这里写图片描述
FTL和NFTL转换层示意图

  • 如果使用FAT32或NTFS文件系统,必须通过FTL或NTFL进行转换,其中FTL针对NOR Flash而NTFL针对NAND Flash
  • 尽管有了中间转换层,I/O效率有影响,开发了Flash文件系统,YAFFS应用比较广泛的一种。