 |
The Design and Implementation of the FreeBSD Operating System Be the First to Write a Review and tell the world about this title!People who purchase this book frequently purchase: - Linux Kernel Development, 2nd Edition; Robert Love, $30.95, 38% Off!
- Mastering FreeBSD and OpenBSD Security; Bruce Potter, et al, $40.50, 19% Off!
- BSD Hacks; Dru Lavigne, $15.95, 36% Off!
- The Complete FreeBSD; Greg Lehey, $27.95, 38% Off!
Books on similar topics, in best-seller order:Books from the same publisher, in best-seller order:
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.
Table of Contents
Preface.
I. OVERVIEW.
1. History and Goals.
History of the UNIX System.
BSD and Other Systems.
The Transition of BSD to Open Source.
The FreeBSD Development Model.
References.
2. Design Overview of FreeBSD.
FreeBSD Facilities and the Kernel.
Kernel Organization.
Kernel Services.
Process Management.
Memory Management.
I/O System.
Devices.
Filesystems.
Network Filesystem.
Terminals.
Interprocess Communication.
Network Communication.
Network Implementation.
System Operation.
Exercises.
References.
3. Kernel Services.
Kernel Organization.
System Calls.
Traps and Interrupts.
Clock Interrupts.
Memory-Management Services.
Timing Services.
User, Group, and Other Identifiers.
Resource Services.
System-Operation Services.
Exercises.
References.
II. PROCESSES.
4. Process Management.
Introduction to Process Management.
Process State.
Context Switching.
Thread Scheduling.
Process Creation.
Process Termination.
Signals.
Process Groups and Sessions.
Jails.
Process Debugging.
Exercises.
References.
5. Memory Management.
Terminology.
Overview of the FreeBSD Virtual-Memory System.
Kernel Memory Management.
Per-Process Resources.
Shared Memory.
Creation of a New Process.
Execution of a File.
Process Manipulation of Its Address Space.
Termination of a Process.
The Pager Interface.
Paging.
Page Replacement.
Portability.
Exercises.
References.
III. I/O SYSTEM.
6. I/O System Overview.
I/O Mapping from User to Device.
Character Devices.
Disk Devices.
Descriptor Management and Services.
The Virtual-Filesystem Interface.
Filesystem-Independent Services.
Stackable Filesystems.
Exercises.
References.
7. Devices.
Device Overview.
The GEOM Layer.
The CAM Layer.
The ATA Layer.
Device Configuration.
Exercises.
References.
8. Local Filesystems.
Hierarchical Filesystem Management.
Structure of an Inode.
Naming.
Quotas.
File Locking.
Soft Updates.
Filesystem Snapshots.
The Local Filestore.
The Berkeley Fast Filesystem.
Exercises.
References.
9. The Network Filesystem.
History and Overview.
NFS Structure and Operation.
Techniques for Improving Performance.
Exercises.
References.
10. Terminal Handling.
Terminal-Processing Modes.
Line Disciplines.
User Interface.
The tty Structure.
Process Groups, Sessions, and Terminal Control.
C-lists.
RS-232 and Modem Control.
Terminal Operations.
Other Line Disciplines.
Exercises.
References.
IV. INTERPROCESS COMMUNICATION.
11. Interprocess Communication.
Interprocess-Communication Model.
Implementation Structure and Overview.
Memory Management.
Data Structures.
Connection Setup.
Data Transfer.
Socket Shutdown.
Local Interprocess-communication.
Exercises.
References.
12. Network Communication.
Internal Structure.
Socket-to-Protocol Interface.
Protocol-Protocol Interface.
Interface between Protocol and Network Interface.
Routing.
Buffering and Congestion Control.
Raw Sockets.
Additional Network-Subsystem Topics.
Exercises.
References.
13. Network Protocols.
IPv4 Network Protocols.
User Datagram Protocol (UDP).
Internet Protocol (IP).
Transmission Control Protocol (TCP).
TCP Algorithms.
TCP Input Processing.
TCP Output Processing.
Internet Control Message Protocol (ICMP).
IPv6.
0 Security.
Exercises.
References.
V. SYSTEM OPERATION.
14. Startup and Shutdown.
Overview.
Bootstrapping.
Kernel Initialization.
Kernel Module Initialization.
User-Level Initialization.
System Operation.
Exercises.
References.
Glossary.
Index.
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. His particular
areas of interest are the virtual-memory system and the filesystem. One day,
he hopes to see them merged seamlessly. He earned his undergraduate degree in
Electrical Engineering from Cornell University, and did his graduate work at
the University of California at Berkeley, where he received Masters degrees
in Computer Science and Business Administration, and a doctoral degree in Computer
Science. He is a past president of the Usenix Association, and is a member of
ACM and IEEE. In his spare time, he enjoys swimming, scuba diving, and wine
collecting. The wine is stored in a specially constructed wine cellar (accessible
from the net using the command "telnet McKusick.COM 451") in the basement
of the house that he shares with Eric Allman, his domestic partner of 17-and-some-odd
years.
George V. Neville-Neil works on networking and operating system
code for fun and profit and also teaches courses on various subjects related
to programming. His areas of interest are code spelunking, real time operating
systems, and networking. He earned his bachelor's degree in computer science
at Northeastern University in Boston, Massachusetts. He serves on the editorial
board of ACMs Queue magazine and is a member of the Usenix Association,
ACM, and IEEE.
|
 |