The Boot Process
- Executes Motherboard ROM firmware code
- power-on-self-test(https://en.wikipedia.org/wiki/Power-on_self-test)
- detect available RAM
- pre-initialize CPU & other hardwares
- looks for bootable disk
Patch for bootloader_api
crate
bootloader_api
cratebootloader_api를 이용하려 하였으나, x86 dependent한 요소가 많아 더 이상 이용하지 않음
- Translate instruction from x86 to aarch64
- Reference
Bootable Disk Image
Update: abandon creating disk image since our os will boot on uefi-app- Update: abandon uefi since there were some compatibility issue when using asm
UEFI APP
BIOS vs UEFI
BIOS
Basic Input Output System
- Stored in EPROM (Erasable Programmable Read Only Memory)
- Uses MBR Partitioning Scheme
- Legacy Way
- Requires 16bit-32bit-64bit transition since it starts on 16bit mode
UEFI
Unified Extensible Firmware Interface
- Requires EFI System Partition (ESP) to store
.efi
file .efi
file includes all device initialization & startup codes.. (could be kernel itself)- Uses GPT Partitioning scheme