UBIFS ( Sistema de archivos UBI , más sistema de archivos de imágenes en bloque sin clasificar ) es un sistema de archivos flash para dispositivos de memoria flash no administrados . [1] UBIFS funciona sobre una capa UBI (imagen de bloque sin clasificar), [2] que está en la parte superior de una capa de dispositivo de tecnología de memoria (MTD). [3] El sistema de archivos es desarrollado por ingenieros de Nokia con la ayuda de la Universidad de Szeged , Hungría. El desarrollo comenzó en serio en 2007, con la primera versión estable del kernel 2.6.27 de Linux en octubre de 2008. [4]
Desarrollador (es) | Nokia con la ayuda de la Universidad de Szeged |
---|---|
Nombre completo | Sistema de archivos de imagen de bloque sin clasificar |
Introducido | 2008 kernel de Linux 2.6.27 | con el
Estructuras | |
Contenidos del directorio | Árboles B + |
Limites | |
Caracteres permitidos en nombres de archivo | Cualquier byte excepto NUL y barra diagonal "/" [ cita requerida ] |
Características | |
tenedores | sí |
Atributos | sí |
Permisos del sistema de archivos | POSIX |
Compresión transparente | sí |
Otro | |
Apoyados sistemas operativos | Linux |
Dos diferencias principales entre UBIFS y JFFS2 son que UBIFS admite el almacenamiento en caché de escritura, [5] y UBIFS yerra en el lado pesimista del cálculo del espacio libre. [6] UBIFS tiende a funcionar mejor que JFFS2 para dispositivos NAND FLASH grandes. [7] Esto es una 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 preserva o mejora la compresión sobre la marcha, la capacidad de recuperación y la tolerancia a fallas de energía de JFFS2 . [8] La compresión de datos sobre la marcha de UBIFS permite zlib ( algoritmo de desinflado ), LZO o Zstandard .
UBIFS almacena índices en flash, mientras que JFFS2 almacena índices del sistema de archivos en la memoria. [9] Esto impacta directamente en la escalabilidad de JFFS2 ya que las tablas deben reconstruirse cada vez que se monta el volumen. Además, las tablas JFFS2 pueden consumir suficiente RAM del sistema, por lo que algunas imágenes pueden quedar inutilizables.
RBU
UBI ( Imágenes de bloque sin clasificar ) [10] es una capa de gestión de bloques de borrado para dispositivos de memoria flash . UBI tiene dos propósitos, rastrear bloques defectuosos de flash NAND y proporcionar nivelación del desgaste . La nivelación de desgaste distribuye los borrados y escribe en todo el dispositivo flash. UBI presenta bloques de borrado lógico a capas superiores y los asigna a bloques de borrado físicos. UBI fue escrito específicamente para UBIFS para que UBIFS no tenga que lidiar con nivelación de desgaste y bloques defectuosos. Sin embargo, UBI también puede ser útil con squashfs y flash NAND; squashfs no es consciente de los bloques defectuosos de flash NAND.
La documentación de UBI explica que no es una capa de traducción flash completa (FTL). Aunque un FTL también maneja bloques defectuosos y nivelación de desgaste, la interfaz que proporciona un FTL es un dispositivo de bloque con sectores pequeños (típicamente de 512 bytes) que se pueden escribir de forma completamente independiente. Por el contrario, la interfaz de UBI expone directamente los bloques de borrado y las páginas programables (que son de diferentes tamaños y mucho más grandes que los sectores de dispositivos de bloques típicos), y los sistemas de archivos que usan UBI deben conocer los tamaños y restricciones sobre cómo se deben borrar los bloques antes de escribirlos. .
UBI es en cierto modo análogo a Logical Volume Manager . En el uso típico, en lugar de dividir la memoria flash en regiones fijas, un solo dispositivo UBI abarca toda la memoria flash (excepto quizás algunas páginas en ubicaciones fijas reservadas para el cargador de arranque) y se crean varios volúmenes dentro del dispositivo UBI. Esto permite que la nivelación del desgaste se extienda por todo el 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 completo o una imagen escrita una vez y protegida por CRC-32 por UBI) o dinámicos (que contienen un sistema de archivos de lectura-escritura que es responsable de su propia integridad de datos). El único sistema de archivos que admite directamente UBI es UBIFS, pero al usarlo gluebi
es posible emular un dispositivo MTD, que luego se puede usar para ejecutar otros sistemas de archivos flash como JFFS2 y YAFFS, y al usar ubiblk
es posible emular dispositivos de bloque, que pueden ejecutar sistemas de archivos comunes como Ext4.
Fastmap
UBI se amplió en Linux 3.7 con soporte para mapas rápidos. [11] [12] Fastmap mantiene una versión en disco de la información creada previamente en la memoria al escanear todo el dispositivo flash. El código recurre al mecanismo anterior de un escaneo completo de fallas y los sistemas UBI más antiguos simplemente ignorarán la información del mapa rápido.
Ver también
Referencias
- ^ Jonathan Corbet (2 de abril de 2008). "UBIFS" . LWN.net . Consultado el 18 de diciembre de 2016 .
- ^ "UBIFS - Sistema de archivos UBI: gran nota roja" . 22 de enero de 2015 . Consultado el 18 de diciembre de 2016 .
No funciona sobre dispositivos de bloque. UBIFS fue diseñado para funcionar sobre flash sin formato.
- ^ "UBIFS - Sistema de archivos UBI: descripción general" . 22 de enero de 2015 . Consultado el 18 de diciembre de 2016 .
- ^ Artem Bityutskiy (27 de marzo de 2008). "UBIFS - nuevo sistema de archivos flash" . Consultado el 18 de diciembre de 2016 .
- ^ "UBIFS - UBI File-System: soporte de escritura" . 22 de enero de 2015 . Consultado el 18 de diciembre de 2016 .
- ^ "Preguntas frecuentes y CÓMO de UBIFS: ¿Por qué df informa que hay muy poco espacio libre?" . 18 de diciembre de 2015 . Consultado el 18 de diciembre de 2016 .
- ^ "UBIFS - Sistema de archivos UBI: escalabilidad" . 22 de enero de 2015 . Consultado el 18 de diciembre de 2016 .
- ^ a b Bityutskiy, Artem; Hunter, Adrian (24 de septiembre de 2008). "Sistema de archivos UBIFS" (PDF) . pag. 9.
- ^ Adrian Hunter (27 de marzo de 2008). "Una breve introducción al diseño de UBIFS" (PDF) .
- ^ "UBI - Imágenes de bloque sin clasificar" . 22 de enero de 2015 . Consultado el 18 de diciembre de 2016 .
- ^ Thomas Petazzoni (3 de octubre de 2012). "Mapa rápido de UBI haciendo su camino a la línea principal" . Archivado desde el original el 15 de noviembre de 2012 . Consultado el 18 de diciembre de 2016 .
- ^ Richard Weinberger (24 de septiembre de 2012). "UBI: solicitud de Fastmap para la inclusión (v18)" . Consultado el 18 de diciembre de 2016 .
enlaces externos
- Página de inicio
- Universidad de Szeged: UBIFS
- Experimentos UBIFS en la computadora portátil XO ( una computadora portátil por niño )
- Sistema de archivos UBIFS