Go to the first, previous, next, last section, table of contents.
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.