Pronounced like the drum or the drug apparatus, whichever you prefer.
Built off of the Limine bootloader C template.
- Limine Bare Bones Kernel & build system
- VGA graphics interfacing
- Basic font rendering (8x8 font)
- Basic text buffer display + formatted printing
- Getting and displaying hardware info (memory layout, tables, etc)
- Interrupt handling and keyboard input
Any make
command depends on GNU make (gmake
) and is expected to be run using
it. This usually means using make
on most GNU/Linux distros, or gmake
on
other non-GNU systems.
It is recommended to build this project using a standard UNIX-like system, using
a Clang/LLVM toolchain capable of cross compilation (the default, unless KCC
and/or KLD
are explicitly set).
Additionally, building an ISO with make all
requires xorriso
, and building a
HDD/USB image with make all-hdd
requires sgdisk
(usually from gdisk
or
gptfdisk
packages) and mtools
.
The KARCH
make variable determines the target architecture to build the kernel
and image for.
The default KARCH
is x86_64
. Other options include: aarch64
,
loongarch64
, and riscv64
.
Running make all
will compile the kernel (from the kernel/
directory) and
then generate a bootable ISO image.
Running make all-hdd
will compile the kernel and then generate a raw image
suitable to be flashed onto a USB stick or hard drive/SSD.
Running make run
will build the kernel and a bootable ISO (equivalent to make
all) and then run it using qemu
(if installed).
Running make run-hdd
will build the kernel and a raw HDD image (equivalent to
make all-hdd) and then run it using qemu
(if installed).
For x86_64, the run-bios
and run-hdd-bios
targets are equivalent to their
non -bios
counterparts except that they boot qemu
using the default SeaBIOS
firmware instead of OVMF.