This document is intended as a reference manual for a user that is already familiar with the x-kernel . There are several other sources of information that you should look at to learn more about the x-kernel .
First, the x-kernel was originally described in a pair of research papers [2,5]. These are a good place to start to understand the motivation and design rationale behind the x-kernel .
Second, this Programmer's Manual, while thorough, is somewhat cryptic. It does not serve as a tutorial that teaches you how to write x-kernel protocols. For help in learning how to write x-kernel protocols, including examples from several existing protocols, see [8]. This tutorial borrows liberally from [7], which provides an even more comprehensive discussion of protocol design and implementation.
Third, if you have just picked up the x-kernel and want to try it out without having to first learn everything there is to know about it, then [6] is a good place to begin. Once you have a version of the x-kernel that builds and runs, it is much easier to start playing with the various features and options discussed in the Programmer's Manual.
Fourth, the x-kernel can now be run as a network simulator rather than on top of a real network. This simulator, called x-sim, provides a complete and realistic framework for developing, analyzing, and testing network protocols. Information about how to configure and use x-sim can be found in [1].
Finally, various components of the x-kernel are described in detail in a collection of design documents. In particular, [4] describes the implementation of the message library and [3] describes the implementation of the map library. Note that it is not necessary to understand how these components are implemented in order to write protocols; these reports are intended for advanced users that want to know more about how the x-kernel is implemented.