Solaris OS Loadable Modules

Solaris is a Unix-based operating system originally developed by Sun Microsystems and now maintained by Oracle as Oracle Solaris. It is renowned for its enterprise-grade scalability and innovative features such as DTrace (dynamic tracing), ZFS (Zettabyte File System), and Time Slider backup functionality.

Solaris Kernel Architecture

The Solaris kernel serves as the core component that manages hardware resources and system operations. Unlike monolithic kernels, Solaris employs a modular kernel design that allows dynamic loading and unloading of kernel modules, providing flexibility and efficient memory usage.

Solaris Boot Process

The Solaris boot sequence involves several distinct phases, each responsible for loading specific system components −

Loading the Bootblock

The system firmware in Open Boot PROM (OBP) reads and loads the bootblock into memory. This initial phase establishes system parameters, builds the hardware device tree, and provides bootstrap support for both manual and automatic system booting.

Loading ufsboot

The bootblock locates and transfers control to the secondary boot program ufsboot. Due to the 7680-byte size limitation of bootblock, its primary functions are limited to reading Unix directories, locating files, and loading them into memory.

Loading Core Kernel and Linker

The ufsboot program locates and loads the core kernel from /platform/<platform>/kernel/unix and the runtime linker from /kernel/misc/krtldn. The ufsboot can parse executable and linking format headers, enabling it to load the required krtldn program and pass control to it.

Loading Required Kernel Modules

The krtldn searches for specific modules based on path variables set either in OBP firmware or manually entered through the boot program's command line interface.

Kernel Initialization

Before user applications can start, the Solaris kernel requires initialization in virtual memory address space. This involves processor register initialization and execution of critical system calls including mlsetup(), main(), and startup().

The Init Process

The init process represents the first genuine user process allocated in user address space rather than kernel address space. It serves as the final process created by the kernel to bootstrap the complete system.

Solaris Loadable Kernel Modules

Solaris implements a small core kernel architecture with dynamically linkable modules. These modules function as specialized layers, each with defined responsibilities and interfaces for communication with other system components.

Solaris Loadable Kernel Modules System Call Interface File Systems Networking Schedulers Kernel Core Device Drivers Memory Mgmt Process Control Hardware Interface CPU Memory Storage Network Dynamic Loading and Unloading

Unlike traditional layered architectures, Solaris modules can communicate directly with each other when necessary, eliminating the overhead of traversing multiple intermediate layers. This design provides both modularity and performance efficiency.

Key Features

  • Dynamic Loading − Modules are loaded into kernel space only when needed, reducing memory footprint.

  • Dynamic Unloading − Unused modules can be unloaded to free kernel memory.

  • Direct Communication − Modules can interact directly without layered restrictions.

  • Modular Design − Each module has well-defined interfaces and responsibilities.

Conclusion

Solaris loadable kernel modules provide a flexible and efficient architecture that combines the benefits of modular design with direct inter-module communication. This approach enables dynamic resource management while maintaining system performance and scalability.

Updated on: 2026-03-17T09:01:38+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements