Network File System (NFS) is a network file system protocol originally developed by Sun Microsystems in 1984, allowing a user on a client computer to access files over a network as easily as if the network devices were attached to its local disks. A network file system is any computer File system that supports sharing of files, printers and other resources as Persistent storage over Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services A computer is a Machine that manipulates data according to a list of instructions. A computer network is a group of interconnected Computers. Networks may be classified according to a wide variety of characteristics NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. ONC RPC, short for Open Network Computing Remote Procedure Call, is a widely deployed Remote procedure call system The Network File System protocol is specified in RFC 1094, RFC 1813, and RFC 3530 (which obsoletes RFC 3010).
Sun used version 1 only for in-house experimental purposes, and did not release it to the public.
Version 2 of the protocol (defined in RFC 1094, March 1989) originally operated entirely over UDP. User Datagram Protocol ( UDP) is one of the core protocols of the Internet Protocol Suite. Its designers meant to keep the protocol stateless, with locking (for example) implemented outside of the core protocol. A stateless server is a server that treats each Request as an independent Transaction that is unrelated to any previous request In Computer science, a lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of People involved in the creation of NFS version 2 include Rusty Sandberg, Bob Lyon, Bill Joy, and Steve Kleiman. William Nelson Joy (born Nov 8, 1954) commonly known as Bill Joy, is an American Computer scientist.
Version 3 (RFC 1813, June 1995) added:
At the time of introduction of Version 3, vendor support for TCP as a transport-layer protocol began increasing. The Transmission Control Protocol (TCP is one of the core protocols of the Internet Protocol Suite. In Computer networking, the Transport Layer is a group of methods and protocols within a layered architecture of network components within which it is responsible for encapsulating While several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a WAN more feasible. Wide Area Network ( WAN) is a Computer network that covers a broad area (i
Version 4 (RFC 3010, December 2000; revised in RFC 3530, April 2003), influenced by AFS and CIFS, includes performance improvements, mandates strong security, and introduces a stateful protocol. The Andrew File System ( AFS) is a distributed networked file system which uses a set of trusted servers to present a homogeneous location-transparent file name space In Computer networking, Server Message Block ( SMB) operates as an application-level network protocol mainly used to provide Shared access In Computer science and Automata theory, a state is a unique configuration of information in a program or machine Version 4 became the first version developed with the Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS protocols. Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services
Various side-band protocols have become associated with NFS, including:
WebNFS, an extension to Version 2 and Version 3, allows NFS to integrate more easily into Web-browsers and to enable operation through firewalls. WebNFS is an extension to the NFS file system for allowing clients to access a File system over the internet using a simplified firewall-friendly protocol Sun Microsystems recently opensourced their WebNFS implementation via https://yanfs.dev.java.net/.
Though the use of NFS occurs most commonly with Unix-like systems, other software platforms such as the classic Mac OS, Microsoft Windows, Novell NetWare, and IBM AS/400 operating systems can also use the protocol. A Unix-like (sometimes shortened to *nix) Operating system is one that behaves in a manner similar to a Unix system while not necessarily conforming Mac OS is the trademarked name for a series of Graphical user interface -based Operating systems developed by Apple Inc Microsoft Windows is a series of Software Operating systems and Graphical user interfaces produced by Microsoft. NetWare is a Network operating system developed by Novell Inc The IBM System i is IBM's previous generation of systems designed for IBM i users and was subsequently replaced by the IBM Power Systems in April 2008 An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination Alternative remote file access protocols include the Server Message Block (SMB, also known as CIFS) protocol, Apple Filing Protocol (AFP), NetWare Core Protocol (NCP), and OS/400 File Server file system (QFileSvr. In Computer networking, Server Message Block ( SMB) operates as an application-level network protocol mainly used to provide Shared access The Apple Filing Protocol ( AFP) is a layer 6 ( Presentation layer) network protocol that offers file services for Mac OS X and original Mac The NetWare Core Protocol ( NCP) is a network protocol used in some products from Novell Inc 400). SMB and NetWare Core Protocol (NCP) occur more commonly than NFS on systems running Microsoft Windows; AFP occurs more commonly than NFS in Macintosh systems; and QFileSvr. The NetWare Core Protocol ( NCP) is a network protocol used in some products from Novell Inc Macintosh, commonly nicknamed Mac is a Brand name which covers several lines of Personal computers designed developed and marketed by Apple Inc 400 occurs more commonly in AS/400 systems. The IBM System i is IBM's previous generation of systems designed for IBM i users and was subsequently replaced by the IBM Power Systems in April 2008
nfsd) in order to make its data generically available to clients. A client is an application or system that accesses a remote service on another Computer system, known as a server, by way of a Network. A server is a Computer dedicated to providing one or more services over a computer network typically through a request-response routine In Unix and other computer multitasking Operating systems a daemon (ˈdiːmən or /ˈdeɪmən/ is a Computer program that runs in the background
/etc/exportsconfiguration file and the
exportfscommand). In Computing, a directory, catalog, folder or drawer is an entity in a File system, which contains a group of files and/or other directories
Note that automation of the NFS mounting process may take place — perhaps using
/etc/fstab and/or automounting facilities. The Berkeley Automounter (or amd) first appeared in 44BSD, and is a computer Automounter Daemon.
NFS and ONC figured prominently in the network-computing war between Sun Microsystems and Apollo Computer, and later the UNIX wars (ca 1987-1996) between AT&T and Sun on one side, and Digital Equipment, HP, and IBM on the other. The Unix wars were the struggles between Vendors of the Unix Computer Operating system in the late 1980s and early 1990s to set the standard for Before proposing a merge request please see Talk and see if the merger you propose has recently been made and Digital Equipment Corporation was a pioneering American company in the Computer industry International Business Machines Corporation abbreviated IBM and nicknamed "Big Blue", is a multinational Computer Technology
During the development of the ONC protocol (called SunRPC at the time), only Apollo's Network Computing System (NCS) offered comparable functionality. ONC RPC, short for Open Network Computing Remote Procedure Call, is a widely deployed Remote procedure call system The Network Computing System (NCS was an implementation of the Network Computing Architecture (NCA Two competing groups developed over fundamental differences in the two remote procedure call systems. Arguments focused on the method for data-encoding — ONC's External Data Representation (XDR) always rendered integers in big-endian order, even if both peers of the connection had little-endian machine-architectures, whereas NCS's method attempted to avoid byte-swap whenever two peers shared a common endianness in their machine-architectures. eXternal Data Representation (XDR is an IETF standard from 1995 of the Presentation layer in the OSI model. An industry-group called the Network Computing Forum formed (March 1987) in an (ultimately unsuccessful) attempt to reconcile the two network-computing environments.
Later, Sun and AT&T announced that the two firms would jointly develop AT&T's next version of UNIX: System V Release 4. This caused many of AT&T's other licensees of UNIX System V to become concerned that this would put Sun in an advantaged position, and it ultimately led to Digital Equipment, HP, IBM, and others forming the Open Software Foundation (OSF) in 1988. The Open Software Foundation ( OSF) was an organization founded in 1988 to create an Open standard for an implementation of the Unix operating Ironically, Sun and AT&T had previously competed over Sun's NFS versus AT&T's Remote File System (RFS), and the quick adoption of NFS over RFS by Digital Equipment, HP, IBM, and many other computer vendors tipped the majority of users in favor of NFS. The Remote File System ( RFS) was a Distributed file system developed by AT&T in the 1980s
OSF solicited the proposals for various technologies, including the remote procedure call (RPC) system and the remote file access protocol. Remote procedure call ( RPC) is an Inter-process communication technology that allows a Computer program to cause a Subroutine or procedure to In the end, proposals for these two requirements, called respectively, the Distributed Computing Environment (DCE), and the Distributed File System (DFS) won over Sun's proposed ONC and NFS. The Distributed Computing Environment (DCE is a software system developed in the early 1990s by a consortium that included Apollo Computer (later part of Hewlett-Packard The DCE Distributed File System (DCE/DFS is the remote file access protocol used with the Distributed Computing Environment. DCE derived from a suite of technologies, including NCS and Kerberos. Kerberos is a Computer network Authentication protocol, which allows individuals communicating over a non-secure network to prove their identity to one DFS used DCE as the RPC and derived from AFS.
Sun Microsystems and the Internet Society (ISOC) reached an agreement to cede "change control" of ONC RPC so that ISOC's engineering-standards body, the Internet Engineering Task Force (IETF), could publish standards documents (RFCs) documenting the ONC RPC protocols and could extend ONC RPC. The Internet Society or ISOC is an international nonprofit organization founded in 1992 to provide leadership in Internet related standards education and policy OSF attempted to make DCE RPC an IETF standard, but ultimately proved unwilling to give up change-control. Later, the IETF chose to extend ONC RPC by adding a new authentication flavor based on GSSAPI, RPCSEC GSS, in order to meet IETF's requirements that protocol standards have adequate security. The Generic Security Services Application Program Interface ( GSSAPI, also GSS-API) is an Application programming interface for programs to access Security
Later, Sun and ISOC reached a similar agreement to give ISOC change control over NFS, although writing the contract carefully to exclude NFS version 2 and version 3. Instead, ISOC gained the right to add new versions to the NFS protocol, which resulted in IETF specifying NFS version 4 in 2003.
By the 21st century, neither DFS nor AFS had achieved any major commercial success as compared to CIFS or NFS. IBM, which had previously acquired the primary commercial vendor of DFS and AFS, Transarc, donated most of the AFS source code to the free software community in 2000. Transarc Corporation was a private Pittsburgh -based software company founded in 1989 by Jeffrey Eppinger, Michael Kazar, Alfred Spector, and The free software community is an informal term referring to the users and developers of Free software as well as supporters of the Free software movement. The OpenAFS project lives on. OpenAFS is an Open source implementation of the Andrew Distributed file system (AFS In early 2005, IBM announced end of sales for AFS and DFS.
Considering a minor version with respect to taxonomy, NFSv4. 1 presents new opportunities for the NAS community - both the customers and the vendors. The primary addition being Parallel NFS (pNFS). pNFS is a method of introducing Data Access Parallelism. The NFSv4. 1 protocol defines a method of separating the meta-data (names and attributes) of a filesystem from the location of the file data; it goes beyond the simple name/data separation of striping the data amongst a set of data servers. This is different from the traditional NFS server which holds the names of files and their data under the single umbrella of the server. There exists products which are multi-node NFS servers, but the participation of the client in separation of meta-data and data is limited. The NFSv4. 1 client can be enabled to be a direct participant in the exact location of file data and avoid solitary interaction with the single NFS server when moving data.
The NFSv4. 1 pNFS server is a collection of server resources or components; these are assumed to be controlled by the meta-data server.
The pNFS client still accesses a single meta-data server for traversal or interaction with the namespace; when the client moves data to and from the server it may be directly interacting with the set of data servers belonging to the pNFS server collection.
In addition to pNFS, NFSv4. 1 provides Sessions, Directory Delegation and Notifications, Multi-server Namespace, ACL/SACL/DACL, Retention Attributions, and SECINFO_NO_NAME.