El sistema de archivos flash con registro (o JFFS ) es un sistema de archivos estructurado en registros para su uso en dispositivos de memoria flash NOR en el sistema operativo Linux . Ha sido reemplazado por JFFS2 .
Diseño
La memoria flash (específicamente la memoria flash NOR ) debe borrarse antes de escribir en ella. El proceso de borrado tiene varias limitaciones:
- El borrado es muy lento (normalmente entre 1 y 100 ms por bloque de borrado, lo que supone entre 10³ y 10⁵ veces más lento que la lectura de datos de la misma región).
- Solo es posible borrar la memoria flash en segmentos grandes (normalmente de 64 KiB o más), mientras que se puede leer o escribir en bloques más pequeños (a menudo de 512 bytes).
- La memoria flash solo se puede borrar un número limitado de veces (normalmente entre 10³ y 10⁶ ) antes de que se desgaste.
Estas limitaciones se combinan para producir una profunda asimetría entre los patrones de acceso de lectura y escritura a la memoria flash. En contraste, los discos duros magnéticos ofrecen un acceso de lectura y escritura casi simétrico: la velocidad de lectura y la de escritura son prácticamente idénticas (ya que ambas están limitadas por la velocidad de giro del disco), es posible leer y escribir pequeños bloques o sectores (normalmente de 512 o 4096 bytes), y no existe un límite práctico al número de veces que se puede escribir y reescribir en los medios magnéticos.
Los sistemas de archivos tradicionales, como ext2 o FAT , diseñados para su uso en medios magnéticos, suelen actualizar sus estructuras de datos in situ, actualizando estructuras como inodos y directorios en el disco tras cada modificación. Esta marcada falta de nivelación de desgaste hace que los sistemas de archivos convencionales no sean adecuados para la lectura y escritura en dispositivos flash.
JFFS aplica la nivelación de desgaste tratando el dispositivo flash como un registro circular. Todos los cambios en archivos y directorios se escriben al final del registro en nodos . En cada nodo, primero se escribe una cabecera con metadatos, seguida de los datos del archivo, si los hay. Los nodos se encadenan mediante punteros de desplazamiento en la cabecera. Los nodos comienzan siendo válidos y luego se vuelven obsoletos cuando se crea una versión más reciente.
El espacio libre restante en el sistema de archivos es el espacio entre el principio y el final del registro. Cuando este espacio se agota, un recolector de basura copia los nodos válidos del principio al final y omite los obsoletos, recuperando así espacio.
Véase también
Referencias
Fuentes
- Woodhouse, David (2003-07-09). "JFFS2: The Journalling Flash File System, versión 2" . SourceWare.org . Recuperado el 2022-10-03 .
Enlaces externos
- Página principal de JFFS (ya no se mantiene). Archivada el 20 de enero de 2017 en Wayback Machine.
- Lista de correo para desarrolladores de JFFS. Archivada el 21 de agosto de 2010 en Wayback Machine.
- Sistemas de archivos flash compatibles con el kernel de Linux