Access starting memory address in ROM
Perform initialization coded in ROM BIOS
Initialize I/O devices using supplimential ROM
Read MBR of primary storage device holding Operating System
Read Volume Boot Record of active partion
Load operating system
When stable, access predetermined reserved starting memory location - in order for a cpu to start acting, it must be able to access a known initial instruction. Each cpu design may have its own choice of address, but once a manufacturer has selected an address for a cpu model, it will manufacture all cpus to perform their very 1st read at that address. In the case of the 80x86 design, this address is $FFFF0. At this address, the system manufacturer will place code reserved in a ROM chip known as the ROM Bios.
Perform initialization coded in ROM Bios - using this first read as a starting point to the code needed to activate all of the system hardware, begin activating hardware. Although the 1st address accessed is determined by the chip designer, if that first instruction is a jump command, the system designer or ROM Bios designer is free to arrange the location and order of code to initialize the rest of the system in any order.
Initialize hardware to allow I/O communication - activate the various hardware devices on the system such as keyboard, monitor, etc. It is common for the particular manufacturer to include additional code and data in ROM on the hardware device. By aggrement and historical precedence, each type of the more common devices will use a predetermined and well known address for the additional ROM thus allowing many manfacturers to produce replacement devices. It is possible for a system manufacturer and BIOS designer to select non-standard addresses but it is uncommon.
Read Master Boot Record of Hard Drive - begin loading the OS by reading the MBR of the primary storage device, usually a harddrive. This record will describe the general layout of the storage device, which partion contains the desired operating system, and the location of the sector on the device that holds the 1st block of program needed to boot the Operating system.
Load Operating system - because an OS is fairly complex, this load sequence is often implemented as a series of action. The first block of code is found at a specific track & sector address on the active partion. Using a specific address allows for a very simple but inflexible block of predefined code to access it. Once the 1st block of the OS is loaded, the more advanced I/O access features of the OS are available to continue booting the system. The final file loaded is often the command interpreter that will be used by the user.