From 1984 Sun Microsystems to Modern Cloud: the Complete Nfs Timeline
Before NFS arrived, sharing project files between networked computers required manual transfers using tools like FTP or Unix-to-Unix Copy (UUCP). These workflows duplicated data, introduced merge conflicts, and wasted scarce drive platters. Sun Microsystems co-founder Bill Joy and engineer Russell Sandberg set out to make the network transparent. They designed NFS around a client-server architecture where a remote server could designate local file hierarchies as mount exports, allowing remote clients to mount those remote points directly into their local virtual filesystem trees.
Sandberg and his team made a consequential engineering choice: early NFS was completely stateless. The server tracked no open files, no active file offsets, and no client connection status. If a central storage server crashed and rebooted, client workstations did not need to renegotiate state or drop sessions; they simply retransmitted the outstanding Remote Procedure Call (RPC) requests until the server responded. To translate disparate byte orders between varying central processors, such as Motorola 68000 chips and VAX minicomputers, the protocol ran atop External Data Representation (XDR), which normalized data into a machine-independent format.
That initial simplicity carried steep operational trade-offs. Statelessness made genuine POSIX compliance nearly impossible. File locking required an auxiliary, error-prone daemon called the Network Lock Manager (NLM). Early versions ran exclusively over UDP, which meant a dropped packet inside a heavily partitioned network could trigger cascading timeout loops. Furthermore, NFSv2 was locked to 32-bit arithmetic, creating a hard limit of 2 gigabytes per file that quickly buckled under enterprise database demands.