Copyright © 2005 by the Association for Computing Machinery, Inc.
Permission to make digital or hard copies of part or all of this work for
personal or classroom use is granted without fee provided that copies are
not made or distributed for profit or commercial advantage and that
copies bear this notice and the full citation on the first page.
Copyrights for components of this work owned by others than ACM must be
Abstracting with credit is permitted.
To copy otherwise, to republish, to post on servers, or to redistribute
to lists, requires prior specific permission and/or a fee.
Request permissions from Publications Dept, ACM Inc.,
fax +1 (212) 869-0481, or email@example.com.
Book Review: The Design and Implementation of the FreeBSD Operating System
Athens University of Economics and Business
Marshall Kirk McKusick and George V. Neville-Neil
The code of an operating system embodies all that makes systems programming a fascinating and exciting endeavour: the definition of interfaces and abstractions, the use of interesting algorithms and data structures, an unparalleled attention to reliability, efficiency, and scalability, tight integration with hardware, as well as innovative approaches for handling the problems of software stability, complexity, and portability. A book describing an operating system's design and implementation is destined to be a goldmine of practical and valuable knowledge; previous works of this genre, such as those by Organick, Lions, Bach, and Leffler et al, have all deservedly become classics.
McKusick's and Neville-Neil's book describes the design and implementation of the FreeBSD 5.2 operating system. FreeBSD is a free open-source operating system for a number of modern processor architectures. It is derived from BSD, the version of Unix developed by the Computer Science Research Group at the University of California, Berkeley. It is developed and maintained by a large, centrally managed, team of individuals (including this reviewer). FreeBSD offers today advanced networking, performance, security and compatibility features which are still missing in other operating systems, even some of the best commercial ones. Tempted by the system's quality and the liberal license under which it is distributed, many companies have adopted FreeBSD for running their production servers or for producing custom embedded systems. In addition to its adoption in mission critical applications, the system's academic pedigree has endowed FreeBSD with a culture promoting the development of cutting edge research features and an exemplary development process.
This book is an essential update on earlier books covering BSD systems, and now covers performance improvements in the virtual memory system, the new symmetric multiprocessor support, process threads, the operating system virtualization jail facility, and filesystem snapshots. Continuing with the style of its predecessors the book successfully marries theory and practice. Each chapter introduces the basic concepts, theory, and terminology before delving into the design and implementation details. Many elements of FreeBSD are derivatives of cutting-edge academic research; the corresponding papers are always cited, making the book a valuable roadmap for the budding researcher.
The book can serve a variety of purposes. First of all it will be of interest to anyone wanting to understand the internal workings of a modern operating system. In addition, the book can be used as a textbook in an advanced undergraduate or graduate operating systems course, providing students with a chance to learn from a system on which they can lay their hands on. Finally, those working on the FreeBSD kernel, for fun or profit, can use it as a comprehensive guide to the system's internals. In fact, the BSD community—to which the book is dedicated—should consider it a blessing to have it at its disposal.
The Design and Implementation of the FreeBSD Operating System
Addison Wesley, 2004