BIOS
- https://en.wikipedia.org/wiki/BIOS
- A very basic set of code on an
IBM-Compatible system, that is loaded from the motherboard’s ROM chip (
CMOS), initialises the CPU and important hardware, in
16-bit, sets up the BIOS
Interrupts then searches across the specified disks for a
Bootloader at the start of the disk
- The bootloader is any binary blob, 512 bytes in length, that ends in
0xAA55
. - If the BIOS finds such a signature, it’ll load those 512 bytes into the processor and run them as code.
- The bootloader is any binary blob, 512 bytes in length, that ends in
- Largely superseded by UEFI
- Tends to be quite limited - can only boot to 16-bit, can only address ~1MB of memory, and has a lot of legacy compatibility quirks - largely relying on the Bootloader and subsequent operating system to take over control of the platform and do any real work
BIOS Memory Maps
See: https://wiki.osdev.org/Memory_Map_(x86)#Extended_BIOS_Data_Area_.28EBDA.29
BIOS Data Area
- Not standard, but typically maps various info about system state
Extended BIOS Data Area (EBDA)
Not standardised, but typically contains ACPI tables at ~1KB. Take a look at [[INT15h]]