O PuzzleFS é um sistema de arquivos de contêiner de próxima geração para Linux com construção rápida de imagem, suporte de montagem direta e outros recursos otimizados para contêiner sendo trabalhados pelos engenheiros da Cisco. E está escrito em Rust.
Ariel Miculas da Cisco postou hoje uma série inicial de patches de”solicitação de comentários”neste sistema de arquivos PuzzleFS com o driver do kernel escrito em Rust. Por enquanto, esse driver Rust é considerado uma prova de conceito. A série de patches continua descrevendo o PuzzleFS como:
Puzzlefs é um sistema de arquivos contêiner projetado para lidar com as limitações do formato OCI existente. Os principais objetivos do projeto são duplicação reduzida, construções de imagens reproduzíveis, suporte de montagem direta e garantias de segurança de memória, algumas inspiradas no documento de design OCIv2.
A duplicação reduzida é obtida usando o algoritmo de fragmentação definido por conteúdo FastCDC. Essa implementação permite que os chunks sejam compartilhados entre as camadas. Construir uma nova camada a partir de uma existente permite reutilizar a maioria dos pedaços.
Outro objetivo do projeto são as construções de imagens reproduzíveis, que são alcançadas definindo uma representação canônica do formato da imagem.
Suporte de montagem direta é uma característica fundamental do puzzlefs e, juntamente com o fs-verity, fornece integridade de dados. Atualmente, o puzzlefs é implementado como um sistema de arquivos de espaço de usuário (FUSE). Um driver de sistema de arquivos do kernel somente leitura está em andamento.
Por fim, a segurança da memória é crítica para os quebra-cabeças, levando à decisão de implementá-la no Rust. Outro objetivo é compartilhar o mesmo código entre o espaço do usuário e o espaço do kernel para fornecer uma implementação segura.
Trabalho interessante e este seria o primeiro driver significativo do kernel do sistema de arquivos Rust publicado até agora pelo trabalho em andamento em torno da introdução do suporte Rust no kernel Linux principal.
A série de patches RFC para o driver Rust-coded PuzzleFS pode ser encontrada em lista de discussão do kernel. O código do PuzzleFS também pode ser encontrado no GitHub.