logoalt Hacker News

bolangitoday at 5:40 AM3 repliesview on HN

Dreaming of "virtual filesystems everywhere". Hmm, sorta sounds like Plan 9.

Great to have an inside view of wrangling technologies for these behemoth data sets.


Replies

black_knighttoday at 6:05 AM

Plan 9 had such a powerful model for networked systems using these virtual file systems, it sounds like a fairytale!

Oh, want to use that other machine as a gateway? Just mount its /net.

Oh, want to route audio through another machine? Just mount their soundcard into your /dev.

Oh, your machine is too puny to do the task at hand? Just run “cpu thebigmachine” which transplanted your entire environment over there (all the virtual file systems) so that you can continue doing what you were doing, but using that machine’s CPU and memory.

This solved the problem of having to transplant your setup to the remote machine, which you have with modern SSH. If you wanted a different environment you instead created it locally. Each process har its own virtual file tree with mounts.

There were cool things at the local level too: All the programs would expose virtual file systems to interact with. Text editor? Each window had a directory with files containing window content, current selection, even the UI “tagline” with commands. This meant you could write scripts for your programs in any language, because you just had to interact with files.

A modern take on plan 9 is definitely on my Christmas wishlist!

show 3 replies
ithkuiltoday at 6:23 AM

I wonder if we're doing virtual filesystems wrong.

There is a good reason why traditionally filesystem access was mediated by the OS layer, but there are many use cases where you just want to give processes a different view of what they already can access and it could be done as a library in the same userspace process.

However, for that to work across all the processes in a session we'd need a standard way to install such a hook in all peocesses and that's achievable to some extent using LD preload but falls apart quite rapidly with statically built binaries or different libcs

show 1 reply
forrestthewoodstoday at 5:55 AM

> virtual filesystems everywhere

Please universe I beg you.

Git is incredibly mediocre. But it's all most people know. It's a version control tool that can't handle binary files; and no GitLFS does not count. The end result is a version control tool that is unable to actually version control all the things you need for a project.

This results in a Meta VCS layer where a ton of critical assets are stored in Docker files and other misery. If you want to re-compile a project for 2015 then good luck and god speed.

Personally I think full toolchains belong in source control. And that you should be able to clone / materialize a repro, yank your network cable, and build. This is how big tech monorepos work. It is TheWay imho.

show 2 replies