YAFFS

YAFFS
Desarrollador Charles Manning
Nombre completo Yet Another Flash File System
Sistemas operativos compatibles Android, Linux, Windows CE, pSOS, eCos, ThreadX
Características
[ editar datos en Wikidata]

YAFFS (de sus siglas inglés: Yet Another Flash File System, Sólo otro sistema de ficheros flash) es el primer sistema de ficheros que fue diseñado específicamente para Memoria Flash NAND, fue ideado por Charles Manning para la compañía Aleph One.

Es un sistema de ficheros de registros con soporte a transacciones que automáticamente provee wear leveling para prolongar la vida útil de las memorias Flash y robustez ante fallos de energía. Además funciona bien sobre grandes dispositivos Flash, en términos de tiempo de inicio y uso de RAM. Se usa actualmente en productos como Linux o WinCE, que ha probado ser realmente fiable. Una variante llamada "YAFFS/Direct" se usa en situaciones donde no hay sistema operativo, sino que hay un sistema operativo empotrado o son sistemas empotrados sin SO: tiene el mismo núcleo como sistema de ficheros pero una interfaz mucho más simple para el sistema operativo y el hardware NAND de la flash.

El sistema de ficheros se publica con licencia GPL y la licencia por producto de Aleph One.

Diseño

El diseño de YAFFS tienen como prioridades las siguientes cuestiones:

  • Memoria Flash NAND como soporte fundamental.
  • Robustez a través de las estrategias de registro.
  • Reducir significativamente la sobrecarga de RAM y los tiempos de inicio derivados de JFFSx.

Los datos de un fichero son almacenados en "trozos" consistentes con el tamaño de una página (por ej. 512B). Cada página es marcada con un identificador de fichero y un número de trozo, los números de trozo se numeran como 1, 2, 3, etc., siendo 0 la cabecera. Estas etiquetas son almacenadas en la región de datos dispersos de la memoria Flash. El número de trozo se determina dividiendo la posición del fichero por el tamaño de trozo.

Cada página dentro de un bloque debe escribirse en orden secuencial, y cada página se debe escribir una sola vez.

Cuando los datos son sobrescritos, los trozos relevantes son reemplazados por nuevas páginas escritas conteniendo los nuevos datos pero las mismas etiquetas. Los datos sobrescritos se marcan como "descartados". Las cabeceras de los ficheros son almacenados en una única página, marcada para ser diferenciada de las demás. Un bloque con sólo páginas descartadas es un bloque sucio candidato para la recolección de basura. En otro caso, las páginas válidas pueden ser copiadas a un solo bloque para que todo un bloque sucio puede ser utilizado en la recolección de basura.

Other Languages
English: YAFFS
日本語: YAFFS
русский: YAFFS
中文: YAFFS