Schon in den 80er Jahren des letzten Jahrhunderts machten sich findige Ingenieure bei Sun an die Arbeit, Dateien zentral auf einem Server abzulegen, die dann von vielen Clients genutzt werden konnten. Mit der Veröffentlichung als RFC 1094 [1] im März 1989 setzten sie die Versionsnummer auf 2 herauf, um sich von den internen Tests bei Sun zu unterscheiden.
Zentrales Problem von Dateisystemen, auf die viele Benutzer zugreifen können, ist natürlich, ein mögliches Chaos durch gleichzeitiges Schreiben zu verhindern. Was passiert, wenn ein Benutzer eine Datei bearbeitet und ein anderer Benutzer diese Datei zur selben Zeit löscht oder eigene Änderungen einfügt? Dieses Problem tritt nicht erst mit modernen Cluster-Dateisystemen oder einer verteilten Versionsverwaltung auf. Die Lösung für NFS war ein Locking- System. Ein eigener Dienst kümmert sich auf dem Server darum, benutzte Dateien für andere zu sperren.
Die Ingenieure wollten NFS so einfach wie möglich implementieren und verteilten die einzelnen Komponenten deshalb auf einzelne Dienste. Alle Dienste laufen als eigenständige Prozesse, die sich über Remote Procedure Calls (RPCs, [2]) aufrufen lassen. Diese Prozesse gibt es:
Die nachfolgenden Dienste werden durch einzelne Programme erbracht, die im Hintergrund arbeiten und sich dabei am zentralen RPC-Dienst anmelden:
Der NFSv2-Server arbeitet ohne Status, deshalb nutzt er auch das Protokoll UDP für die Datenübertragung.
Da die Portnummern des RPC-Dienstes verteilt werden, variieren sie. Das führt zu besonderer Freude bei jedem Firewall-Administrator. Viele haben hier kapituliert und gleich alle Ports zwischen den Clients und dem Server freigeschaltet.
Mit den Erfahrungen aus Version 2 konnten die Macher des Internets (die Ingenieure der IETF) dazu übergehen, vieles zu verbessern. Im Jahr 1995 erschien RFC 1813 und NFSv3 war geboren. Die Grundstruktur aus Diensten, die sich beim zentralen RPC-Dienst registrieren, blieb erhalten. Daneben gab es aber viele Verbesserungen im Detail. Mit der Version 3 wurden 64-Bit-Dateisysteme unterstützt. Somit war auch der Zugriff auf Dateien mit mehr als 2 GByte endlich möglich.
Verschiedene Hersteller implementierten auch NFS über das Protokoll TCP in ihre Produkte. Mit dem TCP-Protokoll konnte NFS auch über WAN-Strecken mit erhöhten Latenzzeiten und Paketverlusten genutzt werden.