RISC OS NFS User Information
============================

Author: Jonathan Roach
Name: UserInfo
Version: 0.00
Circulation: RISC OS Team
History:

0.00  06-Jul-89  JSR  First draught created.

This document gives a basic summary of the functionality of RISC OS NFS as far
as it concerns the user.

Overview
--------

RISC OS NFS is an interface between the RISC OS view of a filing system and the
NFS view of a filing system. It provides the basic facilities to access and
transfer the contents of files between these two worlds. Commands are provided
to access NFS servers and to make the files on the server appear as part of
the RISC OS world.

Use
---

NFS is accessed as the RISC OS filing system NFS:. The 'disc' name is used
as the handle onto a given server and is referred to as the mount name. So
NFS::fred.$ is accessing the root directory on mount fred. When accessing a
mount a given user name is used. This user is fixed for a mount until that
mount is dismounted. The user is specified on the mount dialogue box. The
user nobody needs no verification and has privileges similar to guest on the
file server. The name server is the machine used to verify the user and to
obtain the user's details (user ID and group ID). This machine may be
different to the file server but typically it will be the same machine. The
mount path is the string passed to the file server which identifies the
directory on the file server which is to be used as the root directory on
the mount. Typically this would be a UNIX file path, eg /u or /jroach/nfs.
The name server must have a pcnfsd running on it and the file server must
have exported the directory being used as the mount path.

File Name Mapping
-----------------

In both RISC OS and NFS there are some characters which are special in file
names. In RISC OS these are ^@\$%. and &. In NFS there is only one, /. For
most files in the NFS world the RISC OS special characters ^@\$% and & do not
occur, however . is quite common. RISC OS NFS, when mapping from RISC OS to
NFS, will swap / and . and when mapping from NFS to RISC OS swap these
characters back again. The semantics of case sensitivity in both worlds is
defined by the filing system. Typically in RISC OS file names are case
insensitive, in RISC OS NFS this will generally not be the case as most NFS
servers are UNIX-based and are case sensitive.

The RISC OS device name in a reference to a RISC OS NFS file is the mount name
for a given mounted point.

In summary:
The RISC OS file name NFS::<mountname>.$.abc/def.ghi.jk would be mapped to
the file abc.def/ghi/jk on the server mounted as <mountname>.
The NFS server file name usr/jroach/src/frec.c would be mapped to
the file NFS::<mountname>.$.usr.jroach.src.fred/c

File Contents
-------------

The file contents remain unchanged.

Other Attributes of a File
--------------------------

All RISC OS NFS files will have the type 'data' and a date stamp which 
will be the nearest RISC OS appriximation to the 'date last modified' of the
NFS file. The type of an NFS file can not be changed, but the date stamp can.
The NFS access attributes will map as follows:

RISC OS                 NFS
owner read access       owner read access
owner write access      owner write access
others read access      others read access
others write access     others write access

The RISC OS locked attribute will never be set for an NFS file.
Other NFS attributes will not be fed through to RISC OS.

Commands
--------

The following commands are provided by RISC OS NFS:

*NFS            Select RISC OS NFS as the current filing system
*NFSName        Set or display the current user name
*NFSMount       Mount or display mounted NFS servers
*NFSDismount    Dismount NFS servers

In detail:

*NFS
  Takes no parameters

*Logon

  *Logon [-Host <hostname>] <username> [<password>]
        -Host <hostname>        Chooses this host as the name server for this
                                  and subsequent name requests.
        <username>              The user whose details are to be obtained from
                                  the name server.
        <password>              The user's password. If not given the user will
                                  be prompted for this.

  *Logon -Host <hostname>
        This sets the host for subsequent name requests.

  *Logon nobody
        This sets the user name to 'nobody' (a well defined UNIX concept).

  *Logon
        This displays the current user name.

*Mount

  *Mount [-Host <hostname>] <mountname> <mount path>
        -Host <hostname>        Chooses this host as the NFS server for this
                                  and subsequent mount requests.
        <mountname>             Specifies the name this mount point shall be
                                  referred to in the RISC OS world. The files
                                  accessed via this mount point will always be
                                  accessed using the details of the user which
                                  was current at the time the *NFSMount command
                                  was executed.
        <mount path>            Specifies the directory on the NFS server which
                                  shall act as $ on NFS::<mountname>

  *Mount -Host <hostname>
        This lists all mount points on this host. The details given are the
          mountname and mount path and the user name for each mount point.

  *Mount
        This lists all mount points. The details given are the host name, the
        mountname, then mount path and the user name.

*Dismount

  *Dismount <mountname>
        This dismounts the given mount point. Files open on this mount point
          get closed.

  *Dismount -Host <hostname>
        This dismounts all mount points mounted on the given host. Files
          on this host get closed.

  *Dismount
        This dismounts all mount points. All NFS files get closed.

*TypesBase

  *TypesBase <number>
        This sets the base group ID used to represent RISC OS file types. The
        default value is 16384. The first 4096 values (<number> to <number>+4095)
        are used to represent the file types and <number>+4096 is used to represent
        dead files (files with load and execuction addresses equal to 0xdeaddead).

*CacheTime

  *CacheTime <number>
        This sets the time which information cached in the future is assumed to be
        valid for. The units are 1/100ths of a second.

These commands operate as do there equivalents in other filing systems:
*Back   *Bye    *Free   *NoDir  *NoLib  *NoUrd  *URD
