Multiplexes arbitrary host names, making access to many different host fast and easy.

For each host accessed via a directory an new translator is started with the hostname as option. Say, /hostmuxdemo should let you access your favourite host with your translator mytranslatorfs.

ls /hostmuxdemo/mybox/ would give the result of mytranslatorfs applied to host mybox.

Usage

Hostmux takes translator options as argument and (in the easiest case ) starts the translator with the given arguments and the hostname as the last argument.

ftpfs

ftpfs is a good example, that is even very usefull. With hostmux and ftpfs you can access anonymous ftp via the filesystem, sparing out complicate use of a ftp client.

We assume you want to access the ftp root at all servers. The example host is ftp.yourbox.com.

Usermux is called via settrans -fgap /ftp /hurd/hostmux /hurd/ftpfs / .

  • -fg makes settrans try hard to remove an existing old translator from /ftp
  • ap sets an active translator (starts the translator) and a passive translator (stores translator information in the filesystem with which an active translator can be started on access of this node)
  • /ftp is where we want to set the translator
  • /hurd/hostmux is obviously our hostmux translator that will be started at /ftp and handle filesystem operations on /ftp and everything below (like /ftp/ftp.yourbox.com/pub/)
  • /hurd/ftpfs / is the argument to hostmux.

When /ftp is accessed, the first directory is interpreted as hostname and a new translator is set up with the hostmux arguments:

ls /ftp/ftp.yourhost.com/pub/ lets hostmux start a new traslator /hurd/ftpfs / ftp.yourhost.com and serve it via /ftp/ftp.yourhos t.com/ as directory. Subsequent the directory pub/ on /ftp.yourhost.com/ can be accessed via the new created translator.

You can see the new created translator in the process list: ps ax | grep ftpsfs . You shoud see /hurd/ftpfs / ftp.yourhost.com .

-- ?PatrickStrasser - 13 Jul 2004

Open Issues

IRC, freenode, #hurd, 2013-09-21

<jproulx> ls /http://<ip>:<port>/
<jproulx> the image came with a global translator though I see it doesn't
  grokk the alternate port notation.
<youpi> oh right
<jproulx> I shall return to the fine documentation
<youpi> it's a hostmux, it doesn't understand ports
<youpi> damn, one thus can't url plain urls with that scheme