mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-09 11:16:47 +00:00
* 添加multiboot header * head.S传参增加bootloader类型 * feat: 添加引导加载协议的抽象,并为multiboot2实现这个抽象. * 把framebuffer的映射地址改为从early ioremap和mmio pool分配 * riscv64能运行
1000 B
1000 B
引导加载程序
X86_64
- multiboot2
RISC-V 64
DragonOS在RISC-V 64上,启动流程为:
opensbi --> uboot --> DragonStub --> kernel
这个启动流程,使得DragonOS内核与具体的硬件板卡解耦,能够以同一个二进制文件,在不同的硬件板卡上启动运行。
内核启动回调
DragonOS对内核引导加载程序进行了抽象,体现为BootCallbacks
这个trait。
不同的引导加载程序,实现对应的callback,初始化内核bootParams或者是其他的一些数据结构。
内核启动时,自动根据引导加载程序的类型,注册回调。并且在适当的时候,会调用这些回调函数。