.TH INTRO 4
.SH NAME
intro \- introduction to file servers
.SH DESCRIPTION
A Plan 9
.I "file server"
provides a file tree to processes.
This section of the manual describes servers that can be
mounted in a name space to give a file-like interface to interesting services.
A file server may be a provider of a conventional file system,
with files maintained on permanent storage,
or it may also be a process that synthesizes files in some manner.
.PP
In Plan 9, the kernel mount device
\fImnt\fR(3)
acts as a client to the 9P servers mounted in the current name space,
translating system calls such as
.IR open (2)
into 9P transactions such as
.IR open (9p).
The kernel also multiplexes the potentially many processes onto a single 9P conversation
with each server.
Finally, the kernel provides each process with its own private
.I name space
which it can customize at will.
Modern Unix systems do not provide these niceties, so 
the Unix port of these Plan 9 file servers provides them via other means.
.PP
On Unix, 9P clients do not access servers via the traditional
file system call interface.  Only the Unix name space can be accessed
that way.
Instead, 9P clients use the
.IR 9pclient (3)
library to connect and interact directly with particular 9P servers.
The
.IR 9p (1)
command-line client is useful for interactive use and in shell scripts.
.PP
To preserve the façade of a single 9P conversation with each server,
9P servers invoke
.IR 9pserve (4),
typically via
.IR post9pservice (3).
.I 9pserve
announces a 9P service at a particular
network address and multiplexes the clients that connect to
that address onto a single 9P conversation with the server.
.PP
Each ported program operates in a pseudo-name space
that determines which 9P servers it is using.
The name space of a ported program is represented by a 
directory containing Unix domain sockets, one for each 9P server.
The directory defaults to
.BR /tmp/ns.$USER.$DISPLAY ,
meaning that all programs in an X Windows login session 
share a single name space.
Setting the
.B $NAMESPACE
environment variable overrides this default.
The
.IR namespace (1)
command prints the current name space directory.
.PP
Occasionally it is useful to be able to connect the input or output
of a standard Unix program to a file served by a 9P server.
The new
.IR openfd (9p)
9P transaction, which depends on file descriptor passing,
provides a sufficient workaround in many cases. 
.IR 9pserve 's
implementation of
.I openfd
(see also
.I fsopenfd
in
.IR 9pclient (3))
returns the read or write end of a pipe;
a helper process transfers data between the other end of the pipe
and the 9P server.
Note that since the data is being transferred via a pipe,
9P read and write errors cannot be passed on to the Unix program.
The Unix program sees only end-of-file or a closed pipe.
