Re: Btrfs
[Author here]
> how many file systems do we actually need ?
Aside from the point that this story, and this kernel, isn't about filesystems at all, really, I think that your question betrays what seems to me to be an implicit assumption, one that underpins a lot of the modern computer world but is erroneous:
That what we have today is essentially fine, perfected, and ideal; as a result, all that is left is room for minor incremental improvements.
This is manifestly false. It is _obviously_ wrong.
* If existing xNix packaging tech was fine, we would not have Snap, Flatpak, OStree, Appimage, Nix, Guix, etc.
* If existing desktops were fine, we wouldn't have 20+ Linux desktops in regular maintenance, some of them almost cosmetically indistinguishable from one another but implemented using different toolkits or languages.
* If existing text editors were perfect there wouldn't be 5x as many as there are desktop projects.
* If init systems were a solved problem there would not be systemd advocacy.
* If programming languages were done and dusted then Rust, Go, F#, Zig, Hare, Clojure, and a hundred others wouldn't be in active R&D.
Etc. etc.
There are tons of problems, issues, imperfections, snags, drawbacks, penalties and whatnot with current filesystems.
Examples:
1. Most were designed for spinning media but now most computers use SSD storage
2. Most natively only handle single drives and rely on other layers to handle and manage >1 device
3. There are multiple such layers as well (LVM tools) and they too have issues.
4. Some filesystems are advanced, strongly advocated by some users, but lack tools rivals consider essential. E.g. Btrfs has no meaningful useful way to repair a volume, and yet, it also can't accurately report free space, making it easy to fill a volume, which inevitably corrupts it.
5. Other FSs work great but are hobbled by legal restrictions, e.g. ZFS; some are highly proprietary, e.g. NTFS, APFS, and may be inaccessible from FOSS.
6. Others are unfinished but may in time fix this, e.g. bcachefs and Stratis
7. Others are aiming still higher, e.g. HAMMER2 which aims to be mounted live by >1 OS over a network and gracefully handle that
There is *lots* left to do.