humphd / humphd/next

Add a 9P interface to our filesystem

Open
#27 6 comments 0 reactions 0 assignees View on GitHub
assigned filesystem
Dominant language
JavaScript
Stars
14
Forks
5
PR merge metrics
No merged PRs in 30d

Description

Depending on the outcome of our research in #26, we're going to need a way to mount the IndexedDB web filesystem (probably [filer](https://github.com/filerjs/filer)) in the browser VM for our OS/shell. Just about every example I see is using the Plan9 filesystem (9P) implementation for Linux [v9fs](https://lwn.net/Articles/137439/).

The protocol is pretty slim, transport agnostic (we can easily do it over message passing between frames/windows/workers), and would map well onto our filesystem. There are also a number of [existing JavaScript implementations](http://9p.cat-v.org/implementations), including (and in order of how well maintained they appear to be):

* [js9p](https://github.com/anantn/web9/tree/master/js9p) (MIT)
* [limbo-machine](https://code.google.com/archive/p/limbo-machine/wikis/JS.wiki) (LGPL)
* [arm-js](https://github.com/ozaki-r/arm-js) (MIT, LGPL)
* [jor1k](https://github.com/s-macke/jor1k) (BSD)
* [v86](https://github.com/copy/v86) (BSD)

The goal would be to allow our VM (probably v86) to mount our filesystem over 9P into `/home` or the like, and work with the files and dirs as if they were in the VM.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.