1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 14:27:35 +00:00

Kernel: Introduce basic pre-kernel environment

This implements a simple bootloader that is capable of loading ELF64
kernel images. It does this by using QEMU/GRUB to load the kernel image
from disk and pass it to our bootloader as a Multiboot module.

The bootloader then parses the ELF image and sets it up appropriately.
The kernel's entry point is a C++ function with architecture-native
code.

Co-authored-by: Liav A <liavalb@gmail.com>
This commit is contained in:
Gunnar Beutner 2021-07-18 14:47:32 +02:00 committed by Andreas Kling
parent 357ddd393e
commit 7e94b090fe
30 changed files with 1207 additions and 181 deletions

View file

@ -2,20 +2,24 @@ timeout=1
menuentry 'SerenityOS (normal)' {
root=hd0,2
multiboot /boot/Kernel root=/dev/hda2
multiboot /boot/Bootloader root=/dev/hda2
module /boot/Kernel
}
menuentry 'SerenityOS (text mode)' {
root=hd0,2
multiboot /boot/Kernel boot_mode=no-fbdev root=/dev/hda2
multiboot /boot/Bootloader boot_mode=no-fbdev root=/dev/hda2
module /boot/Kernel
}
menuentry 'SerenityOS (No ACPI)' {
root=hd0,2
multiboot /boot/Kernel root=/dev/hda2 acpi=off
multiboot /boot/Bootloader root=/dev/hda2 acpi=off
module /boot/Kernel
}
menuentry 'SerenityOS (with serial debug)' {
root=hd0,2
multiboot /boot/Kernel serial_debug root=/dev/hda2
root=hd0,2
multiboot /boot/Bootloader serial_debug root=/dev/hda2
module /boot/Kernel
}