You are previewing Solaris™ Internals: Core Kernel Components.
O'Reilly logo
Solaris™ Internals: Core Kernel Components

Book Description

The definitive Sun Microsystems guide to the internals of the Solaris kernel.

This book focuses on the core kernel functions, major data structures and algorithms. Its practical approach makes it an essential resource for anyone responsible for kernel, driver or application software. Anyone doing development, debugging, maintenance, performance tuning, capacity planning, or application tuning will also benefit from Mauro and McDougall's in-depth coverage of the Solaris kernel.

This authoritative and comprehensive guide covers the key components that comprise the Solaris kernel. The modular architecture of the kernel is discussed and each major subsystem is fully explored. Topics covered include:

  • Scheduler implementation and behavior

  • The Solaris multi-threaded architecture

  • Multi-threaded synchronization primitives

  • The Solaris Virtual Memory implementation, including tools for memory measurement and analysis

  • The Virtual File System framework

  • Techniques for analyzing kernel behavior and structures with sar, vmstat, crash, and adb

  • Solaris Internals is an indispensable reference for kernel developers and is full of useful information for monitoring and optimizing Solaris systems. Whether you're a software developer, systems architect, system administrator, or performance analyst, you'll rely on it constantly.

    Table of Contents

    1. Copyright
    2. List of Figures
    3. List of Tables
    4. List of Header Files
    5. Preface
    6. Acknowledgments
    7. Introduction to Solaris Internals
      1. An Introduction to Solaris
        1. A Brief History
        2. Key Differentiators
        3. Kernel Overview
        4. Processes, Threads, and Scheduling
        5. Interprocess Communication
        6. Signals
        7. Memory Management
        8. Files and File Systems
        9. I/O Architecture
      2. Kernel Services
        1. Access to Kernel Services
        2. Entering Kernel Mode
        3. Interrupts
        4. System Calls
        5. The Kernel Callout Table
        6. The System Clock
      3. Kernel Synchronization Primitives
        1. Synchronization
        2. Parallel Systems Architectures
        3. Hardware Considerations for Locks and Synchronization
        4. Introduction to Synchronization Objects
        5. Mutex Locks
        6. Reader/Writer Locks
        7. Turnstiles and Priority Inheritance
        8. Dispatcher Locks
        9. Kernel Semaphores
      4. Kernel Bootstrap and Initialization
        1. Kernel Directory Hierarchy
        2. Kernel Bootstrap and Initialization
        3. Kernel Module Loading and Linking
    8. The Solaris Memory System
      1. Solaris Memory Architecture
        1. Why Have a Virtual Memory System?
        2. Modular Implementation
        3. Virtual Address Spaces
        4. Memory Segments
        5. Anonymous Memory
        6. Virtual Memory Watchpoints
        7. Global Page Management
        8. The Page Scanner
        9. The Hardware Address Translation Layer
      2. Kernel Memory
        1. Kernel Virtual Memory Layout
        2. Kernel Memory Allocation
      3. Memory Monitoring
        1. A Quick Introduction to Memory Monitoring
        2. Memory Monitoring Tools
        3. The vmstat Command
        4. MemTool: Unbundled Memory Tools
        5. Other Memory Tools
    9. Threads, Processes, and IPC
      1. The Solaris Multithreaded Process Architecture
        1. Introduction to Solaris Processes
        2. Process Structures
        3. The Kernel Process Table
        4. Process Creation
        5. Process Termination
        6. Procfs — The Process File System
        7. Signals
        8. Sessions and Process Groups
      2. The Solaris Kernel Dispatcher
        1. Overview
        2. The Kernel Dispatcher
        3. The Kernel Sleep/Wakeup Facility
        4. Scheduler Activations
        5. Kernel Processor Control and Processor Sets
      3. Interprocess Communication
        1. Generic System V IPC Support
        2. System V Shared Memory
        3. System V Semaphores
        4. System V Message Queues
        5. POSIX IPC
        6. Solaris Doors
    10. Files and File Systems
      1. Solaris Files and File I/O
        1. Files in Solaris
        2. File Application Programming Interfaces (APIs)
        3. System File I/O
        4. Asynchronous I/O
        5. Memory Mapped File I/O
        6. 64-bit Files in Solaris
      2. File System Overview
        1. Why Have a File System?
        2. Support for Multiple File System Types
        3. Regular (On-Disk) File Systems
      3. File System Framework
        1. Solaris File System Framework
        2. The vnode
        3. The vfs Object
        4. File System I/O
        5. Path-Name Management
        6. The File System Flush Daemon
      4. The UNIX File System
        1. UFS Development History
        2. UFS On-Disk Format
        3. UFS Implementation
      5. Solaris File System Cache
        1. Introduction to File Caching
        2. Page Cache and Virtual Memory System
        3. Is All That Paging Bad for My System?
        4. Paging Parameters That Affect File System Performance
        5. Bypassing the Page Cache with Direct I/O
        6. Directory Name Cache
        7. Inode Caches
    11. Kernel Tunables, Switches, and Limits
      1. Setting Kernel Parameters
      2. System V IPC - Shared Memory Parameters
      3. Virtual Memory Parameters
      4. File System Parameters
      5. Miscelaneous Parameters
      6. Process and Dispatcher (Scheduler) Parameters
      7. STREAMS Parameters
    12. Kernel Virtual Address Maps
    13. A Sample Procfs Utility
    14. Bibliography
    15. Index