glenda.party
term% ls -F
term% cat index.txt
U9FS(4)                    Kernel Interfaces Manual                    U9FS(4)

NAME
       u9fs - serve 9P from Unix

SYNOPSIS
       u9fs [ directory ]

DESCRIPTION
       U9fs is not a Plan 9 program.  Instead it is a program that serves Unix
       files  to  Plan 9 machines using the 9P protocol (see intro(5)).  It is
       to be invoked on a Unix machine by inetd with its standard input,  out‐
       put,  and  error connected to a network connection, typically TCP on an
       Ethernet.  It runs as user root and multiplexes access to multiple Plan
       9 clients over the single wire.  It simulates Unix  permissions  itself
       by assuming Plan 9 uids match Unix login names.

       If  a  directory is specified u9fs first does a Unix chroot system call
       to that directory.

       Plan 9 calls this service 9fs with TCP service number 564 on the Ether‐
       net.  Set up this way on a machine called, say, kremvax,  u9fs  may  be
       connected to the name space of a Plan 9 process by

              9fs kremvax

       Due to a bug in some versions of the IP software, some systems will not
       accept  the  service  name 9fs, thinking it a service number because of
       the initial digit.  If so, run the service as u9fs or 564  and  do  the
       srv and mount by hand:

              srv tcp!kremvax!u9fs
              mount -c /srv/tcp!kremvax!u9fs /n/kremvax

       For more information on this procedure, see srv(4) and bind(1).

       U9fs serves the entire file system of the Unix machine.  It forbids ac‐
       cess  to  devices  because the program is single-threaded and may block
       unpredictably.  Using the attach specifier device connects  to  a  file
       system  identical  to  the usual system except it permits device access
       (and may block unpredictably):

              srv tcp!kremvax!9fs
              mount -c /srv/tcp!kremvax!9fs /n/kremvax device

       (The 9fs command does not accept an attach specifier.)  Even so, device
       access may produce unpredictable results if the block size of  the  de‐
       vice is greater than 8192, the maximum data size of a 9P message.

       The  source  to u9fs is in the Plan 9 directory /sys/src/cmd/unix/u9fs.
       To install u9fs on a Unix system, copy the source  to  a  directory  on
       that  system.  Edit the makefile to set LOG to a proper place for a log
       file and to set the compile-time configuration correctly.  Then compile
       with an ANSI C compiler and install  in  /usr/etc/u9fs.   Install  this
       line in inetd.conf:

              9fs     stream  tcp     nowait  root   /usr/etc/u9fs   u9fs

       and this in services:

              9fs     564/tcp       9fs  # Plan 9 fs

SOURCE
       /sys/src/cmd/unix/u9fs

DIAGNOSTICS
       Problems  are  reported  to /tmp/u9fs.log.  A compile-time flag enables
       chatty debugging.

SEE ALSO
       bind(1), srv(4), ip(3), nfsserver(8)

BUGS
       The implementation of devices is unsatisfactory.

                                                                       U9FS(4)