OpenSolaris Internals Course Outline
- Format: Lecture 70%, Lab Work 30%
- Duration: 5 days
This course answers the question, "How does the system work?"
It uses a combination of source code and various tools available on Solaris
to examine the topics that are covered. Tools used will include:
dtrace, kmdb, mdb, and the /proc tools. Topics include: threads
and processes, memory management, file systems, and I/O. Throughout the course, hands-on labs and demos are used to reinforce the concepts being taught.
- Use dtrace, mdb, and kmdb to examine how the system
- Describe implementation of threads and processes on
- Describe what happens during thread switching.
- Describe what happens during interrupt handling.
- Explain how memory management is implemented on SPARC, x86, and AMD64.
- Describe how scheduling works in OpenSolaris.
- Use the OpenSolaris thread scheduling classes.
- Explain how signals are handled in OpenSolaris.
- Describe file system implementation, both in-memory and on-disk.
- Describe how I/O works for various types of devices.
- Gain enough knowledge about the system so that sutdents can learn more on their own.
This course is designed for anyone who needs a deeper understanding of the internals of the operating system. This could be a developer, system administrator, or even an end-user. Understanding internals will allow students to make better use of the system, and will enable students
to enhance overall troubleshooting skills.
Some general knowledge of operating systems and programming languages
is a plus. To do some of the labs (and for examining source code), knowledge of C is very helpful.
Module 1: Introduction
- Solaris Architecture
- Source Code Layout
- Overview of Kernel Modules
- Overview of Resource Management
- Fault Management
- Kernel Memory Layout and Dynamic Memory Allocation
Module 2: Threads and Processes
- Programming Model
- Data Structures
- Process Address Space
- System Calls, Traps, and Interrupts
- Condition Variables
- Reader/Writer Locks
- Other Mechanisms
- What can go wrong, and how to examine problems
Module 3: Memory Management
- Data Structures
- The HAT Layer
- Page Table Management
- Page Fault Handling
- Memory Mapping
- Segment Drivers
- User Process Address Space
- Kernel Address Space
- Swap space management
- Page Stealing
- Shared Memory
- Regular File I/O
- Putting it all together
- Examination of Data Structures with mdb
- Tracing a page fault with dtrace
- Examining a page table with mdb
Module 4: Scheduling
- Schedulers in Solaris
- Processor Affinity
- Priority Inversion Handling
Module 5: Signal Handling
Module 6: File Systems
- The Virtual File System/Vnode Interface
- A Brief Description of File Systems on Solaris
- ufs Overview
- zfs Details
- Algorithms/Data Structures
- On-Disk Layout
- In-Memory Representation
- Mirrors, Raidz, Snapshots, Clones
- Device Tree Organization
- Storage Device Overview
- Network I/O Overview
- USB Overview
To add your name to the interest list for this course, click send email to email@example.com.