A FileSystem designed to operate across a network. Two common NetworkFileSystems are NetworkFileSystem/NFS and AndrewFileSystem/AFS.

Created by SunMicrosystems, NFS is the Network FileSystem for Unix. NFS works on a RemoteProcedureCall system, translating all the calls you make on the local machine to open(2), read(2), write(2), close(2) etc to calls on the remote machine.

A nice thing about NFS is that it's stateless. Therefore, resource use on the server does not scale with the number of clients, and clients won't be affected as servers disappear and reappear. At least in theory.

On the other hand, it lacks many advanced and even not so advanced features or newer networked FileSystems, such as disconnected operation. Its security model is simpleminded at best -- it maps UIDs between machines, not even attempting to authenticate users. Locking on NFS is notoriously unreliable. Performance is a mixed bag; many combinations of NFS server and client implementations lead to abysmal throughput. These and an assortment of other problems have led many a SysAdmin to expand the NFS acronym as Nightmare FileSystem.

NFSv4 has mostly solved these issues, you can have an id remapper to map uid/gid's between machines, Users can be authenticated on a per user basis. Network traffic can be encrypted. locking is now a core part of the protocol, and the entire thing runs over TCP which gives much better performance. NFSv4 is very new at the time of writing (2004-10-08) but seems likely to be set to become the standard version of NFS in very short order (mostly because of the new features listed here).

Because it is built on RPC, it does not use any single port and is therefor difficult for FireWalls to handle. Configuring NFS for firewall control steps you through the configuration process.