Skip to content

Commit 1d9e779

Browse files
ariel-miculasojeda
authored andcommitted
Add "PuzzleFS filesystem driver" user page
Signed-off-by: Ariel Miculas <[email protected]> Signed-off-by: Miguel Ojeda <[email protected]>
1 parent 1fff6fb commit 1d9e779

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
- [NVMe Driver](NVMe-driver.md)
2626
- [Null Block Driver](Null-Block-Driver.md)
2727
- [Android Binder Driver](Android-Binder-Driver.md)
28+
- [PuzzleFS filesystem driver](PuzzleFS-filesystem-driver.md)
2829

2930
# Links
3031

src/PuzzleFS-filesystem-driver.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# PuzzleFS filesystem driver
2+
3+
[PuzzleFS](https://github.com/project-machine/puzzlefs) is a container
4+
filesystem designed to address the limitations of the existing OCI format. The
5+
main goals of the project are reduced duplication, reproducible image builds,
6+
direct mounting support and memory safety guarantees, some inspired by the
7+
[OCIv2 design document](https://hackmd.io/@cyphar/ociv2-brainstorm).
8+
9+
Reduced duplication is achieved using the content defined chunking algorithm
10+
FastCDC. This implementation allows chunks to be shared among layers. Building
11+
a new layer starting from an existing one allows reusing most of the chunks.
12+
13+
Another goal of the project is reproducible image builds, which is achieved by
14+
defining a canonical representation of the image format. Direct mounting
15+
support is a key feature of puzzlefs and, together with fs-verity, it provides
16+
data integrity.
17+
18+
Lastly, memory safety is critical to puzzlefs, leading to the decision to
19+
implement it in Rust. Another goal is to share the same code between user space
20+
and kernel space in order to provide one secure implementation.
21+
22+
## Resources
23+
24+
- [PuzzleFS main repository](https://github.com/project-machine/puzzlefs)
25+
- [PuzzleFS kernel branch](https://github.com/ariel-miculas/linux/tree/puzzlefs)
26+
- [Issue tracking the development of the kernel driver](https://github.com/project-machine/puzzlefs/issues/78)
27+
- [Talk at Open Source Summit Europe](https://osseu2023.sched.com/event/b98e711a56261b4a892b5fdcdc29ca73)
28+
- [Kangrejos slides](https://kangrejos.com/2023/PuzzleFS.pdf)
29+
- [LWN article](https://lwn.net/Articles/945320/)
30+
31+
## Maintenance
32+
33+
The PuzzleFS driver is maintained by Ariel Miculas. Contact him at
34+
35+
[Zulip](Contact.md#zulip-chat).

0 commit comments

Comments
 (0)