Solaris internals : Solaris 10 and OpenSolaris kernel architecture

"The Solaris™Internals volumes are simply the best and most comprehensive treatment of the Solaris (and OpenSolaris) Operating Environment. Any person using Solaris--in any capacity--would be remiss not to include these two new volumes in their personal library. With advanced observability tool...

Descripción completa

Detalles Bibliográficos
Otros Autores: McDougall, Richard Author (author), Mauro, Jim Contributor (contributor)
Formato: Libro electrónico
Idioma:Inglés
Publicado: [Place of publication not identified] Sun Microsystems Press/Prentice Hall 2007
Edición:2nd ed
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626898606719
Tabla de Contenidos:
  • Cover
  • Contents
  • Foreword
  • Preface
  • About the Authors
  • Acknowledgments
  • PART ONE: Introduction to Solaris Internals
  • Chapter 1 Introduction
  • 1.1 Key Features of Solaris 10, Solaris 9, and Solaris 8
  • 1.2 Key Differentiators
  • 1.3 Kernel Overview
  • 1.4 Processes, Threads, and Scheduling
  • 1.5 Interprocess Communication
  • 1.6 Signals
  • 1.7 Memory Management
  • 1.8 Files and File Systems
  • 1.9 Resource Management
  • PART TWO: The Process Model
  • Chapter 2 The Solaris Process Model
  • 2.1 Components of a Process
  • 2.2 Process Model Evolution
  • 2.3 Executable Objects
  • 2.4 Process Structures
  • 2.5 Kernel Process Table
  • 2.6 Process Resource Attributes
  • 2.7 Process Creation
  • 2.8 System Calls
  • 2.9 Process Termination
  • 2.10 The Process File System
  • 2.11 Signals
  • 2.12 Sessions and Process Groups
  • 2.13 MDB Reference
  • Chapter 3 Scheduling Classes and the Dispatcher
  • 3.1 Fundamentals
  • 3.2 Processor Abstractions
  • 3.3 Dispatcher Queues, Structures, and Variables
  • 3.4 Dispatcher Locks
  • 3.5 Dispatcher Initialization
  • 3.6 Scheduling Classes
  • 3.7 Thread Priorities
  • 3.8 Dispatcher Functions
  • 3.9 Preemption
  • 3.10 The Kernel Sleep/Wakeup Facility
  • 3.11 Interrupts
  • 3.12 Summary
  • 3.13 MDB Reference
  • Chapter 4 Interprocess Communication
  • 4.1 The System V IPC Framework
  • 4.2 System V IPC Resource Controls
  • 4.3 Configuring IPC Tuneables on Solaris 10
  • 4.4 System V Shared Memory
  • 4.5 System V Semaphores
  • 4.6 System V Message Queues
  • 4.7 POSIX IPC
  • 4.8 Solaris Doors
  • 4.9 MDB Reference
  • Chapter 5 Process Rights Management
  • 5.1 Then and Now
  • 5.2 Least Privilege in Solaris
  • 5.3 Process Privilege Models
  • 5.4 Privilege Awareness: The Details
  • 5.5 Least Privilege Interfaces
  • PART THREE: Resource Management
  • Chapter 6 Zones
  • 6.1 Introduction
  • 6.2 Zone Runtime.
  • 6.3 Booting Zones
  • 6.4 Security
  • 6.5 Process Model
  • 6.6 File Systems
  • 6.7 Networking
  • 6.8 Devices
  • 6.9 Interprocess Communication
  • 6.10 Resource Management and Observability
  • 6.11 MDB Reference
  • Chapter 7 Projects, Tasks, and Resource Controls
  • 7.1 Projects and Tasks Framework
  • 7.2 The Project Database
  • 7.3 Project and Task APIs
  • 7.4 Kernel Infrastructure for Projects and Tasks
  • 7.5 Resource Controls
  • 7.6 Interfaces for Resource Controls
  • 7.7 Kernel Interfaces for Resource Controls
  • PART FOUR: Memory
  • Chapter 8 Introduction to Solaris Memory
  • 8.1 Virtual Memory Primer
  • 8.2 Two Levels of Memory
  • 8.3 Memory Sharing and Protection
  • 8.4 Pages: Basic Units of Physical Memory
  • 8.5 Virtual-to-Physical Translation
  • 8.6 Physical Memory Management: Paging and Swapping
  • 8.7 Virtual Memory as a File System Cache
  • 8.8 New Features of the Virtual Memory Implementation
  • Chapter 9 Virtual Memory
  • 9.1 Design Overview
  • 9.2 Virtual Address Spaces
  • 9.3 Tracing the VM System
  • 9.4 Virtual Address Space Management
  • 9.5 Segment Drivers
  • 9.6 Anonymous Memory
  • 9.7 The Anonymous Memory Layer
  • 9.8 The swapfs Layer
  • 9.9 Virtual Memory Watchpoints
  • 9.10 Changes to Support Large Pages
  • 9.11 MDB Reference
  • Chapter 10 Physical Memory
  • 10.1 Physical Memory Allocation
  • 10.2 Pages: The Basic Unit of Solaris Memory
  • 10.3 The Page Scanner
  • 10.4 MDB Reference
  • Chapter 11 Kernel Memory
  • 11.1 Kernel Virtual Memory Layout
  • 11.2 Kernel Memory Allocation
  • 11.3 The Vmem Allocator
  • 11.4 Kernel Memory Allocator Tracing
  • 11.5 MDB Reference
  • Chapter 12 Hardware Address Translation
  • 12.1 HAT Overview
  • 12.2 The UltraSPARC HAT Layer
  • 12.3 The x64 HAT Layer
  • 12.4 MDB Reference
  • Chapter 13 Working with Multiple Page Sizes in Solaris
  • 13.1 Determining When to Use Large Pages.
  • 13.2 Measuring Application Performance
  • 13.3 Configuring for Multiple Page Sizes
  • PART FIVE: File Systems
  • Chapter 14 File System Framework
  • 14.1 File System Framework
  • 14.2 Process-Level File Abstractions
  • 14.3 Solaris File System Framework
  • 14.4 File System Modules
  • 14.5 The Virtual File System (vfs) Interface
  • 14.6 The Vnode
  • 14.7 File System I/O
  • 14.8 File Systems and Memory Allocation
  • 14.9 Path-Name Management
  • 14.10 The Directory Name Lookup Cache
  • 14.11 The File System Flush Daemon
  • 14.12 File System Conversion to Solaris 10
  • 14.13 MDB Reference
  • Chapter 15 The UFS File System
  • 15.1 UFS Development History
  • 15.2 UFS On-Disk Format
  • 15.3 The UFS Inode
  • 15.4 Access Control in UFS
  • 15.5 Extended Attributes in UFS
  • 15.6 Locking in UFS
  • 15.7 Logging
  • 15.8 MDB Reference
  • PART SIX: Platform Specifics
  • Chapter 16 Support for NUMA and CMT Hardware
  • 16.1 Memory Hierarchy Designs
  • 16.2 Memory Placement Optimization Framework
  • 16.3 Initial Thread Placement
  • 16.4 Scheduling
  • 16.5 Memory Allocation
  • 16.6 Lgroup Implementation
  • 16.7 MPO APIs
  • 16.8 Locality Group Hierarchy
  • 16.9 MPO Statistics
  • 16.10 MDB Reference
  • Chapter 17 Locking and Synchronization
  • 17.1 Synchronization
  • 17.2 Parallel Systems Architectures
  • 17.3 Hardware Considerations for Locks and Synchronization
  • 17.4 Introduction to Synchronization Objects
  • 17.5 Mutex Locks
  • 17.6 Reader/Writer Locks
  • 17.7 Turnstiles and Priority Inheritance
  • 17.8 Kernel Semaphores
  • 17.9 DTrace Lockstat Provider
  • PART SEVEN: Networking
  • Chapter 18 The Solaris Network Stack
  • 18.1 STREAMS and the Network Stack
  • 18.2 Solaris 10 Stack: Design Goals
  • 18.3 Solaris 10 Network Stack Framework
  • 18.4 TCP as an Implementation of the New Framework
  • 18.5 UDP
  • 18.6 Synchronous STREAMS
  • 18.7 IP.
  • 18.8 Solaris Device Driver Framework
  • 18.9 Interrupt Model and NIC Speeds
  • 18.10 Summary
  • 18.11 MDB Reference
  • PART EIGHT: Kernel Services
  • Chapter 19 Clocks and Timers
  • 19.1 The System Clock Thread
  • 19.2 Callouts and Callout Tables
  • 19.3 System Time Facilities
  • 19.4 The Cyclic Subsystem
  • Chapter 20 Task Queues
  • 20.1 Overview of Task Queues
  • 20.2 Dynamic Task Queues
  • 20.3 Task Queues Kernel Programming Interfaces
  • 20.4 Device Driver Interface for Task Queues
  • 20.5 Task Queue Observability
  • 20.6 Task Queue Implementation Notes
  • Chapter 21 kmdb Implementation
  • 21.1 Introduction
  • APPENDICES
  • Appendix A: Kernel Virtual Address Maps
  • Appendix B: Adding a System Call to Solaris
  • Appendix C: A Sample Procfs Utility
  • Bibliography
  • Index.