The Network File System was developed by Sun Microsystems as a way of sharing file systems between several hosts connected together by a TCP-IP network. The nature of this sharing is client server. One host exports its file system to the others. Although the serving host is the master, the client nodes can write to the file system as if it were on a disk that was physically connected.

History

Sun developed this with the idea of it becoming a defacto standard for Unix file sharing - a venture in which they were completely successful. NFS was adopted by all the Unix vendors as part of their standard offering.

Digital included it in the TCP-IP extension to the VMS operating system called UCX (which would later be renamed "TCP-IP Services for OpenVMS"). This was no mean feat getting a VMS mounted file structured volume to look like a Unix file system, and vice versa. Security was not much of an issue, as VMS offers access control lists and proxy accounts.

More recently, PC software vendors have written software which connects as an NFS client, and emulates a Windows drive mapping. There are several issues with this, including reliability and security. Security is an issue because PCs identify themselves by a machine name, not a uid and gid. To solve this requires an extra daemon process on the NFS serving host to authenticate - translating machine names into users and groups.

The problems with running NFS clients on PCs have led to the popularity of samba, an alternative solution which puts a daemon process on the Unix box which emulates Windows networking.

Known problems with NFS

  • Reliability
    There are problems if the server is rebooted without rebooting the clients. Any client processes trying to access file systems via NFS will, at best fail with I/O errors, at worst they will hang. Network connectivity problems can cause the same results, especially if the traffic is funnelled through a single piece of hardware which fails, such as a router.
  • Security
    Besides the PC problems listed above, there are other issues. If the passwd files on the Unix boxes are out of sync, then someone coming in on one box appears as a different user on another box. Widespread deployment of nis for authentication solves this problem.
  • Concurrent update
    Confusion can occur if processes on more than one box try to write to the same file at the same time. Unix normally handles this, when the processes are on the same box. Also, the flock mechanism is not guaranteed to work across an NFS mount.
  • File information
    Because it is not a real local file system, it does not behave quite like one. Information is limited on free space and symlinks, which tend to misbehave over NFS.