Go to the first, previous, next, last section, table of contents.


The memory map of various components

GRUB is broken into 2 distinct components, or stages, which are loaded at different times in the boot process. The Stage 1 has to know where to find Stage 2, and the Stage 2 has to know where to find its configuration file (if Stage 2 doesn't have a configuration file, it drops into the command line interface and waits for a user command).

Here is the memory map of the various components (10):

0 to 4K-1
Interrupt & BIOS area
down from 8K-1
16-bit stack area
8K to (ebss1.5)
Stage 1.5 (optionally) loaded here by Stage 1
0x7c00 to 0x7dff
Stage 1 loaded here by the BIOS
0x7e00 to 0x7e08
Scratch space used by Stage 1
32K to (ebss2)
Stage 2 loaded here by Stage 1.5 or Stage 1
(middle area)
Heap used for random memory allocation
down from 416K-1
32-bit stack area
416K to 448K-1
Filesystem info buffer (when reading a filesystem)
448K to 479.5K-1
BIOS track read buffer
479.5K to 480K-1
512 byte fixed SCRATCH area
480K to 511K-1
General storage heap

See the file `stage2/shared.h', for more information.


Go to the first, previous, next, last section, table of contents.