Home > Store > Operating Systems, Server

Design and Implementation of the 4.4 BSD Operating System, The

Register your product to gain access to bonus material or receive a coupon.

Design and Implementation of the 4.4 BSD Operating System, The

eBook (Adobe DRM)

  • Your Price: $47.99
  • List Price: $59.99
  • About Adobe DRM eBooks
  • This eBook requires the free Adobe® Digital Editions software.

    Before downloading this DRM-encrypted PDF, be sure to:


    • Install the free Adobe Digital Editions software on your machine. Adobe Digital Editions only works on Macintosh and Windows, and requires the Adobe Flash Player. Please see the official system requirements.
    • Authorize your copy of Adobe Digital Editions using your Adobe ID (select AdobeID as the eBook vendor). If you don't already have an Adobe ID, you can create one here.

Description

  • Copyright 1996
  • Dimensions: 6-1/4 X 9-1/4
  • Pages: 608
  • Edition: 1st
  • eBook (Adobe DRM)
  • ISBN-10: 0-7686-8467-6
  • ISBN-13: 978-0-7686-8467-4

This is the eBook version of the printed book. If the print book includes a CD-ROM, this content is not included within the eBook version.

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

Sample Content

Table of Contents

1. OVERVIEW.

1. History and Goals.

History of the UNIX System.

Origins.

Research UNIX.

AT&T UNIX System III and System V.

Other Organizations.

Berkeley Software Distributions.

UNIX in the World.

BSD and Other Systems.

The Influence of the User Community.

Design Goals of 4BSD.

4.2BSD Design Goals.

4.3BSD Design Goals.

4.4BSD Design Goals.

Release Engineering.

References.

2. Design Overview of 4.4BSD.

4.4BSD Facilities and the Kernel.

The Kernel.

Kernel Organization.

Kernel Services.

Process Management.

Signals.

Process Groups and Sessions.

Memory Management.

BSD Memory-Management Design Decisions.

Memory Management Inside the Kernel.

I/O System.

Descriptors and I/O.

Descriptor Management.

Devices.

Socket IPC.

Scatter/Gather I/O.

Multiple Filesystem Support.

Filesystems.

Filestores.

Network Filesystem.

Terminals.

Interprocess Communication.

Network Communication.

Network Implementation.

System Operation.

Exercises.

References.

3.Kernel Services.

Kernel Organization.

System Processes.

System Entry.

Run-Time Organization.

Entry to the Kernel.

Return from the Kernel.

System Calls.

Result Handling.

Returning from a System Call.

Traps and Interrupts.

Traps.

I/O Device Interrupts.

Software Interrupts.

Clock Interrupts.

Statistics and Process Scheduling.

Timeouts.

Memory-Management Services.

Timing Services.

Real Time.

Adjustment of the Time.

External Representation.

Interval Time.

User, Group, and Other Identifiers.

Host Identifiers.

Process Groups and Sessions.

Resource Services.

Process Priorities.

Resource Utilization.

Resource Limits.

Filesystem Quotas.

System-Operation Services.

Accounting.

Exercises.

References.

II. PROCESSES.

4. Process Management.

Introduction to Process Management.

Multiprogramming.

Scheduling.

Process State.

The Process Structure.

The User Structure.

Context Switching.

Process State.

Low-Level Context Switching.

Voluntary Context Switching.

Synchronization.

Process Scheduling.

Calculations of Process Priority.

Process-Priority Routines.

Process Run Queues and Context Switching.

Process Creation.

Process Termination.

Signals.

Comparison with POSIX Signals.

Posting of a Signal.

Delivering a Signal.

Process Groups and Sessions.

Sessions.

Job Control.

Process Debugging.

Exercises.

References.

5. Memory Management.

Terminology.

Processes and Memory .

Paging.

Replacement Algorithms.

Working-Set Model.

Swapping.

Advantages of Virtual Memory.

Hardware Requirements for Virtual Memory.

Overview of the 4.4BSD Virtual-Memory System.

Kernel Memory Management.

Kernel Maps and Submaps.

Kernel Address-Space Allocation.

Kernel Malloc.

Per-Process Resources.

4.4BSD Process Virtual-Address Space.

Page-Fault Dispatch.

Mapping to Objects.

Objects.

Objects to Pages.

Shared Memory.

Mmap Model.

Shared Mapping.

Private Mapping.

Collapsing of Shadow Chains.

Private Snapshots.

5.6 Creation of a New Process.

Reserving Kernel Resources.

Duplication of the User Address Space.

Creation of a New Process Without Copying.

Execution of a File.

Process Manipulation of Its Address Space.

Change of Process Size.

File Mapping.

Change of Protection.

Termination of a Process.

The Pager Interface.

Vnode Pager.

Device Pager.

Swap Pager.

Paging.

Page Replacement.

Paging Parameters.

The Pageout Daemon.

Swapping.

The Swap-In Process.

Portability .

The Role of the pmap Module.

Initialization and Startup.

Mapping Allocation and Deallocation.

Change of Access and Wiring Attributes for Mappings.

Management of Page-Usage Information.

Initialization of Physical Pages.

Management of Internal Data Structures.

Exercises.

References.

III. I/O System.

6. I/O System Overview.

I/O Mapping from User to Device.

Device Drivers.

I/O Queueing.

Interrupt Handling.

Block Devices.

Entry Points for Block-Device Drivers.

Sorting of Disk I/O Requests.

Disk Labels.

Character Devices.

Raw Devices and Physical I/O.

Character-Oriented Devices.

Entry Points for Character-Device Drivers.

Descriptor Management and Services.

Open File Entries.

Management of Descriptors.

File-Descriptor Locking.

Multiplexing I/O on Descriptors.

Implementation of Select.

Movement of Data Inside the Kernel.

The Virtual-Filesystem Interface.

Contents of a Vnode.

Vnode Operations.

Pathname Translation.

Exported Filesystem Services.

Filesystem-Independent Services.

The Name Cache.

Buffer Management.

Implementation of Buffer Management.

Stackable Filesystems.

Simple Filesystem Layers.

The Union Mount Filesystem.

Other Filesystems.

Exercises.

References.

7. Local Filesystems.

Hierarchical Filesystem Management.

Structure of an Inode.

Inode Management.

Naming.

Directories.

Finding of Names in Directories.

Pathname Translation.

Links.

Quotas.

File Locking.

Other Filesystem Semantics.

Large File Sizes.

File Flags.

Exercises.

References.

8. Local Filestores.

Overview of the Filestore.

The Berkeley Fast Filesystem.

Organization of the Berkeley Fast Filesystem.

Optimization of Storage Utilization.

Reading and Writing to a File.

Filesystem Parameterization.

Layout Policies.

Allocation Mechanisms.

Block Clustering.

Synchronous Operations.

The Log-Structured Filesystem.

Organization of the Log-Structured Filesystem.

Index File.

Reading of the Log.

Writing to the Log.

Block Accounting.

The Buffer Cache.

Directory Operations.

Creation of a File.

Reading and Writing to a File.

Filesystem Cleaning.

Filesystem Parameterization.

Filesystem-Crash Recovery.

The Memory-Based Filesystem.

Organization of the Memory-Based Filesystem.

Filesystem Performance.

Future Work.

Exercises.

References.

9. The Network Filesystem.

History and Overview.

NFS Structure and Operation.

The NFS Protocol.

The 4.4BSD NFS Implementation.

Client-Server Interactions.

RPC Transport Issues.

Security Issues.

Techniques for Improving Performance.

Leases.

Crash Recovery.

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.

Open.

Output Line Discipline.

Output Top Half.

Output Bottom Half.

Input Bottom Half.

Input Top Half.

The stop Routine.

The ioctl Routine.

Modem Transitions.

Closing of Terminal Devices.

Other Line Disciplines.

Serial Line IP Discipline.

Graphics Tablet Discipline.

Exercises.

References.

IV. INTERPROCESS COMMUNICATION.

11. Interprocess Communication.

Interprocess-Communication Model.

Use of Sockets.

Implementation Structure and Overview.

Memory Management.

Mbufs.

Storage-Management Algorithms.

Mbuf Utility Routines.

Data Structures.

Communication Domains.

Sockets.

Socket Addresses.

Connection Setup.

Data Transfer.

Transmitting Data.

Receiving Data.

Passing Access Rights.

Passing Access Rights in the Local Domain.

Socket Shutdown.

Exercises.

References.

12. Network Communication.

Internal Structure.

Data Flow.

Communication Protocols.

Network Interfaces.

Socket-to-Protocol Interface.

Protocol User-Request Routine.

Internal Requests.

Protocol Control-Output Routine.

Protocol-Protocol Interface.

pr_output.

pr_input.

pr_ctlinput.

Interface between Protocol and Network Interface.

Packet Transmission.

Packet Reception.

Routing.

Kernel Routing Tables.

Routing Lookup.

Routing Redirects.

Routing-Table Interface.

User-Level Routing Policies.

User-Level Routing Interface: Routing Socket.

Buffering and Congestion Control.

Protocol Buffering Policies.

Queue Limiting.

Raw Sockets.

Control Blocks.

Input Processing.

Output Processing.

Additional Network-Subsystem Topics.

Out-of-Band Data.

Address Resolution Protocol.

Exercises.

References.

13. Network Protocols.

Internet Network Protocols.

Internet Addresses.

Subnets.

Broadcast Addresses.

Internet Multicast.

Internet Ports and Associations.

Protocol Control Blocks.

User Datagram Protocol (UDP).

Initialization.

Output.

Input.

Control Operations.

Internet Protocol (IP).

Output.

Input.

Forwarding.

Transmission Control Protocol (TCP).

TCP Connection States.

Sequence Variables.

TCP Algorithms.

Timers.

Estimation of Round-Trip Time.

Connection Establishment.

Connection Shutdown.

TCP Input Processing.

TCP Output Processing.

Sending of Data.

Avoidance of the Silly-Window Syndrome.

Avoidance of Small Packets.

Delayed Acknowledgments and Window Updates.

Retransmit State.

Slow Start.

Source-Quench Processing.

Buffer and Window Sizing.

Avoidance of Congestion with Slow Start.

Fast Retransmission.

Internet Control Message Protocol (ICMP).

OSI Implementation Issues.

Summary of Networking and Interprocess Communication.

Creation of a Communication Channel.

Sending and Receiving of Data.

Termination of Data Transmission or Reception.

Exercises.

References.

V. SYSTEM OPERATION.

14. System Startup.

Overview.

Bootstrapping.

The boot Program.

Kernel Initialization.

Assembly-Language Startup.

Machine-Dependent Initialization.

Message Buffer.

System Data Structures.

Autoconfiguration.

Device Probing.

Device Attachment.

New Autoconfiguration Data Structures.

New Autoconfiguration Functions.

Device Naming.

Machine-Independent Initialization.

User-Level Initialization.

/sbin/init.

/etc/rc.

/usr/libexec/getty.

/usr/bin/login.

System-Startup Topics.

Kernel Configuration.

System Shutdown and Autoreboot.

System Debugging.

Passage of Information To and From the Kernel.

Exercises.

References.

Glossary.
Index. 0201549794T04062001

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership