UBIFS - UBIFS
| Sviluppatore/i | Nokia con l'aiuto dell'Università di Szeged |
|---|---|
| Nome e cognome | File system di immagini a blocchi non ordinati |
| Introdotto | 2008 con il kernel Linux 2.6.27 |
| Strutture | |
| Contenuti della directory | B+ alberi |
| limiti | |
| Caratteri consentiti nei nomi dei file | Qualsiasi byte eccetto NUL e barra "/" |
| Caratteristiche | |
| forchette | sì |
| attributi | sì |
| Permessi del file system | POSIX |
| Compressione trasparente | sì |
| Altro | |
| Sistemi operativi supportati | Linux |
UBIFS ( UBI File System , più completamente Unsorted Block Image File System ) è un file system flash per dispositivi di memoria flash non gestiti . UBIFS funziona su un livello UBI (unsorted block image), che è a sua volta sopra un livello MTD ( Memory Technology Device ). Il file system è sviluppato dagli ingegneri Nokia con l'aiuto dell'Università di Szeged , in Ungheria. Lo sviluppo è iniziato seriamente nel 2007, con la prima versione stabile del kernel Linux 2.6.27 nell'ottobre 2008.
Due delle principali differenze tra UBIFS e JFFS2 sono che UBIFS supporta la memorizzazione nella cache in scrittura e UBIFS sbaglia sul lato pessimistico del calcolo dello spazio libero. UBIFS tende a funzionare meglio di JFFS2 per grandi dispositivi NAND FLASH. Questa è una conseguenza degli obiettivi di progettazione di UBIFS: montaggio più rapido, accesso più rapido a file di grandi dimensioni e velocità di scrittura migliorate. UBIFS inoltre preserva o migliora la compressione al volo, la recuperabilità e la tolleranza all'interruzione dell'alimentazione di JFFS2 . La compressione dei dati al volo di UBIFS consente zlib ( algoritmo deflate ), LZO o Zstandard .
UBIFS archivia gli indici in flash mentre JFFS2 archivia gli indici del filesystem in memoria. Ciò influisce direttamente sulla scalabilità di JFFS2 poiché le tabelle devono essere ricostruite ogni volta che viene montato il volume. Inoltre, le tabelle JFFS2 potrebbero consumare abbastanza RAM di sistema da rendere inutilizzabili alcune immagini.
UBI
UBI ( Unsorted Block Images ) è un livello di gestione dei blocchi di cancellazione per i dispositivi di memoria flash . UBI ha due scopi, tracciare i blocchi danneggiati della flash NAND e fornire il livellamento dell'usura . Il livellamento dell'usura distribuisce le cancellazioni e le scritture sull'intero dispositivo flash. UBI presenta i blocchi di cancellazione logici ai livelli superiori e li mappa ai blocchi di cancellazione fisici. UBI è stato scritto appositamente per UBIFS in modo che UBIFS non debba affrontare il livellamento dell'usura e i blocchi danneggiati. Tuttavia, UBI può essere utile anche con squashfs e flash NAND; squashfs non è a conoscenza dei blocchi danneggiati della flash NAND.
La documentazione di UBI spiega che non si tratta di un completo Flash Translation Layer (FTL). Sebbene un FTL gestisca anche i blocchi danneggiati e il livellamento dell'usura, l'interfaccia fornita da un FTL è un dispositivo a blocchi con settori piccoli (tipicamente 512 byte) che possono essere scritti in modo completamente indipendente. Al contrario, l'interfaccia di UBI espone direttamente i blocchi di cancellazione e le pagine programmabili (che sono di dimensioni diverse e molto più grandi dei tipici settori dei dispositivi a blocchi) e i filesystem che utilizzano UBI devono essere consapevoli delle dimensioni e delle restrizioni su come i blocchi devono essere cancellati prima di essere scritti .
UBI è in qualche modo analogo a un Logical Volume Manager . Nell'uso tipico, invece di partizionare il flash in regioni fisse, un singolo dispositivo UBI copre l'intero flash (tranne forse alcune pagine in posizioni fisse riservate al bootloader) e vengono creati più volumi all'interno del dispositivo UBI. Ciò consente di distribuire il livellamento dell'usura su tutta la flash, anche se alcuni volumi vengono scritti più frequentemente di altri. I volumi UBI possono essere statici (che contengono un intero file o un'immagine scritta una volta e protetta da CRC-32 da UBI) o dinamici (che contengono un filesystem di lettura-scrittura responsabile della propria integrità dei dati). L'unico filesystem che supporta direttamente UBI è UBIFS, ma usandolo gluebiè possibile emulare un dispositivo MTD, che può quindi essere usato per eseguire altri filesystem flash come JFFS2 e YAFFS, e usando ubiblkè possibile emulare dispositivi a blocchi, che possono eseguire filesystem comuni come Est4.
Mappa veloce
UBI è stato ampliato in Linux 3.7 con il supporto per le mappe veloci. Fastmap mantiene una versione su disco delle informazioni precedentemente create in memoria eseguendo la scansione dell'intero dispositivo flash. Il codice ritorna al meccanismo precedente di una scansione completa sui guasti e i vecchi sistemi UBI ignoreranno semplicemente le informazioni sulla mappa veloce.
Guarda anche
Riferimenti
link esterno
- Pagina iniziale
- Università di Szeged: UBIFS
- Esperimenti UBIFS sul laptop XO ( un laptop per bambino )
- File system UBIFS