Projected File System
scorpiosoftware.net
scorpiosoftware.net
https://www.kernel.org/doc/html/latest/filesystems/fuse.html
Although I feel guilty because that's probably more the Plan 9 philosophy. On Linux you get a lot of nice things by having /procfs for example but lots of things aren't files that might be. I've often wondered if a file based interface to dbus wouldn't be very liberating from the scripting point of view for example.
Plan 9 even does sockets via a file based interface and to my eyes it's no more clunky than BSD sockets - but presto, any bash script would be able to open a socket without netcat.
Also IIRC there is a bash loadable module that implements server sockets but that can't be relied upon if you're just shipping bash scripts meant to be run without the end user preparing the ground before running it.
IMO we actually should gradually start moving away from that. It's a leaky abstraction (though granted, our current tooling is pretty strong and excellent about all this so I guess it's a 50/50 here).
>Few people know the complete quote: >"Everything is a file — the worst possible primitive"
Especially in a multi-core world, you need to know a lot of Unix(/Linux) arcana to write a program that ensures ACID-like properties for files. (And this need applies to almost any program that writes to a file.) If filesystem APIs were redesigned tomorrow, they would be quite different from what we have today.
And I especially agree with the multi-core comment. We need filesystems as full-blown ACID databases, like 10 years ago now.
Surely it can't be so difficult to have a K/V store with ACID semantics and give it a filesystem emulation layer so people can use all the normal coreutils like `ls` and `cd` etc. But then also add a little extra API that allows for locking, transactions and all the good stuff?
Will nobody step up?...
It's really annoying that seemingly simple things that have been around forever (this vs FUSE, NFS, freaking symbolic links) are gated behind "pro" features or advanced user workflows. It's very difficult to rely on them as an application developer shipping products to less determined/advanced users.
> When ProjFS receives the data it will write it to the file to convert it into a hydrated placeholder.
It looks like it's meant to solve a much narrower problem than FUSE.
Edit:
Since you mentioned Dokany[0] I'll also throw out a shout for WinFsp[1] as a similar project, too.
I suppose the choice of the name also makes sense in that context.