Hacker News new | ask | show | jobs
by q3k 2121 days ago
A nice protocol to do this with is 9p [1]. It's much easier to implement a server for it than for NFS, either from scratch or even with a good library, and it's about just as usable on major operating systems. It has a tiny API and therefore surface area, also making it great for high security applications. It’s probably the closest thing we have to a cross-platform, network transportable FUSE.

Even though it started its life as a component of Plan9, 9p is getting through a renaissance period right now: qemu, WSL, gVisor, ChromeOS VMs (crostini)... all use 9p!

[1] - https://en.wikipedia.org/wiki/9P_(protocol)

2 comments

Unfortunately all the default implementations really suck at performance (for Linux and Windows, at any rate), and it’s very noticeable under IO pressure, lots of small files, etc. They're stable and seem to be correct though, which is something.
9P is fine as kind of lowest common denominator network filesystem, as long as you don’t hit its fundamental limitations, such as not being particularly Unix-compatible, semantics wise.