Next Previous Contents

## 1. Preface

Welcome to Coda! Whether you are at Carnegie Mellon or elsewhere, we hope that this manual will help you make effective use of the Coda File System. The manual is written from two different perspectives: end user and system administrator. Chapters GettingStarted through TroubleShooting are intended for end users, while Chapters SystemOverview through ReinitCoda are intended for system administrators. Also, SourceLayout gives an overview of the Coda source tree layout. The Unix-style man pages in Appendix ManPages provide the gory details of Coda commands and file formats.

In writing this manual, we have assumed that you are an experienced Unix user, familiar with the broad concepts of distributed file systems. If you are a system administrator, we assume that you are familiar with administering Unix systems. You will find Coda especially easy to use if you are already fluent in using AFS.

We have also assumed that you are familiar with the design goals and architecture of Coda. The best way to learn about these is to read the overview and design rationale papers on Coda ], ], ]. We urge you to obtain copies of these papers and to read them before attempting to use Coda. Those papers provide context and information upon which this manual relies and does not repeat.

Since Coda is an experimental system and not a commercial product, you will inevitably encounter rough edges. Within the limits of our resources, we will do our best to fix these problems and to improve the system over time. But we do ask that you try to characterize the problem as accurately as possible, and to try and obtain a repeatable and concise instance of it.

We encourage you to talk to other Coda users and to share your experience. If you are at CMU-SCS, you should subscribe to the Coda bulletin boards. The three most important ones for you as an end user are `cmu.cs.proj.coda.{general,laptops,bugs}`. Report bugs that you find to the latter bboard. System administrators should also subscribe to the `cmu.cs.proj.coda.{changelog,backuplogs}`.

After you have taken the time to learn the system well, please give us your feedback. We would like to improve the system and this manual.

## 1.1 Further Reading

Besides the three papers mentioned above, there are a number of papers that address specific aspects of Coda. These include:

- A description of the MiniCache, which allows the client manager to reside outside the kernel without excessive loss of performance ].
- A description and performance analysis of the technique used in Coda for transparent directory resolution ].
- A manual on the remote procedure call, RPC2, and threading, LWP, mechanisms used in Coda ].
- A paper and manual on the transactional facility, RVM, used on Coda clients and servers ], ].
- A detailed description of support for disconnected operation in Coda ]. Chapter 4 of this document offers an excellent overview of the implementation structure of clients and servers.
- A discussion of relevant security issues and mechanisms to address them ]. This paper discusses security in AFS-2, but the mechanisms in Coda are virtually identical.

## 1.2 Acknowledgements

Coda is the work of many individuals. Contributors to the design and implementation of various aspects of the system include: Jay Kistler, Puneet Kumar, David Steere, Lily Mummert, Maria Ebling, M. Satyanarayanan, Hank Mashburn, Brian Noble, Lu Qi, Josh Raiff, Ellen Siegel, Anders Klemets, and Kudo Masahi. Many of these individuals have also contributed to the writing of this manual. The system has improved considerably in response to feedback from users outside the Coda project. The earliest of these users (Tom Mitchell, Manuela Veloso, and Matt Zekauskas) deserve special thanks for their willingness to sail into uncharted waters!

## 1.3 Reading List

Next Previous Contents