February 3rd, 2002, 12:29 AM
PC boot process
A few basic facts on how the (IBM compatible) PC boots itself.
1. The first thing your processor does when powered on, is to seek
a standard address in memory, and execute whatever code it finds.
This address is F000:FFF0h.
All x86 Intel or clone chips are hard-wired to seek this address.
2. At memory address F000:FFF0h, there will be a jmp (jump)
instruction to another address where a program is located.
This program (in the BIOS), hard wired in ROM somewhere
between 640k and 1 meg in memory will perform rudimentary
hardware testing called Power On Self Test (POST).
3.BIOS will seek boot drive. (the one given priority in your setup (CMOS).
BIOS will get the first sector of this drive (cylinder 0, head 0, sector 1),
load this sector into RAM and execute the code found therein.
It is important to remember that this code will be executed,
no matter what it says to do. If it is virus code, it will execute,
because there is no antivirus software running yet. The OS hasn't
4. The first sector contains two items, first; the boot loader.
The boot loader is a short program that seeks the bootable
partition, and loads the first sector of the partition into
memory, and jumps there to execute its code. Second; the first sector
also has four data fields for partition info. This is the Partition Table.
So, this first sector is sometimes called the Master Boot Record,
and sometimes it is called the Partition Table, because it contains
both of these items.
5.In the standard MSDOS MBR/boot loader, the code will consult the
partition table, looking for the "bootable", or "active" flag on one of
the partition entries. The first sector of the bootable partition will
be loaded into memory and executed. This sector is called the
Boot Sector, and is often confused with the Master Boot Record,
discussed above. It is also, especially in the past, a common
place for virus code.
6. The code in the boot sector looks for the OS kernel and loads
it into memory and executes it. Originally, the dos kernel had to
ocuppy the first contiguous data sectors of the partition,
because the boot sector code wasn't very sophisticated.
If you install a different OS than the dos/win type, or if you
dual boot, the standard boot loader in the master boot record
can be replaced by a boot loader that can give you a choice.
The standard Dos boot loader, can only boot the partition
marked bootable, but LILO, the linux loader, ignores the
bootable flag, and loads whatever OS you select.
I came in to the world with nothing. I still have most of it.
February 3rd, 2002, 12:48 AM
kewl info there..
February 3rd, 2002, 11:45 AM
February 3rd, 2002, 11:47 AM
Wine maketh merry: but money answereth all things.
February 3rd, 2002, 11:48 AM
Good, clear post. Thanks rcgreen - keep them coming.
I wish to express my gratitude to the people of Italy. Thank you for inventing pizza.
February 3rd, 2002, 02:03 PM
ASCII stupid question, get a stupid ANSI.
When in Russia, pet a PETSCII.
Get your ass over to SLAYRadio
the best station for C64 Remixes !
February 3rd, 2002, 04:02 PM
Excellent post we need MORE like this one here! keep them rollin
February 3rd, 2002, 04:28 PM
Without wanting to nice post rcgreen
February 3rd, 2002, 04:37 PM
good post. A pity some were taken in by that individual claiming a system was his. Oh well, a good lesson to them to be careful to check out things first.
rcgreen - good idea and here is some more:
post/boot process on -
I'd post them but I'm not where I can get the details today....
February 3rd, 2002, 05:18 PM
good post! Thanks for the info rcgreen!