- ホーム
- > 洋書
- > 英文書
- > Computer / Operating Systems
Full Description
"The Solaris (TM)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 tools in Solaris (likeDTrace), you will more often find yourself in what was previously unchartable territory. Solaris (TM) Internals, Second Edition, provides us a fantastic means to be able to quickly understand these systems and further explore the Solaris architecture--especially when coupled with OpenSolaris source availability."--Jarod Jenson, chief systems architect, Aeysis"The Solaris (TM) Internals volumes by Jim Mauro and Richard McDougall must be on your bookshelf if you are interested in in-depth knowledge of Solaris operating system internals and architecture. As a senior Unix engineer for many years, I found the first edition of Solaris (TM) Internals the only fully comprehensive source for kernel developers, systems programmers, and systems administrators. The new second edition, with the companion performance and debugging book, is an indispensable reference set, containing many useful and practical explanations of Solaris and its underlying subsystems, including tools and methods for observing and analyzing any system running Solaris 10 or OpenSolaris."--Marc Strahl, senior UNIX engineerSolaris (TM) Internals, Second Edition, describes the algorithms and data structures of all the major subsystems in the Solaris 10 and OpenSolaris kernels. The text has been extensively revised since the first edition, with more than 600 pages of new material. Integrated Solaris tools and utilities, including DTrace, MDB, kstat, and the process tools, are used throughout to illustrate how the reader can observe the Solaris kernel in action. The companion volume, Solaris (TM) Performance and Tools, extends the examples contained here, and expands the scope to performance and behavior analysis. Coverage includes:Virtual and physical memory Processes, threads, and scheduling File system framework and UFS implementation Networking: TCP/IP implementation Resource management facilities and zonesThe Solaris (TM) Internals volumes make a superb reference for anyone using Solaris 10 and OpenSolaris.
Contents
Foreword xxviiPreface xxixAbout the Authors xxxviiAcknowledgments xxxixPart One: Introduction to Solaris Internals 1Chapter 1: Introduction 31.1 Key Features of Solaris 10, Solaris 9, and Solaris 8 41.2 Key Differentiators 121.3 Kernel Overview 151.4 Processes, Threads, and Scheduling 181.5 Interprocess Communication 231.6 Signals 251.7 Memory Management 261.8 Files and File Systems 291.9 Resource Management 30Part Two: The Process Model 41Chapter 2: The Solaris Process Model 432.1 Components of a Process 442.2 Process Model Evolution 482.3 Executable Objects 522.4 Process Structures 552.5 Kernel Process Table 792.6 Process Resource Attributes 842.7 Process Creation 892.8 System Calls 982.9 Process Termination 1062.10 The Process File System 1102.11 Signals 1292.12 Sessions and Process Groups 1502.13 MDB Reference 156Chapter 3: Scheduling Classes and the Dispatcher 1573.1 Fundamentals 1573.2 Processor Abstractions 1623.3 Dispatcher Queues, Structures, and Variables 1713.4 Dispatcher Locks 1833.5 Dispatcher Initialization 1903.6 Scheduling Classes 1923.7 Thread Priorities 2073.8 Dispatcher Functions 2343.9 Preemption 2463.10 The Kernel Sleep/Wakeup Facility 2533.11 Interrupts 2623.12 Summary 2703.13 MDB Reference 271Chapter 4: Interprocess Communication 2734.1 The System V IPC Framework 2744.2 System V IPC Resource Controls 2824.3 Configuring IPC Tuneables on Solaris 10 2854.4 System V Shared Memory 2864.5 System V Semaphores 2954.6 System V Message Queues 2994.7 POSIX IPC 3034.8 Solaris Doors 3124.9 MDB Reference 321Chapter 5: Process Rights Management 3235.1 Then and Now 3235.2 Least Privilege in Solaris 3245.3 Process Privilege Models 3255.4 Privilege Awareness: The Details 3345.5 Least Privilege Interfaces 344Part Three: Resource Management 365Chapter 6: Zones 3676.1 Introduction 3676.2 Zone Runtime 3716.3 Booting Zones 3756.4 Security 3796.5 Process Model 3866.6 File Systems 3896.7 Networking 3936.8 Devices 3986.9 Interprocess Communication 4056.10 Resource Management and Observability 4076.11 MDB Reference 414Chapter 7: Projects, Tasks, and Resource Controls 4157.1 Projects and Tasks Framework 4157.2 The Project Database 4187.3 Project and Task APIs 4197.4 Kernel Infrastructure for Projects and Tasks 4207.5 Resource Controls 4237.6 Interfaces for Resource Controls 4327.7 Kernel Interfaces for Resource Controls 437Part Four: Memory 445Chapter 8: Introduction to Solaris Memory 4478.1 Virtual Memory Primer 4478.2 Two Levels of Memory 4488.3 Memory Sharing and Protection 4488.4 Pages: Basic Units of Physical Memory 4488.5 Virtual-to-Physical Translation 4498.6 Physical Memory Management: Paging and Swapping 4508.7 Virtual Memory as a File System Cache 4508.8 New Features of the Virtual Memory Implementation 451Chapter 9: Virtual Memory 4559.1 Design Overview 4559.2 Virtual Address Spaces 4579.3 Tracing the VM System 4669.4 Virtual Address Space Management 4679.5 Segment Drivers 4769.6 Anonymous Memory 4859.7 The Anonymous Memory Layer 4879.8 The swapfs Layer 4899.9 Virtual Memory Watchpoints 4929.10 Changes to Support Large Pages 4949.11 MDB Reference 501Chapter 10: Physical Memory 50310.1 Physical Memory Allocation 50310.2 Pages: The Basic Unit of Solaris Memory 50610.3 The Page Scanner 51610.4 MDB Reference 525Chapter 11: Kernel Memory 52711.1 Kernel Virtual Memory Layout 52711.2 Kernel Memory Allocation 53411.3 The Vmem Allocator 55211.4 Kernel Memory Allocator Tracing 56211.5 MDB Reference 578Chapter 12: Hardware Address Translation 58112.1 HAT Overview 58112.2 The UltraSPARC HAT Layer 58312.3 The x64 HAT Layer 62512.4 MDB Reference 636Chapter 13: Working with Multiple Page Sizes in Solaris 63913.1 Determining When to Use Large Pages 63913.2 Measuring Application Performance 64013.3 Configuring for Multiple Page Sizes 645Part Five: File Systems 655Chapter 14: File System Framework 65714.1 File System Framework 65714.2 Process-Level File Abstractions 65814.3 Solaris File System Framework 66814.4 File System Modules 67214.5 The Virtual File System (vfs) Interface 67514.6 The Vnode 68514.7 File System I/O 70714.8 File Systems and Memory Allocation 71814.9 Path-Name Management 72214.10 The Directory Name Lookup Cache 72614.11 The File System Flush Daemon 73414.12 File System Conversion to Solaris 10 73414.13 MDB Reference 736Chapter 15: The UFS File System 73715.1 UFS Development History 73715.2 UFS On-Disk Format 73915.3 The UFS Inode 75115.4 Access Control in UFS 76415.5 Extended Attributes in UFS 76715.6 Locking in UFS 76815.7 Logging 77515.8 MDB Reference 790Part Six: Platform Specifics 793Chapter 16: Support for NUMA and CMT Hardware 79516.1 Memory Hierarchy Designs 79616.2 Memory Placement Optimization Framework 79916.3 Initial Thread Placement 80216.4 Scheduling 80216.5 Memory Allocation 80316.6 Lgroup Implementation 80416.7 MPO APIs 80716.8 Locality Group Hierarchy 81116.9 MPO Statistics 81316.10 MDB Reference 814Chapter 17: Locking and Synchronization 81517.1 Synchronization 81517.2 Parallel Systems Architectures 81617.3 Hardware Considerations for Locks and Synchronization 81917.4 Introduction to Synchronization Objects 82417.5 Mutex Locks 82717.6 Reader/Writer Locks 83517.7 Turnstiles and Priority Inheritance 84017.8 Kernel Semaphores 84417.9 DTrace Lockstat Provider 846Part Seven: Networking 853Chapter 18: The Solaris Network Stack 85518.1 STREAMS and the Network Stack 85518.2 Solaris 10 Stack: Design Goals 86218.3 Solaris 10 Network Stack Framework 86318.4 TCP as an Implementation of the New Framework 87018.5 UDP 87518.6 Synchronous STREAMS 87818.7 IP 88018.8 Solaris Device Driver Framework 88218.9 Interrupt Model and NIC Speeds 89118.10 Summary 89518.11 MDB Reference 895Part Eight: Kernel Services 899Chapter 19: Clocks and Timers 90119.1 The System Clock Thread 90119.2 Callouts and Callout Tables 90419.3 System Time Facilities 91019.4 The Cyclic Subsystem 912Chapter 20: Task Queues 92720.1 Overview of Task Queues 92720.2 Dynamic Task Queues 92820.3 Task Queues Kernel Programming Interfaces 93220.4 Device Driver Interface for Task Queues 93420.5 Task Queue Observability 93520.6 Task Queue Implementation Notes 937Chapter 21: kmdb Implementation 94321.1 Introduction 943Appendices 963Appendix A: Kernel Virtual Address Maps 965Appendix B: Adding a System Call to Solaris 971Appendix C: A Sample Procfs Utility 975Bibliography 979Index 983