System Administration Guide: Basic Administration

x86: Boot Processes

This section includes information about boot processes that are unique to booting an x86 based system.

x86: System BIOS

When an x86 based system is powered on, it is controlled by the read-only-memory (ROM) Basic Input/Output System (BIOS). The BIOS is the firmware interface on Oracle Solaris operating systems that have x86 64-bit and 32-bit support.

Hardware adapters usually have an on-board BIOS that displays the physical characteristics of the device. The BIOS is used to access the device. During the startup process, the system BIOS checks for the presence of any adapter BIOS. If any adapters are found, the system then loads and executes each adapter BIOS. Each adapter's BIOS runs self-test diagnostics and then displays device information.

The BIOS on most systems has a user interface, where you can select an ordered list of boot devices that consists of the following selections:

The BIOS attempts to boot from each device, in turn, until a valid device with a bootable program is found.

x86: Kernel Initialization Process

The /platform/i86pc/multiboot program is an ELF32 executable that contains a header which is defined in the Multiboot Specification.

The multiboot program is responsible for performing the following tasks:

After the kernel gains control of the system, the kernel initializes the CPU, memory, and device subsystems. The kernel then mounts the root device, which corresponds to the bootpath and fstype properties that are specified in the /boot/solaris/bootenv.rc file. This file is part of the boot archive. If these properties are not specified in the bootenv.rc file, or on the GRUB command line, the root file system defaults to UFS on /devices/ramdisk:a. The root file system defaults to UFS when you boot the installation miniroot. After the root device is mounted, the kernel initializes the sched and init commands. These commands start the Service Management Facility (SMF) services.