This is my version of the Limine-based kernel. It's basically
just a stripped down version of the Limine C Template,
keeping only the x86-64 architecture support & restructuring the code(no more kernel/ directory).
Given this is only a template you can start with, the OSDev Wiki and the Limine Boot Protocol should give you a good headstart to your project.
You can change the name of the kernel in the boot menu inside of the limine.conf file.
include/- Contains external header files which do not generally belong to the source code(e.g. auto-generatedlimine.h)build/- Contains built kernel files & intermediary object filesdeps/- Contains cloned dependencies required to run the projectres/- Contains resources which should be converted into object files using theobjdumpcommand(see Makefile full command)src/- Contains kernel's main source code, this is where you will spend most of your time
I'd say the Makefile is pretty well organized, so just a bit of knowledge of make should give you enough information about the project build and how you can customize it. But generally it follows these steps:
- Clone & build the dependencies(using the
get-deps.shscript) - Compile & link the object files
- Create the ISO/HDD
- (Optional) Run inside QEMU
The Makefile also provides following targets:
all- Builds the ISOall-hdd- Builds the HDDrun- Runs the ISO inside QEMUrun-hdd- Runs the HDD inside QEMUrun-debug- Runs the ISO inside QEMU and waits for the debugger to attach, also provides useful information inside of thelogs/directoryclean- Cleans the contents of thebuild/directoryfreshen- Removes all the downloaded dependencies and cleans the contents of thebuild/directory
This project template is licensed under the MIT License