Go to file
2023-09-02 19:06:59 -05:00
kernel Have kernel makefile targets depend on GNUmakefile and linker.ld appropriately. Closes #9 2023-08-31 23:38:59 -05:00
.gitignore Update 2023-03-27 01:53:14 +02:00
GNUmakefile Use sgdisk and mtools instead of parted and util-linux. Closes #6 2023-09-01 01:02:23 -05:00
LICENSE Update 2023-02-25 12:02:20 +01:00
limine.cfg Update 2023-07-07 16:03:10 +02:00
README.md Rework README.md 2023-09-02 19:06:59 -05:00

Limine Bare Bones

This repository will demonstrate how to set up a basic higher half x86-64 kernel using Limine.

It is recommended to cross reference the contents of this repository with the Limine Bare Bones OSDev wiki page.

How to use this?

Dependencies

All make all* targets depend on a GNU-compatible C toolchain capable of generating x86-64 ELF objects. Usually gcc/binutils or clang/llvm/lld provided by any x86-64 UNIX like (including Linux) distribution will suffice.

Additionally, building an ISO with make all requires xorriso, and building a HDD/USB image with make all-hdd requires sfdisk (usually from gdisk or gptfdisk packages) and mtools.

Makefile targets

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).

The run-uefi and run-hdd-uefi targets are equivalent to their non -uefi counterparts except that they boot qemu using a UEFI-compatible firmware.