| | Copyright |
| | Preface |
| | | UNIX-like Systems |
| | | Berkeley Software Distributions |
| | | Material Covered in this Book |
| | | Use by Computer Professionals |
| | | Use in Courses on Operating Systems |
| | | Organization |
| | | Getting BSD |
| | | Acknowledgments |
| | | References |
| | About the Authors |
| | Part I. Overview |
| | | Chapter 1. History and Goals |
| | | Section 1.1. History of the UNIX System |
| | | Section 1.2. BSD and Other Systems |
| | | Section 1.3. The Transition of BSD to Open Source |
| | | Section 1.4. The FreeBSD Development Model |
| | | References |
| | | Chapter 2. Design Overview of FreeBSD |
| | | Section 2.1. FreeBSD Facilities and the Kernel |
| | | Section 2.2. Kernel Organization |
| | | Section 2.3. Kernel Services |
| | | Section 2.4. Process Management |
| | | Section 2.5. Memory Management |
| | | Section 2.6. I/O System |
| | | Section 2.7. Devices |
| | | Section 2.8. Filesystems |
| | | Section 2.9. Network Filesystem |
| | | Section 2.10. Terminals |
| | | Section 2.11. Interprocess Communication |
| | | Section 2.12. Network Communication |
| | | Section 2.13. Network Implementation |
| | | Section 2.14. System Operation |
| | | Exercises |
| | | References |
| | | Chapter 3. Kernel Services |
| | | Section 3.1. Kernel Organization |
| | | Section 3.2. System Calls |
| | | Section 3.3. Traps and Interrupts |
| | | Section 3.4. Clock Interrupts |
| | | Section 3.5. Memory-Management Services |
| | | Section 3.6. Timing Services |
| | | Section 3.7. User, Group, and Other Identifiers |
| | | Section 3.8. Resource Services |
| | | Section 3.9. System-Operation Services |
| | | Exercises |
| | | References |
| | Part II. Processes |
| | | Chapter 4. Process Management |
| | | Section 4.1. Introduction to Process Management |
| | | Section 4.2. Process State |
| | | Section 4.3. Context Switching |
| | | Section 4.4. Thread Scheduling |
| | | Section 4.5. Process Creation |
| | | Section 4.6. Process Termination |
| | | Section 4.7. Signals |
| | | Section 4.8. Process Groups and Sessions |
| | | Section 4.9. Jails |
| | | Section 4.10. Process Debugging |
| | | Exercises |
| | | References |
| | | Chapter 5. Memory Management |
| | | Section 5.1. Terminology |
| | | Section 5.2. Overview of the FreeBSD Virtual-Memory System |
| | | Section 5.3. Kernel Memory Management |
| | | Section 5.4. Per-Process Resources |
| | | Section 5.5. Shared Memory |
| | | Section 5.6. Creation of a New Process |
| | | Section 5.7. Execution of a File |
| | | Section 5.8. Process Manipulation of Its Address Space |
| | | Section 5.9. Termination of a Process |
| | | Section 5.10. The Pager Interface |
| | | Section 5.11. Paging |
| | | Section 5.12. Page Replacement |
| | | Section 5.13. Portability |
| | | Exercises |
| | | References |
| | Part III. I/O System |
| | | Chapter 6. I/O System Overview |
| | | Section 6.1. I/O Mapping from User to Device |
| | | Section 6.2. Character Devices |
| | | Section 6.3. Disk Devices |
| | | Section 6.4. Descriptor Management and Services |
| | | Section 6.5. The Virtual-Filesystem Interface |
| | | Section 6.6. Filesystem-Independent Services |
| | | Section 6.7. Stackable Filesystems |
| | | Exercises |
| | | References |
| | | Chapter 7. Devices |
| | | Section 7.1. Device Overview |
| | | Section 7.2. The GEOM Layer |
| | | Section 7.3. The CAM Layer |
| | | Section 7.4. The ATA Layer |
| | | Section 7.5. Device Configuration |
| | | Exercises |
| | | References |
| | | Chapter 8. Local Filesystems |
| | | Section 8.1. Hierarchical Filesystem Management |
| | | Section 8.2. Structure of an Inode |
| | | Section 8.3. Naming |
| | | Section 8.4. Quotas |
| | | Section 8.5. File Locking |
| | | Section 8.6. Soft Updates |
| | | Section 8.7. Filesystem Snapshots |
| | | Section 8.8. The Local Filestore |
| | | Section 8.9. The Berkeley Fast Filesystem |
| | | Exercises |
| | | References |
| | | Chapter 9. The Network Filesystem |
| | | Section 9.1. History and Overview |
| | | Section 9.2. NFS Structure and Operation |
| | | Section 9.3. Techniques for Improving Performance |
| | | Exercises |
| | | References |
| | | Chapter 10. Terminal Handling |
| | | Section 10.1. Terminal-Processing Modes |
| | | Section 10.2. Line Disciplines |
| | | Section 10.3. User Interface |
| | | Section 10.4. The tty Structure |
| | | Section 10.5. Process Groups, Sessions, and Terminal Control |
| | | Section 10.6. C-lists |
| | | Section 10.7. RS-232 and Modem Control |
| | | Section 10.8. Terminal Operations |
| | | Section 10.9. Other Line Disciplines |
| | | Exercises |
| | | References |
| | Part IV. Interprocess Communication |
| | | Chapter 11. Interprocess Communication |
| | | Section 11.1. Interprocess-Communication Model |
| | | Section 11.2. Implementation Structure and Overview |
| | | Section 11.3. Memory Management |
| | | Section 11.4. Data Structures |
| | | Section 11.5. Connection Setup |
| | | Section 11.6. Data Transfer |
| | | Section 11.7. Socket Shutdown |
| | | Section 11.8. Local Interprocess-Communication |
| | | Exercises |
| | | References |
| | | Chapter 12. Network Communication |
| | | Section 12.1. Internal Structure |
| | | Section 12.2. Socket-to-Protocol Interface |
| | | Section 12.3. Protocol-Protocol Interface |
| | | Section 12.4. Interface Between Protocol and Network Interface |
| | | Section 12.5. Routing |
| | | Section 12.6. Buffering and Congestion Control |
| | | Section 12.7. Raw Sockets |
| | | Section 12.8. Additional Network-Subsystem Topics |
| | | Exercises |
| | | References |
| | | Chapter 13. Network Protocols |
| | | Section 13.1. IPv4 Network Protocols |
| | | Section 13.2. User Datagram Protocol (UDP) |
| | | Section 13.3. Internet Protocol (IP) |
| | | Section 13.4. Transmission Control Protocol (TCP) |
| | | Section 13.5. TCP Algorithms |
| | | Section 13.6. TCP Input Processing |
| | | Section 13.7. TCP Output Processing |
| | | Section 13.8. Internet Control Message Protocol (ICMP) |
| | | Section 13.9. 1Pv6 |
| | | Section 13.10. Security |
| | | Exercises |
| | | References |
| | Part V. System Operation |
| | | Chapter 14. Startup and Shutdown |
| | | Section 14.1. Overview |
| | | Section 14.2. Bootstrapping |
| | | Section 14.3. Kernel Initialization |
| | | Section 14.4. Kernel Module Initialization |
| | | Section 14.5. User-Level Initialization |
| | | Section 14.6. System Operation |
| | | Exercises |
| | | References |
| | Glossary |
| | FreeBSD Kernel Internals on Video |
| | Advanced FreeBSD Course on Video |
| | CSRG Archive CD-ROMs |
| | History of UNIX at Berkeley |
| | BSD Daemon Shirts |
| | Index |