5.10.2.1Boot methods
SLES supports booting from a hard disk, a
5.10.2.2Boot loader
A boot loader is a program that resides in the starting sectors of a disk, that is, the Master Boot Record (MBR) of the hard disk. After testing the system during boot, the Basic
SLES supports the GRUB (GRand Unified Boot Loader) boot loader. GRUB lets you set pointers in the boot sector to the kernel image and to the RAM file system image. GRUB is a part of the TSF. For detailed information about GRUB, refer to their Web site at http://www.gnu.org/software/grub/ and, on SLES systems, /usr/share/info/grub.info.gz.
5.10.2.3Boot process
The boot process consists of the following steps when the CPU is powered on or reset:
1.The BIOS probes the hardware, establishes which devices are present, and runs the
2.The BIOS initializes hardware devices and makes sure they operate without IRQ or I/O port conflicts.
3.The BIOS searches for the operating system to boot in an order predefined by the BIOS setting. Once a valid device is found, the BIOS copies the contents of its first sector containing the boot loader into RAM, and starts executing the code just copied.
4.The boot loader is invoked by BIOS to load the kernel and the initial RAM file system into the system’s Random Access Memory (RAM). It then jumps to the setup() code.
5.The setup() function reinitializes the hardware devices in the computer and sets up the environment for the execution of the kernel program. The setup() function initializes and configures hardware devices, such as the keyboard, video card, disk controller, and floating point unit.
6.The boot loader reprograms the Programmable Interrupt Controller and maps the 16 hardware interrupts to the range of vectors from 32 to 47. The boot loader switches the CPU from Real Mode to Protected Mode and then jumps to the startup_32() function.
7.The boot loader initializes the segmentation registers and provisional stack. It fills the area of uninitialized data of the kernel with zeros.
8.The boot loader decompresses the kernel, moves it into its final position at 0x00100000, and jumps to that address.
9.The boot loader calls the second startup_32() function to set the execution environment for process 0.
10.The boot loader initializes the segmentation registers.
11.The boot loader sets the kernel mode stack for process 0.
12.The boot loader initializes the provisional Page Tables and enables paging.
13.The boot loader fills the bss segment of the kernel with zeros.
158