This book describes a set of kernel-level mechanisms that support the construction of modular, reliable, decentralized operating systems for real-time control applications. The research addresses not only the operating system kernel interface but also the engineering tradeoffs required to create, implement, and integrate the internal mechanisms of the overall system. As is true in many research efforts, some restrictions, for example, using existing hardware and programming languages, were necessary in order to focus on the important aspects of the research efforts. The Alpha kernel system being developed in this research is still in its initial stages and considerable work is yet to be done; however, it appears that this research effort is well on the way to developing a system that can and will be implemented with real-world applications.
Chapter 1 of the book is a well-written overview of the research effort, citing the need for, purpose of, and approach taken in the research. Chapter 2 describes the programming abstractions created for the Alpha kernel to meet the requirements set forth in the introduction. Chapter 3 defines the client interface provided by the kernel in support of the given programming abstractions. Chapter 4 provides a description of the functional design of the kernel, while chapter 5 provides a more detailed description of the kernel mechanisms’ design. The hardware on which the kernel was constructed and the implications of this hardware on the design and implementation of the kernel are described in chapter 6. This is followed by a comparison of Alpha with other relevant operating system efforts in chapter 7. Appendix A contains a description of the language extensions used in writing the initial objects for the Alpha kernel.
The book is intended to be a report on an ongoing research project at Carnegie-Mellon University. It would not be appropriate as a text for an undergraduate computer science course but would serve as an excellent reference for a graduate course in operating systems or distributed systems design. Knowledge of operating systems and distributed systems is necessary to read this well-written book.
I hope the brevity of this review does not do an injustice to this excellent book; it covers many key areas necessary to the development and implementation of a critical real-time distributed system. However, a detailed discussion of the content would bog down quickly.