stringtranslate.com

Sistema de archivos Flash

Un sistema de archivos flash es un sistema de archivos diseñado para almacenar archivos en dispositivos de almacenamiento basados ​​en memoria flash . Si bien los sistemas de archivos flash están estrechamente relacionados con los sistemas de archivos en general, están optimizados para la naturaleza y las características de la memoria flash (por ejemplo, para evitar la amplificación de escritura ) y para su uso en sistemas operativos particulares .

Descripción general

Si bien una capa de dispositivo de bloque puede emular una unidad de disco para que se pueda utilizar un sistema de archivos de propósito general en un dispositivo de almacenamiento basado en flash, esto no es óptimo por varias razones:

Los sistemas de archivos estructurados en registros tienen todas las propiedades deseables para un sistema de archivos flash. [1] Dichos sistemas de archivos incluyen JFFS2 y YAFFS .

Debido a las características particulares de la memoria flash, se utiliza mejor con un controlador para realizar la nivelación del desgaste y la corrección de errores o con sistemas de archivos flash diseñados específicamente , que distribuyen las escrituras en el medio y se ocupan de los largos tiempos de borrado de los bloques flash NAND. El concepto básico detrás de los sistemas de archivos flash es: cuando se debe actualizar el almacenamiento flash, el sistema de archivos escribirá una nueva copia de los datos modificados en un bloque nuevo, reasignará los punteros de archivo y luego borrará el bloque antiguo más tarde cuando tenga tiempo.

En la práctica, los sistemas de archivos flash se utilizan solo para dispositivos de tecnología de memoria (MTD), que son memorias flash integradas que no tienen un controlador. Las tarjetas de memoria flash extraíbles y las unidades flash USB tienen controladores integrados para administrar MTD con algoritmos dedicados, [2] [3] como nivelación de desgaste, recuperación de bloques defectuosos, recuperación de pérdida de energía, recolección de basura y corrección de errores , por lo que el uso de un sistema de archivos flash tiene un beneficio limitado. Sin embargo, algunos sistemas de archivos flash, como APFS y F2FS , se pueden utilizar en dispositivos flash basados ​​en FTL como SSD y eUFS .

Los dispositivos de memoria basados ​​en flash son cada vez más frecuentes a medida que aumenta el número de dispositivos móviles, disminuye el costo por tamaño de memoria y aumenta la capacidad de los chips de memoria flash.

Orígenes

El primer sistema de archivos flash, que gestionaba una matriz de flash como un disco de libre escritura, fue TrueFFS de M-Systems de Israel, presentado como producto de software en la PC-Card Expo en Santa Clara, California , en julio de 1992 y patentado en 1993. [4]

Uno de los primeros sistemas de archivos flash fue FFS2 de Microsoft , para usar con MS-DOS , lanzado en otoño de 1992. [5] FFS2 fue precedido por un producto anterior, llamado "FFS", que sin embargo no llegó a ser un sistema de archivos flash, ya que administraba una matriz flash como espacio de escritura única y lectura múltiple (WORM) en lugar de como un disco de escritura libre.

Alrededor de 1994, el grupo industrial PCMCIA aprobó la especificación Flash Translation Layer (FTL), basada en el diseño de TrueFFS de M-Systems. La especificación fue creada y propuesta conjuntamente por M-Systems y SCM Microsystems, quienes también proporcionaron las primeras implementaciones funcionales de FTL. Con el respaldo de Intel, [6] FTL se convirtió en un diseño popular de sistema de archivos flash también en medios que no eran PCMCIA.

Sistemas de archivos flash de Linux

JFFS, JFFS2 y YAFFS
JFFS fue el primer sistema de archivos específico para flash en Linux , pero fue rápidamente reemplazado por JFFS2 , desarrollado originalmente para flash NOR. Luego, en 2002, se lanzó YAFFS , que se ocupaba específicamente de flash NAND, y JFFS2 se actualizó para que también admitiera flash NAND.
UBIFS
UBIFS se ha fusionado desde Linux 2.6.22 [7] en 2008. UBIFS se ha desarrollado activamente desde su fusión inicial. [8] UBIFS tiene documentación alojada en infradead.org junto con los controladores JFFS2 y MTD. Algunas comparaciones iniciales muestran que UBIFS tiene una compresión más rápida que F2FS. [9]
Sistema de archivos LogFS
LogFS , otro sistema de archivos flash específico de Linux, se está desarrollando actualmente para abordar los problemas de escalabilidad de JFFS2.
F2FS
F2FS (Flash-Friendly File System) se agregó al kernel de Linux 3.8. [10] En lugar de estar destinado a comunicarse directamente con dispositivos flash sin procesar, F2FS está diseñado para usarse en dispositivos de almacenamiento basados ​​en flash que ya incluyen una capa de traducción flash, como tarjetas SD . [11]

Sistemas de archivos de unión

Overlayfs, Unionfs y aufs son sistemas de archivos de unión que permiten combinar varios sistemas de archivos y presentarlos al usuario como un solo árbol. Esto permite al diseñador del sistema colocar partes del sistema operativo que son nominalmente de solo lectura en medios diferentes a las áreas normales de lectura y escritura. OpenWrt generalmente se instala en chips flash sin FTL. Utiliza overlayfs para combinar un SquashFS comprimido de solo lectura con JFFS2 .

Capas de traducción

Véase también

Referencias

  1. ^ Arnd Bergmann (18 de febrero de 2011). "Optimización de Linux con unidades flash económicas". LWN.net . Consultado el 26 de enero de 2013 .
  2. ^ "Controlador USBkey PS2251-63 de Phison". Archivado desde el original el 28 de julio de 2011. Consultado el 26 de mayo de 2011 .
  3. ^ OpenNFM: una memoria FTL NAND de código abierto para SSD y módulos de almacenamiento integrados
  4. ^ Patente estadounidense 5404485, "Sistema de archivos Flash, Amir Ban" 
  5. ^ "Patente de Microsoft FFS2". Archivado desde el original el 19 de diciembre de 2016. Consultado el 9 de enero de 2009 .
  6. ^ "Comprensión de la especificación de la capa de traducción Flash (FTL)" (PDF) . Intel . Diciembre de 1998. Archivado desde el original (PDF) el 19 de julio de 2014 . Consultado el 27 de julio de 2015 .
  7. ^ Jonathan Corbet (2 de abril de 2008). "UBIFS". LWN.
  8. ^ Richard Weinberger (24 de septiembre de 2012). "UBI: solicitud de inclusión de Fastmap". LKML.
  9. ^ Neil Brown (11 de diciembre de 2012). "JFFS2, UBIFS y el crecimiento del almacenamiento flash". LWN.
  10. ^ "Sistemas de archivos y almacenamiento". Registro del núcleo: disponible en la versión 3.8 . The H. 2013-01-21 . Consultado el 2013-01-23 .
  11. ^ Neil Brown (10 de octubre de 2012). "An f2fs teardown" (Desmontaje de un juego f2fs). LWN.net . Consultado el 9 de abril de 2014 .

Enlaces externos