The Design and Implementation of the 4.4BSD Operating System

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

This book describes the design and implementation of the BSD operating system--previously known as the Berkeley version of UNIX. Today, BSD is found in nearly every variant of UNIX, and is widely used for Internet services and firewalls, timesharing, and multiprocessing systems. 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; systems programmers can learn how to maintain, tune, and extend the system. Written from the unique perspective of the system's architects, this book delivers the most comprehensive, up-to-date, and authoritative technical information on the internal structure of the latest BSD system. As in the previous book on 4.3BSD (with Samuel Leffler), the authors first update the history and goals of the BSD system. Next they provide a coherent overview of its design and implementation. Then, while explaining key design decisions, they detail the concepts, data structures, and algorithms used in implementing the system's facilities. As an in-depth study of a contemporary, portable operating system, or as a practical reference, readers will appreciate the wealth of insight and guidance contained in this book. Highlights of the book: - Details major changes in process and memory management - Describes the new extensible and stackable filesystem interface - Includes an invaluable chapter on the new network filesystem - Updates information on networking and interprocess communication

Author(s): Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman
Series: Addison-Wesley UNIX and Open Systems Series
Publisher: Addison-Wesley Professional
Year: 1996

Language: English
Commentary: real book scan
Pages: 580
Tags: UNIX;BSD;4.4BSD;4.3BSD;NetBSD;FreeBSD;OpenBSD;Linux;Operating Systems;Software;IT;Kernel Programming;Virtual Memory;Interprocess Communication;IPC;TCP;Internet;Socket Programming;

Cover
Preface
About the Authors
Contents

Part 1: Overview
....1. History and Goals
........1.1 History o f the UNIX System
........1.2 BSD and Other Systems
........1.3 Design Goals of 4BSD
........1.4 Release Engineering
........References
....2. Design Overview of 4.4BSD
........2.1 4.4BSD Facilities and the Kernel
........2.2 Kernel Organization
........2.3 Kernel Services
........2.4 Process Management
........2.5 Memory Management
........2.6 I/O System
........2.7 Filesystems
........2.8 Filestores
........2.9 Network Filesystem
........2.10 Terminals
........2.11 Interprocess Communication
........2.13 Network Implementation
........Exercises
........References
....3. Kernel Services
........3.1 Kernel Organization
........3.2 System Calls
........3.3 Traps and Interrupts
........3.4 Clock Interrupts
........3.5 Memory-Management Services
........3.6 Timing Services
........3.7 User, Group, and Other Identifiers
........3.8 Resource Services
........3.9 System-Operation Services
........Exercises
........References

Part 2: Processes
....4. Process Management
........4.1 Introduction to Process Management
........4.2 Process State
........4.3 Context Switching
........4.4 Process Scheduling
........4.5 Process Creation
........4.6 Process Termination
........4.7 Signals
........4.8 Process Groups and Sessions
........4.9 Process Debugging
........Exercises
........References
....5. Memory Management
........5.1 Terminology
........5.2 Overview of the 4.4BSD Virtual-Memory System
........5.3 Kernel Memory Management
........5.4 Per-Process Resources
........5.5 Shared Memory
........5.6 Creation of a New Process
........5.7 Execution of a File
........5.8 Process Manipulation of Its Address Space
........5.9 Termination of a Process
........5.10 The Pager Interface
........5.11 Paging
........5.12 Page Replacement
........5.13 Portability
........Exercises
........References

Part 3: I/O System
....6. I/O System Overview
........6.1 I/O Mapping from User to Device
........6.2 Block Devices
........6.3 Character Devices
........6.4 Descriptor Management and Services
........6.5 The Virtual-Filesystem Interface
........6.6 Filesystem-Independent Services
........6.7 Stackable Filesystems
........Exercises
........References
....7. Local Filesystems
........7.1 Hierarchical Filesystem Management
........7.2 Structure of an In ode
........7.3 Naming
........7.4 Quotas
........7.5 File Locking
........7.6 Other Filesystem Semantics
........References
....8. Local Filestores
........8.1 Overview of the Filestore
........8.2 The Berkeley Fast Filesystem
........8.3 The Log-Structured Filesystem
........8.4 The Memory-Based Filesystem
........Exercises
........References
....9. The Network Filesystem
........9.1 History and Overview
........9.2 NFS Structure and Operation
........9.3 Techniques for Improving Performance
........Exercises
........References
....10. Terminal Handling
........10.1 Terminal-Processing Modes
........10.2 Line Disciplines
........10.3 User Interface
........10.4 The tty Structure
........10.5 Process Groups, Sessions, and Terminal Control
........10.6 C-Iists
........10.7 RS-232 and Modem Control
........10.8 Terminal Operations
........10.9 Other Line Disciplines
........References

Part 4: Interprocess Communication
....11. Interprocess Communication
........11.1 Interprocess-Communication Model
........11.2 Implementation Structure and Overview
........11.3 Memory Management
........11.4 Data Structures
........11.5 Connection Setup
........11.6 Data Transfer
........11.7 Socket Shutdown
........Exercises
........References
....12. Network Communication
........12.1 Internal Structure
........12.2 Socket-to-Protocol Interface
........12.3 Protocol-Protocol Interface
........12.4 Interface between Protocol and Network Interface
........12.5 Routing
........12.6 Buffering and Congestion Control
........12.7 Raw Sockets
........12.8 Additional Network-Subsystem Topics
........Exercises
........References
....13. Network Protocols
........13.1 Internet Network Protocols
........13.2 User Datagram Protocol (UDP)
........13.3 Internet Protocol (IP)
........13.4 Transmission Control Protocol (TCP)
........13.5 TCP Algorithms
........13.6 TCP Input Processing
........13.7 TCP Output Processing
........13.8 Internet Control Message Protocol (ICMP)
........13.9 OSI Implementation Issues
........13.10 Summary of Networking and Interprocess Communication
........Exercises
........References

Part 5: System Operation
....14. System Startup
........14.1 Overview
........14.2 Bootstrapping
........14.3 Kernel Initialization
........14.4 Autoconfiguration
........14.5 Machine-Independent Initialization
........14.6 User-Level Initialization
........14.7 System-Startup Topics

References
Glossary
Index