A WIP Unix-like AArch64 operating system.
If you use nix, nix develop sets up everything you will need in order to
build and run the kernel under Qemu.
Building requires the following packages:
clang
lld
xorriso # to create iso image
qemu # to run
meson
ninja
gnumake # ofcourse
python313Packages.kconfiglib
# llvm # not required, but contains useful tools like objdump, objcopy
# gdb # for debugging
# bear # if you want to generate compile_commands.jsonThen generate a config using:
# Use the default config
make defconfig
# Or configure the kernel yourself and save it
make menuconfigThen build the kernel
makeI have yet to test this on actual hardware, I have only tested this on Qemu
under the virt platform.
Since AArch64 only supports UEFI and not bios, you will need to provide UEFI firmware for Qemu.
You can just download the full-release from the releases page as it contains
both a built ISO Image and firmware you need to emulate under Qemu.
You can also download the firmware from the releases page of: https://github.com/osdev0/edk2-ovmf-stable-bins/releases/
Then set UEFI_FIRMWARE env pointing directly to the firmware.
This is done automatically if you're using nix.
run under Qemu:
make runLimine - Modern, secure, portable, multi protocol bootloader and boot manager.
Flanterm - Fast and reasonably complete (frame buffer) terminal emulator.
libfdt - The device tree library
https://wiki.osdev.org
https://krinkinmu.github.io # thank you @krinkinmu
https://kernel-internals.org
https://df.lth.se/~getz/ARM/A64/
https://github.com/Elite-zx/Tiny-OS # thank you @Elite-zx
https://github.com/mit-pdos/xv6-riscv
https://github.com/arryndoestech/adt_os # thank you @arryndoestech
https://xv6-guide.github.io/xv6-riscv-book
https://github.com/gmarino2048/64bit-os-tutorial # thank you @gmarino2048
https://lowenware.com/blog/aarch64-mmu-programming/
https://developer.arm.com/documentation/ddi0487/latest
https://developer.arm.com/documentation/ddi0601/latest
https://cs140e.sergio.bz/docs/ARMv8-Reference-Manual.pdf
https://gist.github.com/x0nu11byt3/bcb35c3de461e5fb66173071a2379779 # thank you @x0nu11byt3