Architecture Tips and Tidbits
The installed base of Solaris systems being used for various commercial data-processing
applications across all market segments and scientific computing applications
has grown dramatically over the last several years, and it continues to grow.
As an operating system, Solaris has evolved considerably, with some significant
changes made to the UNIX SVR4 source base on which the early system was built.
An understanding of how the system works is required in order to design and develop
applications that take maximum advantage of the various features of the operating
system, to understand the data made available via bundled system utilities, and
to optimally configure and tune a Solaris system for a particular application
or load. Topics include the major subsystems of the Solaris 8 kernel. We review
the major features of the release and take a look at how the major subsystems
are tied together. We cover in detail the implementation of Solaris services (e.g.
system calls) and low-level functions, such as synchronization primitives, clocks
and timers, and trap and interrupt handling. We discuss the systems memory
architecture; the virtual memory model, process address space and kernel address
space, and memory allocation. The Solaris process/thread model is discussed, along
with the kernel dispatcher and the various scheduling classes implemented and
supported. We cover the Virtual File System (VFS) subsystem, the implementation
of the Unix File System (UFS), and file IO-related topics. All topics are covered
with an eye to the practical application of the information, such as for performance
tuning or software development. Solaris networking (topics related to TCP/IP and
STREAMS) is not covered in this course. After completing this course, participants
will have a solid understanding of the internals of the major areas of the Solaris
kernel that they will be able to apply to systems performance analysis, tuning,
load/behavior analysis, and application development.
Richard McDougall is a performance architect in Suns performance
engineering group. His areas of interest are operating system performance, observability
and analysis. He is the co-author of Sun Microsystems Press books Solaris
Internals and Resource Management. Some of his Solaris projects
include MemTool, Solaris memory instrumentation (pmap, mdbs memstat), Priority
Paging and the Solaris 8 Cyclical file system cache.
Who should attend:
Software engineers, application architects and developers, kernel
developers, device driver writers, system administrators, performance analysts,
capacity planners, Solaris users who wish to know more about the system theyre
using and the information available from bundled and unbundled tools, and anyone
interested in operating system internals.