SquashFS es un sistema de archivos comprimido de solo lectura para Linux que permite empaquetar directorios y archivos en un único archivo comprimido. Utiliza varios algoritmos de compresión (como zlib, lzma, lzo, xz, zstd, lz4) para reducir significativamente el tamaño de los datos. Su diseño está optimizado para la lectura rápida, permitiendo el acceso aleatorio a los datos sin necesidad de descomprimir todo el sistema de archivos. Esto lo hace ideal para entornos donde la huella de almacenamiento es crítica y la inmutabilidad de los datos es deseada.
En el mundo real, SquashFS es ampliamente utilizado en sistemas embebidos, distribuciones Linux live (como Ubuntu Live USB/DVD), firmware de routers (OpenWrt), sistemas de recuperación, y contenedores ligeros. Por ejemplo, muchas imágenes de Docker y OCI pueden ser construidas o convertidas para usar SquashFS como capa base inmutable, lo que reduce el tamaño de la imagen y mejora la velocidad de despliegue. También es común en dispositivos IoT y sistemas de punto de venta (POS) donde el espacio de almacenamiento es limitado y se requiere una base de software robusta e inalterable.
Para un arquitecto, SquashFS es una herramienta estratégica para optimizar la distribución y el despliegue de software. Permite reducir drásticamente el tamaño de las imágenes del sistema operativo o de las aplicaciones, lo que se traduce en menores tiempos de descarga, menor consumo de ancho de banda y un uso más eficiente del almacenamiento. La inmutabilidad inherente de SquashFS simplifica la gestión de versiones y la seguridad, ya que el sistema de archivos base no puede ser modificado una vez montado, facilitando rollbacks y garantizando un estado consistente. Sin embargo, su naturaleza de solo lectura implica que cualquier cambio persistente debe gestionarse en una capa superpuesta (overlay filesystem) o en una partición separada, lo que añade complejidad en escenarios que requieren escritura frecuente. La elección del algoritmo de compresión es un trade-off entre la tasa de compresión y el rendimiento de descompresión, una decisión clave para balancear el tamaño de la imagen y la velocidad de arranque/ejecución.