You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

23 lines
884 B
Markdown

## Overview
Currently we boot from BIOS on a GPT-partitioned disk.
`boot0.s` is the first-stage bootloader. It lives in the MBR bootstrap field, and must therefore
fit into 440 bytes. Its tasks are:
- [x] Set up a stack etc.
- [x] Get the boot drive geometry
- [x] Load and parse the GPT
- [x] Find the partition of the second stage
- [x] Load and jump to the first sector of the second stage
`boot1.s` is the second-stage bootloader. Its tasks are:
- [x] Load its own sectors not loaded by the first stage
- [x] Enable A20
- [ ] Detect available memory
- [ ] Enter unreal mode
- [ ] Read the kernel ELF from disk (don't have to parse the ELF just yet)
- [ ] Get all the useful information we can from the BIOS before we leave unreal mode
- [ ] Enter long mode (possibly via protected mode?)
- [ ] Load the kernel ELF
- [ ] Initialise stack etc. for the kernel
- [ ] Jump to kernel