PuzzleFS es un sistema de archivos contenedor de próxima generación para Linux con creación rápida de imágenes, soporte de montaje directo y otras funciones optimizadas para contenedores en las que están trabajando los ingenieros de Cisco. Y está escrito en Rust.
Ariel Miculas de Cisco publicó hoy una serie de parches iniciales de”solicitud de comentarios”en este sistema de archivos PuzzleFS con el controlador kernel escrito en Rust. Por ahora, este controlador de Rust se considera una prueba de concepto. La serie de parches continúa describiendo PuzzleFS como:
Puzzlefs es un sistema de archivos contenedor diseñado para abordar las limitaciones del formato OCI existente. Los principales objetivos del proyecto son la duplicación reducida, la creación de imágenes reproducibles, el soporte de montaje directo y las garantías de seguridad de la memoria, algunas inspiradas en el documento de diseño OCIv2.
La duplicación reducida se logra utilizando el algoritmo de fragmentación definido por contenido FastCDC. Esta implementación permite compartir fragmentos entre capas. Construir una nueva capa a partir de una existente permite reutilizar la mayoría de los fragmentos.
Otro objetivo del proyecto es la creación de imágenes reproducibles, lo que se logra definiendo una representación canónica del formato de imagen.
El soporte de montaje directo es una característica clave de puzzlefs y, junto con fs-verity, proporciona integridad de datos. Actualmente, puzzlefs se implementa como un sistema de archivos de espacio de usuario (FUSE). Un controlador de sistema de archivos del kernel de solo lectura está en marcha.
Por último, la seguridad de la memoria es fundamental para puzzlefs, lo que llevó a la decisión de implementarla en Rust. Otro objetivo es compartir el mismo código entre el espacio del usuario y el espacio del kernel para proporcionar una implementación segura.
Trabajo interesante y este sería el primer controlador de kernel del sistema de archivos Rust significativo publicado hasta ahora por el trabajo en curso para introducir el soporte de Rust en el núcleo principal de Linux.
La serie de parches RFC para el controlador PuzzleFS codificado en Rust se puede encontrar en lista de correo del kernel. El código de PuzzleFS también se puede encontrar en GitHub.