Optimize Kernel and OAL Initialization (Compact 2013)

3/26/2014

This topic discusses strategies for configuring the kernel and OEM adaptation layer (OAL) to minimize OS initialization and start time.

Kernel Startup Overview

After StartUp completes its tasks, the boot loader calls the kernel initialization function. The boot loader will call either KernelInitialize for x86-based platforms or KernelStart for all other platforms. The kernel initialization function calls additional OAL functions, schedules threads, and completes tasks that are specific to each class of CPU.

For more information about startup sequences, see Boot Loader Initialization Functions, StartUp, Startup (OAL) and Startup (Boot Loader).

Improvement Strategies for Kernel and OAL Optimization

To reduce overall startup time, you can optimize kernel and OAL initialization in the following ways:

  • Avoid calling operations in OEMInit that block on I/O or perform large memory operations for OAL initialization steps.
  • Avoid performing operations in the kernel and OAL that were performed in the boot loader operation.
  • Avoid adding an IOCTL_HAL_POSTINIT callback to the OAL during initialization.

See Also

Concepts

Startup Time Optimization Strategies