Buy new:
-46% $40.65$40.65
FREE delivery November 21 - 27
Ships from: April Book Store Sold by: April Book Store
Save with Used - Acceptable
$11.45$11.45
Ships from: Amazon Sold by: Jenson Books Inc
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the authors
OK
Solaris Internals: Core Kernel Architecture 1st Edition
There is a newer edition of this item:
Purchase options and add-ons
- ISBN-100130224960
- ISBN-13978-0130224965
- Edition1st
- PublisherPrentice Hall
- Publication dateJanuary 1, 2000
- LanguageEnglish
- Dimensions7.25 x 1.25 x 9.25 inches
- Print length700 pages
Editorial Reviews
From the Inside Flap
The internals of the UNIX kernel are fairly well-documented, most notably by Goodheart and Cox 10, Bach 1, McKusick et al. 19, and Vahalia 39. These texts have become a common source of reference information for those who want to better understand the internals of UNIX. However little has been written about the specifics of the Solaris kernel.
The paucity of Solaris specific information led us to create our own reference material. As we published information through white papers, magazine columns, and tutorials, the number of folks expressing interest motivated us to produce a complete work that discussed Solaris exclusively. About This Book
This book is about the internals of Sun's Solaris Operating Environment. The rapid growth of Solaris has created a large number of users, software developers, systems administrators, performance analysts, and other members of the technical community, all of whom require in-depth knowledge about the environment in which they work.
Since the focus of this book is the internals of the Solaris kernel, the book provides a great deal of information on the architecture of the kernel and the major data structures and algorithms implemented in the operating system. However, rather than approach the subject matter from a purely academic point of view, we wrote the book with an eye on the practical application of the information contained herein. Thus, we have emphasized the methods and tools that can be used on a Solaris system to extract information that otherwise is not easily accessible with the standard bundled commands and utilities. We want to illustrate how you can apply this knowledge in a meaningful way, as your job or interest dictates.
To maximize the usefulness of the text, we included specific information on Solaris versions 2.5.1, 2.6, and Solaris 7. We cover the major Solaris subsystems, including memory management, process management, threads, files, and file systems. We do not cover details of low-level I/O, device drivers, STREAMS, and networking. For reference material on these topics, see "Writing Device Drivers" 28, the "STREAMS Programming Guide" 29, and "UNIX Network Programming" 32.
The material included in this book is not necessarily presented at an introductory level, although whenever possible we begin discussing a topic with some conceptual background information. We assume that you have some familiarity with operating systems concepts and have used a UNIX-based operating system. Some knowledge of the C programming language is useful but not required.
Because of the variety of hardware platforms on which Solaris runs, it is not practical to discuss the low-level details of all the different processors and architectures, so our hardware focus, when detail is required, is admittedly UltraSPARC-centric. This approach makes the most sense since it represents the current technology and addresses the largest installed base. In general, the concepts put forth when detail is required apply to other processors and platforms supported. The differences are in the specific implementation details, such as per-processor hardware registers.
Throughout the book we refer to specific kernel functions by name as we describe the flow of various code segments. These routines are internal to the operating system and should not be construed as, or confused with, the public interfaces that ship as part of the Solaris product line-the systems calls and library interfaces. The functions referenced throughout the text, unless explicitly noted, are private to the kernel and not callable or in any way usable by application programs. Intended Audience
We hope that this book will serve as a useful reference for a variety of technical staff members working with the Solaris Operating Environment.
Application developers can find information in this book about how Solaris implements functions behind the application programming interfaces. This information helps developers understand performance, scalability, and implementation specifics of each interface when they develop Solaris applications. The system overview section and sections on scheduling, interprocess communication, and file system behavior should be the most useful sections. Device driver and kernel module developers of drivers, STREAMS modules, loadable system calls, etc., can find herein the general architecture and implementation theory of the Solaris Operating Environment. The Solaris kernel framework and facilities portions of the book (especially the locking and synchronization primitives chapters) are particularly relevant. Systems administrators, systems analysts, database administrators, and ERP managers responsible for performance tuning and capacity planning can learn about the behavioral characteristics of the major Solaris subsystems. The file system caching and memory management chapters provide a great deal of information about how Solaris behaves in real-world environments. The algorithms behind Solaris tunable parameters (which are detailed in Appendix A) are covered in depth throughout the book. Technical support staff responsible for the diagnosis, debugging, and support of Solaris will find a wealth of information about implementation details of Solaris. Major data structures and data flow diagrams are provided in each chapter to aid debugging and navigation of Solaris Systems. System users who just want to know more about how the Solaris kernel works will find high-level overviews at the start of each chapter.
In addition to the various technical staff members listed above, we also believe that members of the academic community will find the book of value in studying how a volume, production kernel implements major subsystems and solves the problems inherent in operating systems development. How This Book Is Organized
We organized Solaras Internals into several logical parts, each part grouping several chapters containing related information. Our goal was to provide a building block approach to the material, where later sections build on information provided in earlier chapters. However, for readers familiar with particular aspects of operating systems design and implementation, the individual parts and chapters can stand on their own in terms of the subject matter they cover.
Part One: Introduction to Solaris Internals Chapter 1 An Introduction to Solaris Chapter 2 Kernel Services Chapter 3 Kernel Synchronization Primitives Chapter 4 Kernel Bootstrap and Initialization Part Two: The Solaris Memory System Chapter 5 Solaris Memory Architecture Chapter 6 Kernel Memory Chapter 7 Memory Monitoring Part Three: Threads, Processes, and IPC Chapter 8 The Solaris Multithreaded Process Architecture Chapter 9 The Solaris Kernel Dispatcher Chapter 10 Interprocess Communication Part Four: Files and File Systems Chapter 11 Solaris Files and File I/O Chapter 12 File System Overview Chapter 13 File System Framework Chapter 14 The UNIX File System Chapter 15 Solaris File System Cache
Solaris Source Code
In February 2000, Sun announced the availability of Solaris source. This book provides the essential companion to the Solaris source and can be used as a guide to the Solaris kernel framework and architecture.
It should also be noted that the source available from Sun is the Solaris 8 source. Although this book covers Solaris versions up to and including Solaris 7, almost all of the material is relevant to Solaris 8. Updates and Related Material
To complement this book, we created a Web site where we will place updated material, tools we refer to, and links to related material on the topics covered. The Web site is available at solarisinternals. A Note from the Authors
We certainly hope that you get as much out of reading Solaris Internals as we did from writing it. We welcome comments, suggestions, and questions from readers.
From the Back Cover
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.
About the Author
JIM MAURO has 20 years of industry experience with UNIX systems. Jim is a senior engineer in the Performance Applications Engineering group at Sun Microsystems. When Jim is not wrestling with his two sons, his house, or his yard, he works on systems and applications availability and resource management-related projects for Sun.
RICHARD McDOUGALL is a senior engineer in the Performance Applications Engineering group at Sun Microsystems, focusing on enterprise systems architecture, large system performance, and OS technology. He has been known to have some knowledge of operating system architecture and internals. When Richard isn't tinkering with cars or racing karts, he is usually found analyzing system performance, contributing to Solaris development, and developing tools for measurement, monitoring, tracing, and sizing UNIX systems.
Excerpt. © Reprinted by permission. All rights reserved.
PREFACE
The internals of the UNIX kernel are fairly well-documented, most notably by Goodheart and Cox 10, Bach 1, McKusick et al. 19, and Vahalia 39. These texts have become a common source of reference information for those who want to better understand the internals of UNIX. However little has been written about the specifics of the Solaris kernel.
The paucity of Solaris specific information led us to create our own reference material. As we published information through white papers, magazine columns, and tutorials, the number of folks expressing interest motivated us to produce a complete work that discussed Solaris exclusively.
About This Book
This book is about the internals of Sun's Solaris Operating Environment. The rapid growth of Solaris has created a large number of users, software developers, systems administrators, performance analysts, and other members of the technical community, all of whom require in-depth knowledge about the environment in which they work.
Since the focus of this book is the internals of the Solaris kernel, the book provides a great deal of information on the architecture of the kernel and the major data structures and algorithms implemented in the operating system. However, rather than approach the subject matter from a purely academic point of view, we wrote the book with an eye on the practical application of the information contained herein. Thus, we have emphasized the methods and tools that can be used on a Solaris system to extract information that otherwise is not easily accessible with the standard bundled commands and utilities. We want to illustrate how you can apply this knowledge in a meaningful way, as your job or interest dictates.
To maximize the usefulness of the text, we included specific information on Solaris versions 2.5.1, 2.6, and Solaris 7. We cover the major Solaris subsystems, including memory management, process management, threads, files, and file systems. We do not cover details of low-level I/O, device drivers, STREAMS, and networking. For reference material on these topics, see "Writing Device Drivers" 28, the "STREAMS Programming Guide" 29, and "UNIX Network Programming" 32.
The material included in this book is not necessarily presented at an introductory level, although whenever possible we begin discussing a topic with some conceptual background information. We assume that you have some familiarity with operating systems concepts and have used a UNIX-based operating system. Some knowledge of the C programming language is useful but not required.
Because of the variety of hardware platforms on which Solaris runs, it is not practical to discuss the low-level details of all the different processors and architectures, so our hardware focus, when detail is required, is admittedly UltraSPARC-centric. This approach makes the most sense since it represents the current technology and addresses the largest installed base. In general, the concepts put forth when detail is required apply to other processors and platforms supported. The differences are in the specific implementation details, such as per-processor hardware registers.
Throughout the book we refer to specific kernel functions by name as we describe the flow of various code segments. These routines are internal to the operating system and should not be construed as, or confused with, the public interfaces that ship as part of the Solaris product line-the systems calls and library interfaces. The functions referenced throughout the text, unless explicitly noted, are private to the kernel and not callable or in any way usable by application programs.
Intended Audience
We hope that this book will serve as a useful reference for a variety of technical staff members working with the Solaris Operating Environment.
- Application developers can find information in this book about how Solaris implements functions behind the application programming interfaces. This information helps developers understand performance, scalability, and implementation specifics of each interface when they develop Solaris applications. The system overview section and sections on scheduling, interprocess communication, and file system behavior should be the most useful sections.
- Device driver and kernel module developers of drivers, STREAMS modules, loadable system calls, etc., can find herein the general architecture and implementation theory of the Solaris Operating Environment. The Solaris kernel framework and facilities portions of the book (especially the locking and synchronization primitives chapters) are particularly relevant.
- Systems administrators, systems analysts, database administrators, and ERP managers responsible for performance tuning and capacity planning can learn about the behavioral characteristics of the major Solaris subsystems. The file system caching and memory management chapters provide a great deal of information about how Solaris behaves in real-world environments. The algorithms behind Solaris tunable parameters (which are detailed in Appendix A) are covered in depth throughout the book.
- Technical support staff responsible for the diagnosis, debugging, and support of Solaris will find a wealth of information about implementation details of Solaris. Major data structures and data flow diagrams are provided in each chapter to aid debugging and navigation of Solaris Systems.
- System users who just want to know more about how the Solaris kernel works will find high-level overviews at the start of each chapter.
In addition to the various technical staff members listed above, we also believe that members of the academic community will find the book of value in studying how a volume, production kernel implements major subsystems and solves the problems inherent in operating systems development.
How This Book Is Organized
We organized Solaras Internals into several logical parts, each part grouping several chapters containing related information. Our goal was to provide a building block approach to the material, where later sections build on information provided in earlier chapters. However, for readers familiar with particular aspects of operating systems design and implementation, the individual parts and chapters can stand on their own in terms of the subject matter they cover.
- Part One: Introduction to Solaris Internals
- Chapter 1 An Introduction to Solaris
- Chapter 2 Kernel Services
- Chapter 3 Kernel Synchronization Primitives
- Chapter 4 Kernel Bootstrap and Initialization
- Part Two: The Solaris Memory System
- Chapter 5 Solaris Memory Architecture
- Chapter 6 Kernel Memory
- Chapter 7 Memory Monitoring
- Part Three: Threads, Processes, and IPC
- Chapter 8 The Solaris Multithreaded Process Architecture
- Chapter 9 The Solaris Kernel Dispatcher
- Chapter 10 Interprocess Communication
- Part Four: Files and File Systems
- Chapter 11 Solaris Files and File I/O
- Chapter 12 File System Overview
- Chapter 13 File System Framework
- Chapter 14 The UNIX File System
- Chapter 15 Solaris File System Cache
Solaris Source Code
In February 2000, Sun announced the availability of Solaris source. This book provides the essential companion to the Solaris source and can be used as a guide to the Solaris kernel framework and architecture.
It should also be noted that the source available from Sun is the Solaris 8 source. Although this book covers Solaris versions up to and including Solaris 7, almost all of the material is relevant to Solaris 8.
Updates and Related Material
To complement this book, we created a Web site where we will place updated material, tools we refer to, and links to related material on the topics covered. The Web site is available at http://www.solarisinternals.com.
A Note from the Authors
We certainly hope that you get as much out of reading Solaris Internals as we did from writing it. We welcome comments, suggestions, and questions from readers.
Product details
- Publisher : Prentice Hall; 1st edition (January 1, 2000)
- Language : English
- Hardcover : 700 pages
- ISBN-10 : 0130224960
- ISBN-13 : 978-0130224965
- Item Weight : 2.55 pounds
- Dimensions : 7.25 x 1.25 x 9.25 inches
- Best Sellers Rank: #3,791,119 in Books (See Top 100 in Books)
- #38 in Solaris Operating System
- #14,131 in Computer Software (Books)
- #40,797 in Mathematics (Books)
- Customer Reviews:
About the authors

Discover more of the author’s books, see similar authors, read book recommendations and more.

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Part One deals with traps, interrupts, callouts, contexts, and lock primitives and goes where the Sparc/SparcV9 Architecture Manuals did not.
My favorite section was Part Two (Solaris Memory System), it left me with a clear understanding of _everything_ related to memory: HAT, TSB's, TLB, MMU, phys mem organization, page table hashing, paging, page scanner, address spaces and segments, seg drivers, slab allocator, watchpoints, multiple page sizing, memory managment strats, to name a few subjects...
Part Three deals with threads, processes, and IPC. It has a large and very useful section on the Kernel Dispatcher and scheduling.
Part Four deals with everything 'file system'; DNLC, pn lookups, mmap, direct io, aio, fs cache, vnodes, vfs, etc. It contains useful details of useful Solaris features, which are easy to overlook in system manual pages.
Finally, Solaris Internals contains many data structure diagrams, charts, and tables -- the diagrams alone are enough to make the book useful!
A well written and _useful_ book ;)
--joey
Mauro and McDougall just seem to know when to breathe in their writing. Very few sentences seem rushed, dense or ornately detailed. They write with a "big picture" feel, and yet all the details I wonder about as I read seem to crop up in the next paragraph. They know how to keep the reader thinking in a direction they can address. It's a very calming and informative ride.
I really wish they had waited to base the book on Solaris 8, but there's not much you can do about such things. Hats off to the authors for producing a Sun book that will stay dust-free on my shelf for a long time.
Highest recommendation.
Unfortunately, it's a must-have because it covers some of Sun's modifications and extensions to the System V kernel.
My advice is that you first read "UNIX Internals: The New Frontiers" followed by "The Magic Garden Explained: The Internals of UNIX System V Release 4." Lastly, read this book, but if it disagrees with the books I recommend, ignore this book because you're probably being fed simplified rubbish.
Lastly, I have to mention that I found some sentences in the book that match word for word other sentences in "The Magic Garden Explained?"
Husband of Sarah
I found the book disapointing, only because I was look for a more indepth look at Solaris.
I've only 2 complaints. 1: it tends to get a bit "marketing" about Solaris 7 (comments like "function X is optimized to be the fastest possible". 2: could do with more code samples (perhaps in pseudo code), instead some of the descriptions are rather wordy and could be made clearer with source code. I know the source to Solaris 8 is available.
