Articulo de referencia

UBIFS

UBIFS ( Sistema de Archivos UBI , más conocido como Sistema de Archivos de Imagen de Bloques No Ordenados ) es un sistema de archivos flash para dispositivos de memoria flash no...

UBIFS ( Sistema de Archivos UBI , más conocido como Sistema de Archivos de Imagen de Bloques No Ordenados ) es un sistema de archivos flash para dispositivos de memoria flash no administrados. [ 1 ] UBIFS funciona sobre una capa UBI (imagen de bloques no ordenados), [ 2 ] que a su vez está sobre una capa de dispositivo de tecnología de memoria (MTD). [ 3 ] El sistema de archivos fue desarrollado por ingenieros de Nokia con la ayuda de la Universidad de Szeged , Hungría. El desarrollo comenzó formalmente en 2007, con la primera versión estable lanzada para el kernel de Linux 2.6.27 en octubre de 2008. [ 4 ]

Dos diferencias principales entre UBIFS y JFFS2 son que UBIFS admite el almacenamiento en caché de escritura, [ 5 ] y UBIFS tiende a ser pesimista en el cálculo del espacio libre. [ 6 ] UBIFS suele tener un mejor rendimiento que JFFS2 para dispositivos de memoria flash NAND grandes. [ 7 ] Esto es consecuencia de los objetivos de diseño de UBIFS: [ 8 ] montaje más rápido, acceso más rápido a archivos grandes y velocidades de escritura mejoradas. UBIFS también conserva o mejora la compresión sobre la marcha, la recuperabilidad y la tolerancia a fallos de alimentación de JFFS2 . [ 8 ] La compresión de datos sobre la marcha de UBIFS permite zlib ( algoritmo deflate ), LZO o Zstandard .

UBIFS almacena los índices en memoria flash, mientras que JFFS2 los almacena en memoria. [ 9 ] Esto afecta directamente la escalabilidad de JFFS2 , ya que las tablas deben reconstruirse cada vez que se monta el volumen. Además, las tablas de JFFS2 pueden consumir tanta RAM del sistema que algunas imágenes podrían quedar inutilizables.

Ingreso Básico Universal

UBI ( Unsorted Block Images ) [ 10 ] es una capa de gestión de bloques de borrado para dispositivos de memoria flash . UBI cumple dos funciones: rastrear los bloques defectuosos de la memoria flash NAND y proporcionar nivelación de desgaste . La nivelación de desgaste distribuye los borrados y escrituras por todo el dispositivo flash. UBI presenta los bloques de borrado lógicos a las capas superiores y los asigna a bloques de borrado físicos. UBI se escribió específicamente para UBIFS para que este no tenga que lidiar con la nivelación de desgaste ni con los bloques defectuosos. Sin embargo, UBI también puede ser útil con squashfs y memoria flash NAND; squashfs no tiene conocimiento de los bloques defectuosos de la memoria flash NAND.

La documentación de UBI explica que no se trata de una capa de traducción flash (FTL) completa. Si bien una FTL también gestiona los bloques defectuosos y la nivelación de desgaste, la interfaz que proporciona es un dispositivo de bloques con sectores pequeños (normalmente de 512 bytes) que se pueden escribir de forma totalmente independiente. En cambio, la interfaz de UBI expone directamente los bloques de borrado y las páginas programables (que tienen tamaños diferentes y son mucho mayores que los sectores típicos de un dispositivo de bloques), y los sistemas de archivos que utilizan UBI deben tener en cuenta los tamaños y las restricciones sobre cómo se deben borrar los bloques antes de escribirlos.

UBI es, en cierto modo, análogo a un Administrador de Volúmenes Lógicos . En su uso típico, en lugar de particionar la memoria flash en regiones fijas, un único dispositivo UBI abarca toda la memoria flash (excepto quizás algunas páginas en ubicaciones fijas reservadas para el gestor de arranque), y se crean múltiples volúmenes dentro del dispositivo UBI. Esto permite que la nivelación de desgaste se distribuya por toda la memoria flash, incluso si algunos volúmenes se escriben con más frecuencia que otros. Los volúmenes UBI pueden ser estáticos (que contienen un archivo o imagen completo escrito una sola vez y protegido por CRC-32 por UBI) o dinámicos (que contienen un sistema de archivos de lectura y escritura responsable de su propia integridad de datos). El único sistema de archivos que admite directamente UBI es UBIFS, pero mediante su uso gluebies posible emular un dispositivo MTD, que luego puede usarse para ejecutar otros sistemas de archivos flash como JFFS2 y YAFFS, y mediante su uso ubiblkes posible emular dispositivos de bloques, que pueden ejecutar sistemas de archivos comunes como Ext4.

Mapa rápido

UBI se mejoró en Linux 3.7 con soporte para fastmap. [ 11 ] [ 12 ] Fastmap mantiene una versión en disco de la información previamente creada en memoria mediante el escaneo de todo el dispositivo flash. En caso de fallos, el código recurre al mecanismo anterior de escaneo completo y los sistemas UBI más antiguos simplemente ignoran la información de fastmap.

Véase también

Referencias

  1. Jonathan Corbet (2 de abril de 2008). "UBIFS" . LWN.net . Consultado el 18 de diciembre de 2016 .
  2. "UBIFS – Sistema de archivos UBI: Gran advertencia" . 22 de enero de 2015. Consultado el 18 de diciembre de 2016. No funciona sobre dispositivos de bloques. UBIFS fue diseñado para funcionar sobre memoria flash sin formato.
  3. "UBIFS – Sistema de archivos UBI: Descripción general" . 22 de enero de 2015. Consultado el 18 de diciembre de 2016 .
  4. Artem Bityutskiy (27 de marzo de 2008). "UBIFS: nuevo sistema de archivos flash" . Consultado el 18 de diciembre de 2016 .
  5. "UBIFS – Sistema de archivos UBI: compatibilidad con escritura diferida" . 22 de enero de 2015. Consultado el 18 de diciembre de 2016 .
  6. "Preguntas frecuentes y guía práctica de UBIFS: ¿Por qué df informa de muy poco espacio libre?" . 18 de diciembre de 2015 . Consultado el 18 de diciembre de 2016 .
  7. "UBIFS – Sistema de archivos UBI: Escalabilidad" . 22 de enero de 2015. Consultado el 18 de diciembre de 2016 .
  8. 1 2 Bityutskiy, Artem; Hunter, Adrian (24 de septiembre de 2008). "Sistema de archivos UBIFS" (PDF) . pág. 9. 
  9. Adrian Hunter (27 de marzo de 2008). "Una breve introducción al diseño de UBIFS" (PDF) .
  10. "UBI – Imágenes de bloques sin clasificar" . 22 de enero de 2015. Consultado el 18 de diciembre de 2016 .
  11. Thomas Petazzoni (3 de octubre de 2012). "UBI fastmap se incorpora al código principal" . Archivado del original el 15 de noviembre de 2012. Consultado el 18 de diciembre de 2016 .
  12. Richard Weinberger (24 de septiembre de 2012). "UBI: Solicitud de inclusión de Fastmap (v18)" . Recuperado el 18 de diciembre de 2016 .