文档和网页对此并不十分清楚。这是一种Linux技术吗?这是一种存储设备吗?
其他一些问题:
发布于 2016-01-03 23:54:17
大多数常规linux系统(以及更一般的unix )都使用称为块设备的存储抽象。块设备是块(扇区)的序列。可以读取或写入单个块。有一个假设,读或写顺序块将比随机读写更快,一个假设是可以重复写到同一个地方,另一个假设是可以安全地写入单个扇区而不会干扰附近的其他扇区。
对于磁盘驱动器来说,这是一个很好的模型。这不是一个很好的闪存模型。
在重写闪存之前,必须将其擦除.擦除电路相对复杂,因此擦除块(特别是在NAND闪存中)通常比写块大得多。每个擦除块只能在失败前被擦除有限的次数。因此,为了最大限度地延长使用寿命,需要一种机制来平衡整个设备的磨损。
有两种方法。一种方法是创建一个控制器,该控制器提供一个标准块设备接口,并通过将逻辑块重映射为不同的物理块来处理磨损平整,并在某些情况下将“冷”(很少修改)数据从低磨损块移动到高磨损块。这意味着可以使用任何正常的文件系统,但是重映射系统很难正确实现。特别是正确处理电力故障是非常困难的。这是SSD、USB卡、SD卡等使用的方法。
另一种方法不是假装flash是磁盘驱动器,而是创建一个直接代表闪存芯片的新设备类型。然后,文件系统(或者泛在ubi层的情况下)承担起磨损平整的责任。Linux调用这样的设备,mtd设备。与硬盘驱动器一样,每个设备可以被分割成多个分区(尽管IIRC分区通常是由系统固件而不是闪存设备上的分区表定义的)。这种方法经常出现在嵌入式设备、智能手机和类似智能手机的平板电脑中。
发布于 2016-01-03 12:15:49
与往常一样,最好的描述是维基百科。
基本上,它是一个抽象层(linux设备驱动程序),在嵌入式系统的车载闪存设备和所呈现的块设备之间,操作系统可以看到。
https://unix.stackexchange.com/questions/252982
复制相似问题