
The File System is Unpredictable (2009) - azhenley
https://blog.paranoidcoding.com/2009/12/10/the-file-system-is-unpredictable.html
======
PaulHoule
The file system is long in the tooth as an API and nobody notices.

Consider this:

[http://doc.cat-v.org/plan_9/4th_edition/papers/fs/#:~:text=T...](http://doc.cat-v.org/plan_9/4th_edition/papers/fs/#:~:text=The%20Plan%209%20file%20system%20server%20is%20made,kernel%20has%20no%20user%20processes%20or%20virtual%20memory).

a file system interface for a microkernel that's really micro. If you wanted
to connect to a 9P fileserver with a Python program or any normal programming
language you could be quickly opening and reading files.

FUSE, on the other hand, supports the full performance of a Linux filesystem
but don't even think about connecting to one from a normal application:

[http://libfuse.github.io/doxygen/fast17-vangoor.pdf](http://libfuse.github.io/doxygen/fast17-vangoor.pdf)

FUSE has a close coupling to Linux because, for performance's sake,
filesystems are closely coupled to their operating systems. Microsoft tried to
emulate the behavior of the Linux filesystem in WSL and succeeded in every
respect except for performance -- Linux devs have a higher expectation for the
speed of file system metadata operations that Windows couldn't possibly attain
because of the fudnamental design... They have to run a whole Linux kernel
just to access the one thing, the filesystem, that Micrsoft can't emulate fast
enough!

