CODA CREDITS The Linux port of Coda was initiated and led by Peter Braam, starting in early 1996. Peter spent Fall 1996 as a visitor to the Coda group at Carnegie Mellon, and will be returning to work as a full time member of the project in April 1997. Generous and crucial help for the port was provided by Michael Callahan, Yui-Wah Lee (Clement), Werner Frielingsdorf, and members of the Coda group at Carnegie Mellon, particularly Josh Raiff, David Steere, Bob Baron, and Lily Mummert. The porting effort included a major restructuring of the Coda source code to use a build environment based on GNU tools. The Coda project began in 1987 with the goal of building a distributed file system that had the location transparency, scalability and security characteristics of AFS but offered substantially greater resilience in the face of failures of servers or network connections. As the project evolved, it became apparent that Coda's mechanisms for high availability provided an excellent base for exploring the new field of mobile computing. Coda pioneered the concept of disconnected operation and was the first distributed file system to provide this capability. Coda has been the vehicle for many other original contributions including server replication, log-based directory resolution, application-specific conflict resolution, exploitation of weak connectivity, isolation-only transactions, and translucent cache management. Coda was originally implemented on Mach 2.6 for the IBM RT-PC. It was then ported to Mach 2.6 on the DEC MIPS and Intel 386 architectures. More recently it has been ported to NetBSD (primarily by Brian Noble and M. Satyanarayanan) and FreeBSD (by Hiroshi Inamura) on Intel platforms, besides Linux. The implementation is almost entirely in user space, with only a small amount of kernel modifications. These modifications are primarily to allow efficient, transparent redirection of file requests from the VFS layer to the user-level cache manager. Coda embodies the creative energies of many people, working very hard over many years. The main contributors are listed below in order of their initial involvement with the project, together with a brief description of their primary contributions. This list is certainly incomplete: many people have done things for the project that aren't easily highlighted, such as helping track down difficult bugs, dealing with hardware problems, helping to restore server state after a major clobber, doing code cleanup, and so on. With these caveats in mind, here is the list: M. Satyanarayanan (1987-now) Chief cook and bottle washer James J. Kistler (1987-93) Overall architecture of Coda; design and implementation of server replication protocols; design, implementation and evaluation of support for disconnected operation; extension of MultiRPC to use IP multicast; design of MiniCache and RVM. Ellen H. Siegel (1987-89) Overall architecture of Coda; design, implementation, and evaluation of MultiRPC Puneet Kumar(1987-95) Design, implementation and evaluation of resolution subsystem; performance evaluation of server replication; performance evaluation of RVM; integration of RVM into Coda; LWP emulation; server internals documentation. David C. Steere (1988-96) Design and implementation of Coda MiniCache; design and implementation of Coda backup subsystem; RVM extensions for dynamic storage allocation. Maria Ebling (1989-98) Design and implementation of hoarding extensions for weak connectivity; original author of Coda manual. Lily B. Mummert (1989-97) Design, implementation and evaluation of mechanisms for weakly-connected operation. Hank Mashburn (1990-94) Design and implementation of RVM. Brian Noble (1991-98 ) Empirical usage data collection and analysis; implementation of Potemkin; NetBSD port. Masahi Kudo (1991-92) Extensions to Venus for data collection; extensions to RPC2 to support dynamic arrays. Qi Lu (1992-96) Design, implementation and evaluation of IOT mechanism; enhancements to Venus repair capability. Josh Raiff (1993-97) Coda system manager; design and implementation of norton; restructuring of Coda to use GNU build environment Bob Baron (1994-now) Mach wizardry; x86 guru; PCMCIA driver support; WaveLAN support. Hiroshi Inamura (1994-97) FreeBSD port Peter Braam (1996-now) Linux port including Linux minicache; restructuring to use GNU build environment, partition system, numerous bug fixes. Windows NT port. New directory handling. Yui-wah Lee (1996-now) Linux port (rvm). Research on strong clients. Elliot Lee (1997-98) Sparc Linux port, glibc port. Michael Callahan (1996-now)Windows Client 95 port. Robert Watson (1998-now) Kerberos support and portmapper (with Peter). Shafeeq Sinnamohideen (1998-now) RPC2 improvements. Jan Harkes (1998-now) Improvements to weak connectivity. Extensive changes and fixes throughout. Philip Nelson (1998-now) Solaris kernel module. Server and client improvements. Completion of NT kernel module. Mathew Monroe, PDB database. John-Anthony Owens, Samuel Ieong, Rudi Seitz. Work on Coda has been supported by many funding agencies and corporations over its history. The contributors include: National Science Foundation (NSF), Defense Advanced Projects Agency (DARPA), IBM Corporation, Digital Equipment Corporation, Sun Microsystems, Bellcore, and Intel Corporation. Any bugs in Coda are, of course, our responsibility not theirs! Coda began life as AFS-2, which is owned by IBM. Although most parts of the system are new or completely rewritten, there remain signicant parts of the code that are regarded as "derived code". Carnegie Mellon has obtained permission from IBM to freely distribute Coda source code under the terms mentioned in the Coda redistribution notice.