The Design and Implementation of the 4.4BSD Operating System

Marshall Kirk McKusick

Keith Bostic

Michael J. Karels

John S. Quarterman

Table of Contents
2 Design Overview of 4.4BSD
2.1 4.4BSD Facilities and the Kernel
2.1.1 The Kernel
2.2 Kernel Organization
2.3 Kernel Services
2.4 Process Management
2.4.1 Signals
2.4.2 Process Groups and Sessions
2.5 Memory Management
2.5.1 BSD Memory-Management Design Decisions
2.5.2 Memory Management Inside the Kernel
2.6 I/O System
2.6.1 Descriptors and I/O
2.6.2 Descriptor Management
2.6.3 Devices
2.6.4 Socket IPC
2.6.5 Scatter/Gather I/O
2.6.6 Multiple Filesystem Support
2.7 Filesystems
2.8 Filestores
2.9 Network Filesystem
2.10 Terminals
2.11 Interprocess Communication
2.12 Network Communication
2.13 Network Implementation
2.14 System Operation
List of Tables
2-1. Machine-independent software in the 4.4BSD kernel
2-2. Machine-dependent software for the HP300 in the 4.4BSD kernel
List of Figures
2-1. Process lifecycle
2-2. A small filesystem

This, and other documents, can be downloaded from

For questions about FreeBSD, read the documentation before contacting <>.
For questions about this documentation, e-mail <>.