-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add "PuzzleFS filesystem driver" user page
Signed-off-by: Ariel Miculas <[email protected]> Signed-off-by: Miguel Ojeda <[email protected]>
- Loading branch information
1 parent
1fff6fb
commit 30c0b34
Showing
2 changed files
with
23 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# PuzzleFS filesystem driver | ||
|
||
[PuzzleFS](https://github.com/project-machine/puzzlefs) is a container filesystem designed to address the limitations of the existing OCI format. The main goals of the project are reduced duplication, reproducible image builds, direct mounting support and memory safety guarantees, some inspired by the [OCIv2 design document](https://hackmd.io/@cyphar/ociv2-brainstorm). | ||
|
||
Reduced duplication is achieved using the content defined chunking algorithm FastCDC. This implementation allows chunks to be shared among layers. Building a new layer starting from an existing one allows reusing most of the chunks. | ||
|
||
Another goal of the project is reproducible image builds, which is achieved by defining a canonical representation of the image format. Direct mounting support is a key feature of puzzlefs and, together with fs-verity, it provides data integrity. | ||
|
||
Lastly, memory safety is critical to puzzlefs, leading to the decision to implement it in Rust. Another goal is to share the same code between user space and kernel space in order to provide one secure implementation. | ||
|
||
## Resources | ||
|
||
- [PuzzleFS main repository](https://github.com/project-machine/puzzlefs) | ||
- [PuzzleFS kernel branch](https://github.com/ariel-miculas/linux/tree/puzzlefs) | ||
- [Issue tracking the development of the kernel driver](https://github.com/project-machine/puzzlefs/issues/78) | ||
- [Talk at Open Source Summit Europe](https://osseu2023.sched.com/event/b98e711a56261b4a892b5fdcdc29ca73) | ||
- [Kangrejos slides](https://kangrejos.com/2023/PuzzleFS.pdf) | ||
- [LWN article](https://lwn.net/Articles/945320/) | ||
|
||
## Maintenance | ||
|
||
The PuzzleFS driver is maintained by Ariel Miculas. Contact him at [[email protected]](mailto:[email protected]) or through [Zulip](Contact.md#zulip-chat). |