A small monolithic kernel, supporting x86_64 and aarch64.
For building the kernel the usage of one of the presets is recommended to simplify the configuration.
# Using presets (recommended):
cmake --preset x86_64-gcc # or x86_64-clang, aarch64-gcc, aarch64-clang
cmake --build --preset x86_64-gccCurrently the following presets are defined:
| Architecture | Compiler | Preset name |
|---|---|---|
| x86_64 | clang | x86_64-clang |
| x86_64 | gcc | x86_64-gcc |
| aarch64 | clang | aarch64-clang |
| aarch64 | gcc | aarch64-gcc |
For creating all bootable ISO's for the current architecture with the supported boot protocols, the following command can be used:
cmake --build --preset x86_64-clang --target isoFor running the kernel in QEMU every supported boot protocol defines its own target:
cmake --build --preset x86_64-clang --target run-<protocol> # E.g cmake --build --preset x86_64-gcc --target run-limineThe following boot protocols are supported by JANUS (per cpu architecture):
| Architecture | Supported Boot Protocols |
|---|---|
| x86_64 | limine, multiboot2 |
| aarch64 | limine |
A more detailed setup guide can be found in the documentation
This project is licensed under the GNU AFFERO GENERAL PUBLIC LICENSE