Spring 2009

Preparation for Recitation 12

Read Appendix 4.5, Case study: The Network File System (NFS).

NFS provides a filesystem interface to files stored on a remote machine. You are familiar with another network file system, AFS, which provides the same functionality to you when you login to an Athena workstation and access your home directory.

NFS raises a number of interesting naming questions. NFS goes to great lengths to make sure file handles are unique; it adds generation numbers for inodes and a file system ID to the filehandle in addition to the inode number. What is it about NFS's design that makes unique filehandles so important? What could go wrong if two files had the same filehandle?

The architects of NFS modified the UNIX kernel significantly to add the Virtual File System interface; modern variants of UNIX retain the VFS even when they don't use NFS. VFS provides a layer of indirection between applications and the underlying file system. Why was this indirection so important to NFS?

Some NFS operations are idempotent. Idempotent operations can be safely executed more than once. Compare the NFS write (see table 4-1) to the standard UNIX write system call. Why is the UNIX syscall not idempotent and why is an NFS write idempotent? Can the rename NFS operation be considered idempotent? What about if there are multiple clients?

Questions or comments regarding 6.033? Send e-mail to the 6.033 staff at or to the 6.033 TAs at

Top // 6.033 home // $Revision: 133 $, last modified on $Date: 2009-04-05 17:06:33 -0400 (Sun, 05 Apr 2009) $ GMT by $Author: cowling $