Booting in Intel

innocentzero

2026-03-14

Booting in Intel

I learned how intel processors boot, and I also looked a lot into coreboot and libreboot and such.

From the power button to the kernel

The intel processors boot in the Real Mode. The Code Segment register is set to 0xffff0000 and the selector is set to 0xf000, with instruction pointer set to 0xfff0. With the base and the IP, we get the address to be 0xfffffff0, which is the reset vector. This is the first instruction where execution happens after startup. It usually has a jump instruction pointing to the BIOS entry point.

After BIOS

The reset vector jumps into the firmware, which is BIOS in case of a legacy PC. BIOS does a few init checks and brings the hardware to a stable state, and then looks for bootable devices. It doesn't just load a random disk, there's a well defined boot order, a list in its configuration.

It looks for a boot sector. On drives partitioned with Master Boot Record scheme, it looks for the first 446 bytes in the first sector (each sector is 512 bytes). It copies the content over to 0x7c00.