PuzzleFS is een containerbestandssysteem van de volgende generatie voor Linux met snelle image-opbouw, direct-mount-ondersteuning en andere voor containers geoptimaliseerde functies waaraan wordt gewerkt door Cisco-technici. En het is geschreven in Rust.
Ariel Miculas van Cisco plaatste vandaag een eerste”verzoek om commentaar”patchserie op dit PuzzleFS-bestandssysteem met de kerneldriver geschreven in Rust. Voorlopig wordt deze Rust-driver als proof-of-concept beschouwd. De serie patches beschrijft PuzzleFS verder als:
Puzzlefs is een containerbestandssysteem dat is ontworpen om de beperkingen van het bestaande OCI-formaat aan te pakken. De belangrijkste doelen van het project zijn minder duplicatie, reproduceerbare image builds, directe montageondersteuning en geheugenveiligheidsgaranties, sommige geïnspireerd door het OCIv2-ontwerpdocument.
Verminderde duplicatie wordt bereikt met behulp van het door inhoud gedefinieerde chunking-algoritme FastCDC. Met deze implementatie kunnen chunks worden gedeeld tussen lagen. Door een nieuwe laag te bouwen uitgaande van een bestaande, kunnen de meeste brokken opnieuw worden gebruikt.
Een ander doel van het project is reproduceerbare beeldopbouw, wat wordt bereikt door een canonieke weergave van het beeldformaat te definiëren.
Directe montageondersteuning is een belangrijk kenmerk van puzzlefs en samen met fs-verity zorgt het voor gegevensintegriteit. Momenteel wordt puzzlefs geïmplementeerd als een userspace-bestandssysteem (FUSE). Er wordt gewerkt aan een alleen-lezen stuurprogramma voor het kernelbestandssysteem.
Ten slotte is geheugenveiligheid van cruciaal belang voor puzzlefs, wat leidde tot de beslissing om het in Rust te implementeren. Een ander doel is om dezelfde code te delen tussen gebruikersruimte en kernelruimte om één veilige implementatie te bieden.
Interessant werk en dit zou de eerste belangrijke Rust-kerneldriver voor het bestandssysteem zijn die tot nu toe is gepost voor het lopende werk rond het introduceren van Rust-ondersteuning in de standaard Linux-kernel.
De RFC-patchserie voor het Rust-coded PuzzleFS-stuurprogramma is te vinden op kernel mailinglijst. De PuzzleFS-code is ook te vinden op GitHub.