SquashFS
# SquashFS

Squashfs (.sfs) è un file system libero compresso di sola lettura per sistemi operativi utilizzanti il kernel Linux. Squashfs comprime file, inode e directory, e supporta una dimensione dei blocchi fino a 64K per elevati fattori di compressione. È implementato come un modulo del kernel attraverso il VFS.

Squashfs è utilizzato per file system ad uso generale di file in sola lettura, per uso di archiviazione (i.e. come nel caso in cui si utilizza un file .tar.gz), con vincoli block device/memory systems (e.g. embedded systems) dove un basso overhead sia necessario.

## Caratteristiche

* I dati, gli inode e le directory vengono compressi.
* Squashfs Memorizza uid/gids (32 bits), e la data di creazione del file.
* Files fino a 16EiB (2^64 byte) sono supportati. I Filesystem possono essere fino a 2^64 bytes.
* Gli Inode ed i dati delle directory sono fortemente compressi, e pacchettati con byte boundaries. Ogni inode compresso è di media di 8 byte di lunghezza (la esatta lunghezza varia col tipo di file, i.e. file regolari, directory, link simbolici, e gli inode di block/char device hanno differenti dimensioni).
* Squashfs può usare fino a 64KiB per la dimensione dei blocchi, raggiungendo così migliori risultati di compressione piuttosto che con una dimensione dei blocchi di 4KiB.
* I file duplicati vengono individuati e memorizzati una sola volta.
* Sia le architetture Big che Little endian sono supportate. Il programma mksquashfs può generare filesystem per varie architetture endian per i casi in cui l'ordine dei byte del sistema ospitante sia differente (utile per i sistemi embedded).
