Any authentication must precede mount, which does none itself; see security-intro(2) for a discussion of the authentication and security mechanisms provided `ready made' by Inferno, but any other scheme can be agreed between client and server. The mount system call does, however, issue an attach(5) message to the server to identify the user of the connection. Each distinct 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, as described in intro(10) and dev(10.2). The mount driver translates these procedure calls into remote procedure calls to be transmitted 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 sys-read(2) or Sys->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 #M is an illegal file name, so this device can be accessed directly only by the kernel.
|MNT(3)||Rev: Tue Mar 31 02:42:38 GMT 2015|