Compared to the nachos File System project, the DFS project emphasizes programming experience with different topics (namely, caching and message-based process synchronization, instead of directory data structures), which I think are more beneficial to students. I find the nachos Network project unsatisfying, because it does not involve user programs running on the simulated machine, so it does not build on students' work in previous projects.
Students implement a DFS in which each nachos process is both a client and a server. The nachos processes communicate using the nachos PostOffice (built on top of sockets). In addition to support for basic file operations on remote files, students implement client caching of recently-used blocks of remote files, with a timer-based invalidation mechanism to ensure that cached data is not too old.
I have used nachos-dfs under Linux (Red Hat 6.0) with GNU g++ and under Solaris with Sun CC and GNU g++. Additional information about compiling nachos-dfs and cross-compiling user programs is available from my OS course's Project Mechanics page.
For more information, see the nachos-dfs README and the Summary of Differences Between nachos-dfs and nachos-3.4.
I hope you find this project useful. Comments and suggestions are greatly appreciated.
nachos-dfs distribution (version 2.1, December 1999) (350 KB)
Last modified: 8 November 2012
Scott D. Stoller
Telephone: 631-632-1627
Computer Science Department
FAX: 631-632-8334
Computer Science Bldg, Room 1429
myLastName@cs.stonybrook.edu
Stony Brook University
http://www.cs.stonybrook.edu/~stoller/
Stony Brook,
NY 11794-4400
My PGP Public Key