MNT(3)MNT(3)NAMEmnt - attach to 9P servers
SYNOPSIS
#M
DESCRIPTION
The mount driver is used by the mount system call (but not bind; see
bind(2)) to connect the name space of a process to the service provided
by a 9P server over a communications channel. After the mount, system
calls involving files in that portion of the name space will be con‐
verted by the mount driver into the appropriate 9P messages to the
server.
The mount system call issues session and attach(5) messages to the
server to identify and validate the user of the connection. Each dis‐
tinct user of a connection must mount it separately; the mount driver
multiplexes the access of the various users and their processes to the
service.
File-oriented system calls are converted by the kernel into messages in
the 9P protocol. Within the kernel, 9P is implemented by procedure
calls to the various kernel device drivers. The mount driver trans‐
lates these procedure calls into remote procedure calls to be transmit‐
ted as messages over the communication channel to the server. Each
message is implemented by a write of the corresponding protocol message
to the server channel followed by a read on the server channel to get
the reply. Errors in the reply message are turned into system call
error returns.
A read(2) or write system call on a file served by the mount driver may
be translated into more than one message, since there is a maximum data
size for a 9P message. The system call will return when the specified
number of bytes have been transferred or a short reply is returned.
The string is an illegal file name, so this device can only be accessed
directly by the kernel.
SEE ALSObind(2)SOURCE
/sys/src/9/port/devmnt.c
BUGS
When mounting a service through the mount driver, that is, when the
channel being multiplexed is itself a file being served by the mount
driver, large messages may be broken in two.
MNT(3)