Overview

Network File System (NFS) is a client–server protocol that enables a computer to access files over a network as if they were stored on local disk. Originally developed at Sun Microsystems, NFS became a de facto standard for sharing file systems between Unix and Unix-like systems. The protocol relies on remote procedure calls and a set of formal specifications published as open standards, so multiple vendors and open-source projects can implement compatible servers and clients.

Design and core characteristics

NFS separates responsibilities between servers that export directories and clients that mount and interact with exported file systems. Key aspects include:

  • Protocol mechanics: NFS uses a remote procedure call (RPC) mechanism to perform file operations across systems. Transport can be over UDP or TCP depending on version and configuration.
  • Stateless vs stateful: Early NFS versions were largely stateless to simplify recovery; later revisions introduced stateful features such as integrated file locking and delegations.
  • Caching and performance: Clients cache file and attribute data to reduce network load; coherence strategies and cache invalidation affect performance and correctness.
  • Security: Authentication ranges from simple UID/GID mapping to stronger mechanisms such as Kerberos-based authentication and encrypted transports in newer revisions.

Versioning and evolution

NFS has evolved through several major versions. Each iteration expanded functionality and addressed limitations of earlier releases. Commonly encountered variants in production include NFSv2, NFSv3 and NFSv4. Later versions unified file locking and state management, improved performance over wide-area networks, and added more robust security features. The protocol is described in public standards and RFCs, allowing interoperability across implementations.

Deployment and typical uses

Administrators export directories from a server and grant access to clients, which mount these exports into their local file trees. Typical uses include home directories on campus networks, shared project storage, web and application hosting where many machines require access to the same files, and virtualization environments where disk images or shared storage need to be accessed by multiple hosts. In everyday operation, a user on a client computer sees remote files much like local ones and can perform common file operations; the underlying network network and server behavior determine performance and reliability.

Comparisons and notable facts

NFS was the first broadly adopted network file system in Unix environments and remains important alongside alternatives such as SMB/CIFS and Andrew File System (AFS). It is an open standard, so independent implementations exist in major operating systems. When choosing a remote file system, considerations include performance, locking semantics, cross-platform compatibility, security features, and administrative complexity. For protocol details and implementation guidance see the protocol specification or vendor documentation at NFS protocol resources.

Practical considerations

Successful NFS deployments balance caching policies, network reliability, and security controls. Administrators configure exports, access control (for example by host or by user mapping), and optionally integrate stronger authentication. Backup strategies and monitoring are important because a server outage can affect many clients. Because the protocol has multiple versions and extensions, compatibility testing between server and client implementations is recommended before production rollout.