Amazon.com: The Design and Implementation of the FreeBSD Operating System (9780201702453): Marshall Kirk McKusick, George V. Neville-Neil: Books
The Design and Implementation of the FreeBSD Operating Sy... and over one million other books are available for Amazon Kindle. Learn more

Kindle Edition
 
   
Sell Back Your Copy
For a $19.75 Gift Card
Trade in
Have one to sell? Sell yours here
The Design and Implementation of the FreeBSD Operating System
 
 
Start reading The Design and Implementation of the FreeBSD Operating Sy... on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

The Design and Implementation of the FreeBSD Operating System [Hardcover]

Marshall Kirk McKusick (Author), George V. Neville-Neil (Author)
4.9 out of 5 stars  See all reviews (11 customer reviews)


Available from these sellers.


Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Formats

Amazon Price New from Used from
Kindle Edition $32.99  
Hardcover --  
Paperback --  
Sell Back Your Copy for $19.75
Whether you buy it used on Amazon for $36.42 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $19.75.
Used Price$36.42
Trade-in Price$19.75
Price after
Trade-in
$16.67

Book Description

August 12, 2004 0201702452 978-0201702453 1

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 communication

Already 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.





Editorial Reviews

About the Author

Marshall Kirk McKusick writes books and articles, consults, and teaches classes on UNIX- and BSD-related subjects. While at the University of California at Berkeley, he implemented the 4.2BSD fast file system, and was the research computer scientist at the Berkeley Computer Systems Research Group (CSRG) overseeing the development and release of 4.3BSD and 4.4BSD. He has twice served as the president of the board of the Usenix Association.

George V. Neville-Neil works on network and operating system code for fun and profit and teaches programming. He also serves on the editorial board of Queue magazine and is a member of the Usenix Association, ACM, and IEEE.



Excerpt. © Reprinted by permission. All rights reserved.

This book follows the earlier authoritative and full-length descriptions of the design and implementation of the 4.3BSD and 4.4BSD versions of the UNIX system developed at the University of California at Berkeley. Since the final Berkeley release in 1994, several groups have continued development of BSD. This book details FreeBSD, the system with the largest set of developers and the most widely distributed releases. Although the FreeBSD distribution includes nearly 1000 utility programs in its base system and nearly 10,000 optional utilities in its ports collection, this book concentrates almost exclusively on the kernel.

UNIX-like Systems

UNIX-like systems include the traditional vendor systems such as Solaris and HP-UX; the Linux-based distributions such as Red Hat, Debian, Suse, and Slackware; and the BSD-based distributions such as FreeBSD, NetBSD, OpenBSD, and Darwin. They run on computers ranging from laptops to the largest supercomputers. They are the operating system of choice for most multiprocessor, graphics, and vector-processing systems, and are widely used for the original purpose of timesharing. The most common platform for providing network services (from FTP to WWW) on the Internet, they are collectively the most portable operating system ever dev eloped. This portability is due partly to their implementation language, C Kernighan & Ritchie, 1989 (which is itself a widely ported language), and partly to the elegant design of the system.

Since its inception in 1969 Ritchie & Thompson, 1978, the UNIX system has developed in several divergent and rejoining streams. The original developers continued to advance the state of the art with their Ninth and Tenth Edition UNIX inside AT&T Bell Laboratories, and then their Plan 9 successor to UNIX. Meanwhile, AT&T licensed UNIX System V as a product before selling it to Novell. Novell passed the UNIX trademark to X/OPEN and sold the source code and distribution rights to Santa Cruz Operation (SCO). Both System V and Ninth Edition UNIX were strongly influenced by the Berkeley Software Distributions produced by the Computer Systems Research Group (CSRG) of the University of California at Berkeley. The Linux operating system, although developed independently of the other UNIX variants, implements the UNIX interface. Thus, applications developed to run on other UNIX-based platforms can be easily ported to run on Linux.

Berkeley Software Distributions

The distributions from Berkeley were the first UNIX-based systems to introduce many important features including the following:

  • Demand-paged virtual-memory support
  • Automatic configuration of the hardware and I/O system
  • A fast and recoverable filesystem
  • The socket-based interprocess-communication (IPC) primitives
  • The reference implementation of TCP/IP

The Berkeley releases found their way into the UNIX systems of many vendors and were used internally by the development groups of many other vendors. The implementation of the TCP/IP networking protocol suite in 4.2BSD and 4.3BSD, and the availability of those systems, played a key role in making the TCP/IP networking protocol suite a world standard. Even the non-UNIX vendors such as Microsoft have adopted the Berkeley socket design in their Winsock IPC interface.

The BSD releases have also been a strong influence on the POSIX (IEEE Std 1003.1) operating-system interface standard, and on related standards. Several features—such as reliable signals, job control, multiple access groups per process, and the routines for directory operations—have been adapted from BSD for POSIX.

Early BSD releases contained licensed UNIX code, thus requiring recipients to have an AT&T source license to be able to obtain and use BSD. In 1988, Berkeley separated its distribution into AT&T licensed and freely redistributable code. The freely redistributable code was licensed separately and could be obtained, used, and redistributed by anyone. The final freely redistributable 4.4BSD-Lite2 release from Berkeley in 1994 contained nearly the entire kernel and all the important libraries and utilities.

Two groups, NetBSD and FreeBSD, sprang up in 1993 to begin supporting and distributing systems built from the freely redistributable releases being done by Berkeley. The NetBSD group emphasized portability and the minimalist approach, porting the systems to nearly forty platforms and pushing to keep the system lean to aid embedded applications. The FreeBSD group emphasized maximal support for the PC architecture and pushed to ease installation for, and market their system to, as wide an audience as possible. In 1995, the OpenBSD group split from the NetBSD group to develop a distribution that emphasized security. Over the years there has been a healthy competition among the BSD distributions, with many ideas and much code flowing between them.

Material Covered in this Book

This book is about the internal structure of the FreeBSD 5.2 kernel and about the concepts, data structures, and algorithms used in implementing FreeBSD’s system facilities. Its level of detail is similar to that of Bach’s book about UNIX System V Bach, 1986; however, this text focuses on the facilities, data structures, and algorithms used in the FreeBSD variant of the UNIX operating system. The book covers FreeBSD from the system-call level down—from the interface to the kernel to the hardware itself. The kernel includes system facilities, such as process management, virtual memory, the I/O system, filesystems, the socket IPC mechanism, and network protocol implementations. Material above the system-call level—such as libraries, shells, commands, programming languages, and other user interfaces—is excluded, except for some material related to the terminal interface and to system startup. Following the organization first established by Organick’s book about Multics Organick, 1975, this book is an in-depth study of a contemporary operating system.

Where particular hardware is relevant, the book refers to the Intel Personal Computer (PC) architecture. Because FreeBSD has emphasized development on the PC, that is the architecture with the most complete support, so it provides a convenient point of reference.

Use by Computer Professionals

FreeBSD is widely used to support the core infrastructure of many companies worldwide. Because it can be built with a small footprint, it is also seeing increased use in embedded applications. The licensing terms of FreeBSD do not require the distribution of changes and enhancements to the system. The licensing terms of Linux require that all changes and enhancements to the kernel be made available in source form at minimal cost. Thus, companies that need to control the distribution of their intellectual property build their products using FreeBSD.

This book is of direct use to the professionals who work with FreeBSD systems. Individuals involved in technical and sales support can learn the capabilities and limitations of the system; applications developers can learn how to effectively and efficiently interface to the system; system administrators without direct experience with the FreeBSD kernel can learn how to maintain, tune, and configure the system; and systems programmers can learn how to extend, enhance, and interface to the system.

Readers who will benefit from this book include operating-system implementors, system programmers, UNIX application developers, administrators, and curious users. The book can be read as a companion to the source code of the system, falling as it does between the manual pages and the code in detail of treatment. But this book is neither exclusively a UNIX programming manual nor a user tutorial (for a tutorial, see Libes & Ressler 1988). Familiarity with the use of some version of the UNIX system (see, for example, Stevens 1992) and with the C programming language (see, for example, Kernighan & Ritchie 1989) would be extremely useful.

Use in Courses on Operating Systems

This book is suitable for use as a reference text to provide background for a primary textbook in a first-level course on operating systems. It is not intended for use as an introductory operating-system textbook; the reader should have already encountered terminology such as memory management, process scheduling, and I/O systems Silberschatz et al., 2002. Familiarity with the concepts of network protocols Comer, 2000; Stallings, 2000; Tanenbaum, 2003 will be useful for understanding some of the later chapters.

This book can be used in combination with a copy of the FreeBSD system for more advanced operating systems courses. Students’ assignments can include changes to, or replacements of, key system components such as the scheduler, the paging daemon, the filesystems, thread signalling, various networking layers, and I/O management. The ability to load, replace, and unload modules from a running kernel allows students to experiment without the need to compile and reboot the system. By working with a real operating system, students can directly measure and experience the effects of their changes. Because of the intense peer review and insistence on well-defined coding standards throughout its 25-year lifetime, the FreeBSD kernel is considerably cleaner, more modular, and thus easier to understand and modify than most software projects of its size and age.

Exercises are provided at the end of each chapter. The exercises are graded into three categories indicated by zero, one, or two asterisks. The answers to exercises that carry no asterisks can be found in the text. Exercises with a single asterisk require a step of reasoning or intuition beyond a concept presented in the text. Exercises with two asterisks present major design projects or open research questions.

Organization

This text discusses both philosophical and design issues, as well as details of the ac...


Product Details

  • Hardcover: 720 pages
  • Publisher: Addison-Wesley Professional; 1 edition (August 12, 2004)
  • Language: English
  • ISBN-10: 0201702452
  • ISBN-13: 978-0201702453
  • Product Dimensions: 9.3 x 6.5 x 1.5 inches
  • Shipping Weight: 2.4 pounds
  • Average Customer Review: 4.9 out of 5 stars  See all reviews (11 customer reviews)
  • Amazon Best Sellers Rank: #68,731 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

11 Reviews
5 star:
 (10)
4 star:
 (1)
3 star:    (0)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.9 out of 5 stars (11 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

41 of 42 people found the following review helpful:
5.0 out of 5 stars Hardly a wasted word in this guide to the FreeBSD kernel, August 31, 2004
This review is from: The Design and Implementation of the FreeBSD Operating System (Hardcover)
I have been administering FreeBSD systems for four years, and I read 'The Design' to get a better understanding of the system 'under the hood.' This book is definitely not for beginners, and intermediate users like myself can become quickly overwhelmed. Nevertheless, I am very glad FreeBSD developers like McKusick and Neville-Neil took the time to document the kernel in this book.

Before tackling 'The Design,' I recommend reading a book like 'Modern Operating Systems, 2nd Ed' by Andrew Tannenbaum. The reader needs to be familiar with OS concepts and terms like 'mutex,' 'semaphore,' 'locking,' and so on before reading 'The Design.' If for some reason you want to read 'The Design' but are not familiar with userland FreeBSD issues, I recommend Greg Lehey's 'Complete FreeBSD, 4th Ed.'

I was unable to grasp all of the material in 'The Design,' since some of it will appeal only to those coding their own kernels or who are equipped to debate the FreeBSD core team's design choices. In that respect the book is well suited for a college course (perhaps a master's level?) where the content could be discussed by a professor and students. I was able to critically read the chapters covering networking (ch. 11-13) as I deploy FreeBSD partly for its robust TCP/IP stack. Reading 'The Design' helped me understand some of Robert Watson's recent posts concerning removal of the GIANT lock from the networking subsystem, for example.

There are many other parts of the book which non-kernel developers will find accessible. Nearly every chapter features a well-written introduction to the technology at hand, such as memory management (ch. 5) or devices (ch. 7). I found various bits of history helpful, like the development of NFS (ch. 9) or UNIX itself (ch. 1). Those trying to understand issues concerning the new ULE scheduler will find ch. 4 enlightening. The 38 page glossary is also excellent and the index is well-constructed.

'The Design' is the sort of book I expect to consult when I need greater insight to a certain aspect of the FreeBSD kernel. It's an excellent companion when one reads the freebsd-current mailing lists and needs background on the latest hot design issue. I would be happy to see other operating systems have similar books published, so that an apples-to-apples comparison of their capabilities could be made by informed users.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


14 of 14 people found the following review helpful:
5.0 out of 5 stars Highly recommended for learning how a kernel works in practice, August 14, 2005
By 
Daniel de Kok (Groningen, The Netherlands) - See all my reviews
This review is from: The Design and Implementation of the FreeBSD Operating System (Hardcover)
First of all you should be warned that this is not an introduction to get started with UNIX kernel programming. The Design of the UNIX Operating System by M.J. Bach provides a good general introduction to UNIX kernel programming. The design and implementation of the FreeBSD operating system is an excellent book to deepen knowledge of the UNIX kernel by looking how a current UNIX is implemented in practice. Even if you plan to write code for another kernel, working through the FreeBSD kernel with this book as a guide is a good excercise to become consious of the fundamental problems and solutions in kernel design. FreeBSD (or any of the other BSDs) is a good starting point, because the BSDs have relatively stable kernel subsystems and APIs due to the long cycles in BSD development.

The writing style of the authors is to the point (don't expect a novel) and clear. The troff typesetting of the book gives it a consistent style and simple, but clear diagrams (though I heard that some diagrams were hand-drawn). The book doesn't just drop the reader in a kernel subsystem. The second chapter gives a detailed explanation of the various kernel subsystems, and the relation between the subsystems. The third chapter gives a summary of what is expected from a kernel from the user level. Combined these two chapters give the reader the necessary conception of the FreeBSD kernel to start looking at individual parts of the kernel in detail. Most remaining chapters are logically ordered, in that subsystems are ordered from parts with less dependencies to parts with more dependencies (e.g. memory management and I/O are covered before filesystems).

If you are interested in UNIX programming, you should have this book on your bookshelf (as well as a CVS checkout of the FreeBSD kernel tree to read the implementation).
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


24 of 28 people found the following review helpful:
5.0 out of 5 stars In depth, well written and impressive, August 16, 2004
This review is from: The Design and Implementation of the FreeBSD Operating System (Hardcover)
This hardback academic style book is an impressive piece of work. The writing style is serious, but not overwhelming, and the use of graphics is appropriate and effective. The organization is what you would expect, it cuts the Kernel as if it were an onion and starts at the center, covering I/O and devices, goes through process management, file systems, IPC and networking. There are exercises at the end of every chapter.

This book is a genuinely impressive piece of work. It's well worth the money for anyone looking for a computer science work on operating systems construction.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews









Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(6)
(5)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...



Look for Similar Items by Category


Look for Similar Items by Subject