The next stage in the startup process involves loading the Linux kernel. The boot loader places the kernel in memory as well as initrd. As the kernel begins to execute, it unpacks initrd into a portion of memory specifically created at runtime to act as a physical disk drive. This new "disk" is then mounted as an initial root partition. This is done to facilitate the identification loading of modules the kernel will need to access the actual system / partition. Building all vendor and architecture disk device drivers right into the kernel would make it unacceptably large and inefficient. This preliminary look-ahead step using initrd allows for the dynamic loading of the appropriate module at boot time.
When the proper drivers are available to the kernel, the initrd RAM disk is unmounted, the memory reclaimed, and the proper / partition mounted. Before passing control over to the init routine, the kernel performs a series of steps to identify and load additional modules it will need.
To see the messages generated by the kernel when the system was started, you can use the dmesg command. This will list several hundred lines of device discovery and status information as the server starts up. The following is a synopsis of kernel messages generated during a typical boot sequence:
Checks the BIOS for a memory configuration
Turns on ACPI and other kernel parameters as described by the boot loader parameters
Starts CPU 0 and looks at its properties
Initializes the console to 80x25 characters
Checks the various busses for device and IRQ assignments
Scans for devices on the IRQs (serial ports, floppies, audio, and so on)
Detects disk drives and network cards
Loads appropriate modules for the system
Starts the init process
As the kernel loads, it dynamically loads the appropriate modules for the detected hardware. A careful review of the dmesg output will identify any serious errors that must be resolved.
After the kernel has finished loading all appropriate modules, it then passes control over to the init process. In the next section, we examine how this new startup process loads the remaining portions of the SLES install and makes it ready for use.