14 NFS Nightmare File System The “N” in NFS stands for Not, or Need, or perhaps Nightmare. —Henry Spencer In the mid-1980s, Sun Microsystems developed a system for letting com- puters share files over a network. Called the Network File System—or, more often, NFS—this system was largely responsible for Sun’s success as a computer manufacturer. NFS let Sun sell bargain-basement “diskless” workstations that stored files on larger “file servers,” all made possible through the magic of Xerox’s1 Ethernet technology. When disks became cheap enough, NFS still found favor because it made it easy for users to share files. Today the price of mass storage has dropped dramatically, yet NFS still enjoys popularity: it lets people store their personal files in a single, central location—the network file server—and access those files from anywhere on the local network. NFS has evolved an elaborate mythology of its own: 1Bet you didn’t know that Xerox holds the patent on Ethernet, did you?
284 NFS • NFS file servers simplify network management because only one computer need be regularly written to backup tape. • NFS lets “client computers” mount the disks on the server as if they were physically connected to themselves. The network fades away and a dozen or a hundred individual workstations look to the user like one big happy time-sharing machine. • NFS is “operating system independent.” This is all the more remark- able, considering that it was designed by Unix systems program- mers, developed for Unix, and indeed never tested on a non-Unix system until several years after its initial release. Nevertheless, it is testimony to the wisdom of the programmers at Sun Microsystems that the NFS protocol has nothing in it that is Unix-specific: any computer can be an NFS server or client. Several companies now offer NFS clients for such microcomputers as the IBM PC and Apple Macintosh, apparently proving this claim. • NFS users never need to log onto the server the workstation alone suffices. Remote disks are automatically mounted as necessary, and files are accessed transparently. Alternatively, workstations can be set to mount the disks on the server automatically at boot time. But practice rarely agrees with theory when the Nightmare File System is at work. Not Fully Serviceable NFS is based on the concept of the “magic cookie.” Every file and every directory on the file server is represented by a magic cookie. To read a file, you send the file server a packet containing the file’s magic cookie and the range of bytes that you want to read. The file server sends you back a packet with the bytes. Likewise, to read the contents of a directory, you send the server the directory's magic cookie. The server sends you back a list of the files that are in the remote directory, as well as a magic cookie for each of the files that the remote directory contains. To start this whole process off, you need the magic cookie for the remote file system's root directory. NFS uses a separate protocol for this called MOUNT. Send the file server’s mount daemon the name of the directory that you want to mount, and it sends you back a magic cookie for that directory.