On Thu, Jun 4, 2026 at 6:44 PM <[email protected]> wrote:
> It does sound super cool to be able to use 9pfs to:
>
> 1)  A GNU/Linux host launching several Hurd vms, and the GNU/Linux host
>    (with some coding) should be able to read the Hurd's filesystem.

For that, you would not use 9pfs. 9pfs is a 9P protocol client, and a
Hurd translator.

Rather, you would need some 9P server that runs on the GNU/Hurd VM,
and a 9P client on the GNU/Linux host. There is one built into Linux,
v9fs [0]. You can access it by specifying "9p" as a filesystem type
when mounting, such as in mount(1) or in fstab.

[0]: https://docs.kernel.org/filesystems/9p.html

> 2)  A GNU/Hurd can launch several subhurds, and the parent Hurd can (with
>    some coding) read (maybe write) the child hurds' filesystems.  Maybe some
>    childhurds (with some coding) can read/write some portions of the parent
>    Hurd's filesystem.

Yes, that should be possible. In either case, you need a 9P server in
the system where the files are actually located, and 9pfs (or a
different 9P client) where you want to access them.

> 3)  What other cool possibilities are there?

Accessing the host's files from a Hurd VM. You can do so over TCP/IP
today. Spin up a 9P server on the host (I used diod [1]), and set up
9pfs in the Hurd VM, this makes it possible to read (for now, no
writing) host files from the VM. You could use this to build, on the
Hurd, a project whose source code is (being edited) on the host. I
tried this just now, and ran into the missing 9P2000.L implementation
of readdir in 9pfs. So I went ahead and implemented that, and now it
totally works, I can build my project, whose source directory resides
on the host, from the Hurd VM.

[1]: https://github.com/chaos/diod

But it would be even cooler to use virtio as a transport here, this is
known as virtio-9p and implemented by QEMU, see
https://wiki.qemu.org/Documentation/9psetup

Sergey

Reply via email to