skip to main content
Skip header Section
The Design and Implementation of the FreeBSD Operating SystemJuly 2004
Publisher:
  • Pearson Education
ISBN:978-0-201-70245-3
Published:01 July 2004
Skip Bibliometrics Section
Bibliometrics
Skip Abstract Section
Abstract

As in earlier Addison-Wesley books on the UNIX-based BSD operating system, Kirk McKusick and George Neville-Neil deliver here the most comprehensive, up-to-date, and authoritative technical information on the internal structure of open source FreeBSD. Readers involved in technical and sales support can learn the capabilities and limitations of the system; applications developers can learn effectively and efficiently how to interface to the system; system administrators can learn how to maintain, tune, and configure the system; and systems programmers can learn how to extend, enhance, and interface to the system.The authors provide a concise overview of FreeBSD's design and implementation. Then, while explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing the systems facilities. As a result, readers can use this book as both a practical reference and an in-depth study of a contemporary, portable, open source operating system.This book: Details the many performance improvements in the virtual memory system Describes the new symmetric multiprocessor support Includes new sections on threads and their scheduling Introduces the new jail facility to ease the hosting of multiple domains Updates information on networking and interprocess communicationAlready widely used for Internet services and firewalls, high-availability servers, and general timesharing systems, the lean quality of FreeBSD also suits the growing area of embedded systems. Unlike Linux, FreeBSD does not require users to publicize any changes they make to the source code.

Cited By

  1. ACM
    Yan Z, Lustig D, Nellans D and Bhattacharjee A Nimble Page Management for Tiered Memory Systems Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems, (331-345)
  2. ACM
    Yan Z, Lustig D, Nellans D and Bhattacharjee A Translation ranger Proceedings of the 46th International Symposium on Computer Architecture, (698-710)
  3. ACM
    Panwar A, Patel N and Gopinath K A Case for Protecting Huge Pages from the Kernel Proceedings of the 7th ACM SIGOPS Asia-Pacific Workshop on Systems, (1-8)
  4. Litton J, Vahldiek-Oberwagner A, Elnikety E, Garg D, Bhattacharjee B and Druschel P Light-weight contexts Proceedings of the 12th USENIX conference on Operating Systems Design and Implementation, (49-64)
  5. Poss R and Koning K (2016). AM$^3$ : Towards A Hardware Unix Accelerator for Many-Cores, IEEE Transactions on Parallel and Distributed Systems, 27:8, (2208-2221), Online publication date: 1-Aug-2016.
  6. ACM
    Marinos I, Watson R and Handley M (2014). Network stack specialization for performance, ACM SIGCOMM Computer Communication Review, 44:4, (175-186), Online publication date: 25-Feb-2015.
  7. ACM
    Agarwal K, Jain B and Porter D Containing the Hype Proceedings of the 6th Asia-Pacific Workshop on Systems, (1-9)
  8. ACM
    Ma A, Dragga C, Arpaci-Dusseau A, Arpaci-Dusseau R and Mckusick M (2014). Ffsck, ACM Transactions on Storage, 10:1, (1-28), Online publication date: 1-Jan-2014.
  9. ACM
    Anderson J, Watson R, Chisnall D, Gudka K, Marinos I and Davis B TESLA Proceedings of the Ninth European Conference on Computer Systems, (1-14)
  10. ACM
    Marinos I, Watson R and Handley M Network stack specialization for performance Proceedings of the 2014 ACM conference on SIGCOMM, (175-186)
  11. ACM
    Pfitscher R, Pillon M and Obelheiro R (2014). Customer-oriented diagnosis of memory provisioning for IaaS clouds, ACM SIGOPS Operating Systems Review, 48:1, (2-10), Online publication date: 15-May-2014.
  12. ACM
    Woodruff J, Watson R, Chisnall D, Moore S, Anderson J, Davis B, Laurie B, Neumann P, Norton R and Roe M (2014). The CHERI capability model, ACM SIGARCH Computer Architecture News, 42:3, (457-468), Online publication date: 16-Oct-2014.
  13. Woodruff J, Watson R, Chisnall D, Moore S, Anderson J, Davis B, Laurie B, Neumann P, Norton R and Roe M The CHERI capability model Proceeding of the 41st annual international symposium on Computer architecuture, (457-468)
  14. ACM
    Cui Y, Wang Y, Chen Y and Shi Y (2013). Lock-contention-aware scheduler, ACM Transactions on Architecture and Code Optimization, 9:4, (1-25), Online publication date: 1-Jan-2013.
  15. ACM
    Watson R (2013). A decade of OS access-control extensibility, Communications of the ACM, 56:2, (52-63), Online publication date: 1-Feb-2013.
  16. ACM
    Watson R (2013). A Decade of OS Access-control Extensibility, Queue, 11:1, (20-41), Online publication date: 1-Jan-2013.
  17. ACM
    Marinos I, Watson R and Handley M Network stack specialization for performance Proceedings of the Twelfth ACM Workshop on Hot Topics in Networks, (1-7)
  18. ACM
    Rizzo L (2012). Revisiting Network I/O APIs: The netmap Framework, Queue, 10:1, (30-39), Online publication date: 1-Jan-2012.
  19. ACM
    Atanassov I An approach for indexing file names in a directory Proceedings of the 13th International Conference on Computer Systems and Technologies, (259-266)
  20. Lohmann D, Spinczyk O, Hofer W and Schröder-Preikschat W The aspect-aware design and implementation of the CiAO operating-system family Transactions on Aspect-Oriented Software Development IX, (168-215)
  21. ACM
    Rizzo L (2012). Revisiting network I/O APIs, Communications of the ACM, 55:3, (45-51), Online publication date: 1-Mar-2012.
  22. ACM
    Li J, Wang Z, Jiang X, Grace M and Bahram S Defeating return-oriented rootkits with "Return-Less" kernels Proceedings of the 5th European conference on Computer systems, (195-208)
  23. ACM
    Zheng H and Nieh J RSIO Proceedings of the ACM SIGMETRICS international conference on Measurement and modeling of computer systems, (263-274)
  24. ACM
    Zheng H and Nieh J (2010). RSIO, ACM SIGMETRICS Performance Evaluation Review, 38:1, (263-274), Online publication date: 12-Jun-2010.
  25. ACM
    Li Q and Macy K Optimizing the BSD routing system for parallel processing Proceedings of the 2nd ACM SIGCOMM workshop on Programmable routers for extensible services of tomorrow, (37-42)
  26. ACM
    Madhavapeddy A, Ho A, Deegan T, Scott D and Sohan R Melange Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, (101-114)
  27. ACM
    Madhavapeddy A, Ho A, Deegan T, Scott D and Sohan R (2007). Melange, ACM SIGOPS Operating Systems Review, 41:3, (101-114), Online publication date: 1-Jun-2007.
  28. ACM
    Atanassov I Simulation of dynamic priority calculation for multilevel priority queue Proceedings of the 2007 international conference on Computer systems and technologies, (1-6)
  29. ACM
    Spinellis D Global software development in the freeBSD project Proceedings of the 2006 international workshop on Global software development for the practitioner, (73-79)
  30. ACM
    McCorkle E Modern features for systems programming languages Proceedings of the 44th annual Southeast regional conference, (691-697)
  31. ACM
    Engel M and Freisleben B Supporting autonomic computing functionality via dynamic operating system kernel aspects Proceedings of the 4th international conference on Aspect-oriented software development, (51-62)
Contributors
  • University of California, Berkeley
  • Association for Computing Machinery

Recommendations

Diomidis Spinellis

The code of an operating system embodies all that makes systems programming a fascinating and exciting endeavor: the definition of interfaces and abstractions; the use of interesting algorithms and data structures; an unparalleled attention to reliability, efficiency, and scalability; and tight integration with hardware. It also includes 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 gold mine of practical and valuable knowledge; previous works of this genre, such as those by Organick [1], Lions [2], Bach [3], and Leffler et al. [4], have all, deservedly, become classics. McKusick 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 myself). FreeBSD offers advanced networking, performance, security, and compatibility features that 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 file system snapshots. Continuing in the style of its predecessors, the book successfully marries theory and practice. Each chapter introduces basic concepts, theory, and terminology before delving into 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 advanced undergraduate or graduate operating systems courses, providing students with a chance to learn from a system that 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 this book is dedicated, should consider it a blessing to have the book at its disposal. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.