UNIX® Internals

The New Frontiers

Uresh Vahalia

Publisher: Prentice Hall, 1996, 640 pages

ISBN: 0-13-101908-2

Keywords: Operating Systems

Last modified: March 21, 2022, 5:23 p.m.

The New Frontiers offers the most up-to-date and comprehensive coverage of UNIX internals available. Written for professional UNIX programmers, system administrators, and computer science students, UNIX Internals provides an in-depth look at UNIX development at a highly accessible level. Coverage includes features that are shaping UNIX architectures of the nineties including multi-threaded kernels, multiprocessor and real-time systems, and distributed file systems.

This book examines recent advances in modern UNIX systems. Uresh Vahalia compares and analyzes the latest features offered by the most important UNIX systems and variants including:

  • SVR4.x
  • Solaris and SunOS
  • Digital UNIX
  • 4.4 BSD
  • Mach and OSF/1

The author discusses several important components of the kernels, compares their design in different UNIX variants, discusses tradeoffs, and presents those features that have gained wide acceptance. Clear explanations of implementation details are provided throughout with a strong emphasis on the practical issues. No UNIX enthusiast should be without it.

  1. Introduction
    1. Introduction.
    2. The Mandate For Change.
    3. Looking Back, Looking Forward.
    4. The Scope of This Book.
    5. References.
  2. The Process and the Kernel
    1. Introduction.
    2. Mode, Space, and Context.
    3. The Process Abstraction.
    4. Executing In Kernel Mode.
    5. Synchronization.
    6. Process Scheduling.
    7. Signals.
    8. New Processes and Programs.
    9. Summary.
    10. Exercises.
    11. References.
  3. Threads and Lightweight Processes
    1. Introduction.
    2. Fundamental Abstractions.
    3. Lightweight Process Design—Issues To Consider.
    4. User—Lever Threads Libraries.
    5. Scheduler Activations.
    6. Multithreading in Solaris and SVR4.
    7. Threads In MACH.
    8. Digital UNIX.
    9. MACH 3.0 Continuations.
    10. Summary.
    11. Exercises.
    12. References.
  4. Signals and Session Management
    1. Introduction.
    2. Signal Generation and Handling.
    3. Unreliable Signals.
    4. Reliable Signals.
    5. Signals in SVR4.
    6. Signals Implementation.
    7. Exceptions.
    8. MACH Exception Handling.
    9. Process Groups and Terminal Management.
    10. The SVR4 Sessions Architecture.
    11. Summary.
    12. Exercises.
    13. References.
  5. Process Scheduling
    1. Introduction.
    2. Clock Interrupt Handling.
    3. Scheduler Goals.
    4. Traditional UNIX Scheduling.
    5. The SVR4 Scheduler.
    6. SOLARIS 2.X Scheduling Enhancements.
    7. Scheduling in MACH.
    8. The Digital UNIX Real-Time Scheduler.
    9. Other Scheduling Implementations.
    10. Summary.
    11. Exercises.
    12. References.
  6. Interprocess Communications
    1. Introduction.
    2. Universal IPC Facilities.
    3. System V IPC.
    4. MACH IPC.
    5. Messages.
    6. Ports.
    7. Message Passing.
    8. Port Operations.
    9. Extensibility.
    10. MACH 3.0 Enhancements.
    11. Discussion.
    12. Summary.
    13. Exercises.
    14. References.
  7. Synchronization and Multiprocessing
    1. Introduction.
    2. Synchronization in Traditional UNIX Kernels.
    3. Multiprocessor Systems.
    4. Multiprocessor Synchronization Issues.
    5. Semaphores. Spin Locks.
    6. Condition Variables.
    7. Read-Write Locks.
    8. Reference Counts.
    9. Other Considerations.
    10. Case Studies.
    11. Summary.
    12. Exercises.
    13. References.
  8. File System Interface and Framework
    1. Introduction.
    2. The User Interface to Files.
    3. File Systems.
    4. Special Files.
    5. File System Framework.
    6. The Vnode/VFS Architecture.
    7. Implementation Overview.
    8. File-System-Dependent Objects.
    9. Mounting a File System.
    10. Operations on Files.
    11. Analysis.
    12. Summary.
    13. Exercises.
    14. References.
  9. File System Implementations
    1. Introduction.
    2. The System V File System (s5fs).
    3. S5fs Kernel Organization.
    4. Analysis of S5fs.
    5. The Berkeley Fast File System.
    6. Hard Disk Structure.
    7. On-Disk Organization.
    8. FFS Functionality Enhancements.
    9. Analysis.
    10. Temporary File Systems.
    11. Special-Purpose File Systems.
    12. The Old Buffer Cache.
    13. Summary.
    14. Exercises.
    15. References.
  10. Distributed File Systems
    1. Introduction.
    2. General Characteristics of Distributed File Systems.
    3. Network File System (NFS).
    4. The Protocol Suite. NFS Implementation.
    5. UNIX Semantics.
    6. NFS Performance.
    7. Dedicated NFS Servers.
    8. NFS Security.
    9. NFS Version 3.
    10. Remote File Sharing (RFS).
    11. RFS Architecture.
    12. RFS Implementation.
    13. Client-Side Caching.
    14. The Andrew File System.
    15. AFS Implementation.
    16. AFS Shortcomings.
    17. The DCE Distributed File System (DCE DFS).
    18. Summary.
    19. Exercises.
    20. References.
  11. Advanced File Systems
    1. Introduction.
    2. Limitations of Traditional File Systems.
    3. File System Clustering (Sun-FFS).
    4. The Journaling Approach.
    5. Log-Structured File Systems.
    6. The 4.4BSD Log-Structured File System.
    7. Metadata Logging.
    8. The Episode File System.
    9. Watchdogs.
    10. The 4.4BSD Portal File System.
    11. Stackable File System Layers.
    12. The 4.4BSD File System Interface.
    13. Summary.
    14. Exercises.
    15. References.
  12. Kernel Memory Allocation
    1. Introduction.
    2. Functional Requirements.
    3. Resource Map Allocator.
    4. Simple Power-of-Two Free Lists.
    5. The McKusick-Karels Allocator.
    6. The Buddy System.
    7. The SVR4 Lazy Buddy Algorithm.
    8. The MACH-OSF/1 Zone Allocator.
    9. A Hierarchical Allocator for Multiprocessors.
    10. The Solaris 2.4 Slab Allocator.
    11. Summary.
    12. Exercises.
    13. References.
  13. Virtual Memory
    1. Introduction.
    2. Demand Paging.
    3. Hardware Requirements.
    4. 4.3BSD — A Case Study.
    5. 4.3BSD Memory Management Operations.
    6. Analysis.
    7. Exercises.
    8. References.
  14. The SVR4 VM Architecture
    1. Motivation.
    2. Memory-Mapped Files.
    3. VM Design Principles.
    4. Fundamental Abstractions.
    5. Segment Drivers.
    6. The Swap Layer.
    7. VM Operations.
    8. Interaction with the Vnode Subsystem.
    9. Virtual Swap Space in Solaris.
    10. Analysis.
    11. Performance Improvements.
    12. Summary.
    13. Exercises.
    14. References.
  15. More Memory Management Topics
    1. Introduction.
    2. MACH Memory Management Design.
    3. Memory Sharing Facilities.
    4. Memory Objects and Pagers.
    5. External and Internal Pagers.
    6. Page Replacement.
    7. Analysis.
    8. Memory Management in 4.4BSD.
    9. Translation Lookaside Buffer (TLB) Consistency.
    10. TLB Shootdown in MACH.
    11. TLB Consistency in SVR4 and SVR4.2 UNIX.
    12. Other TLB Consistency Algorithms.
    13. Virtually Addressed Caches.
    14. Exercises.
    15. References.
  16. Device Drivers and I/O
    1. Introduction.
    2. Overview.
    3. Device Driver Framework.
    4. The I/O Subsystem.
    5. The poll System Call.
    6. Block I/O.
    7. The DDI/DKI Specification.
    8. Newer SVR4 Releases.
    9. Future Directions.
    10. Summary.
    11. Exercises.
    12. References.
  17. Streams
    1. Motivation.
    2. Overview.
    3. Messages and Queues.
    4. Stream I/O.
    5. Configuration and Setup.
    6. STREAMS ioctls.
    7. Memory Allocation.
    8. Multiplexing.
    9. FIFOs and Pipes.
    10. Networking Interfaces.
    11. Summary.
    12. Exercises.
    13. References.

Reviews

UNIX® Internals

Reviewed by Roland Buresund

Outstanding ********* (9 out of 10)

Last modified: Sept. 15, 2010, 10:07 p.m.

Don't read this book because you want to understand the internals of UNIX; read this book because you want to understand what goes on inside any operating system!

Excellent reading.

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required

captcha

required