mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 14:37:45 +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:
parent
357ddd393e
commit
7e94b090fe
30 changed files with 1207 additions and 181 deletions
|
@ -1,11 +1,6 @@
|
|||
#!/bin/sh
|
||||
tmp=$(mktemp)
|
||||
if [ -f Kernel32 ]; then
|
||||
kernel_binary=Kernel32
|
||||
else
|
||||
kernel_binary=Kernel64
|
||||
fi
|
||||
nm -n $kernel_binary | grep -vE \\.Lubsan_data | awk '{ if ($2 != "a") print; }' | uniq > "$tmp"
|
||||
nm -n Kernel | grep -vE \\.Lubsan_data | awk '{ if ($2 != "a") print; }' | uniq > "$tmp"
|
||||
printf "%08x\n" "$(wc -l "$tmp" | cut -f1 -d' ')" > kernel.map
|
||||
c++filt < "$tmp" >> kernel.map
|
||||
rm -f "$tmp"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue