Minimal Linux Bootloader
a year ago
- #bootloader
- #linux
- #assembly
- Minimal Linux Bootloader 是遵循 GNU 通用公共许可证的自由软件。
- 该引导加载程序使用 BIOS 中断 0x13 将内核的前 512 字节加载到 0x10000 地址。
- 它在 0x1f1 地址检查内核设置区大小,并将设置区加载到前 512 字节之后。
- 引导加载程序会设置内核头部字段,包括加载器类型、堆使用情况和命令行指针。
- 它将命令行移至内存,并从内核设置区读取保护模式下的内核大小。
- 引导加载程序使用 BIOS 中断将内核分块加载到临时内存,再将其复制到 1MB 以上的扩展内存。
- 内存布局包含:引导代码位于 0x07c00、实模式内核位于 0x10000、堆栈和堆位于 0x18000、命令行位于 0x1e000。
- 引导加载程序包含错误处理功能,并在启动时打印内核版本字符串。
- 它使用全局描述符表(GDT)进行内存操作,使用磁盘地址包(DAP)进行磁盘读取。
- 引导加载程序最后会跳转到 0x10200 地址的内核设置代码。