A hobby microkernel
Please don't yet
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/cross-amd64.cmakeThen build with your favourite backend (Only ninja has been tested)
popcornproduces a live ISO calledpopcorn.isoin the build rootdocsproduces Sphinx docs indocs/docs/sphinxinside the build rootconvolutionbuilds the core kernellibk.abuilds the kernel C standard librarylibk++.abuilds the kernel C++ standard library
Building the kernel will also download and build libcxxrt and libunwind
-DENABLE_KERNEL_UBSANenables or disables clang UBSan - off by default-DENABLE_LIBK_UBSANenables or disabled UBSan within libk - on by default if UBSan is on-DENABLE_LIBKPP_UBSANenables or disabled UBSan within libk++ - on by default if UBSan is on
-DRAMDISK_INCLUDED_DRIVERSsemicolon separated list of drivers and servers to include in the ramdisk (unused for now)-DCMAKE_BUILD_TYPEchange build type betweenDebug,Release,RelWithDebInfoandMinSizeRel- defaults toDebug
Currently only supports clang and lld
llvmcmakegrubnasm
All builds require a minimum of 1GiB of memory
Live ISOs provided on the release page only support BIOS, not UEFI
Run prebuilt ISOs with qemu-system-x86_64 -drive file=popcorn.iso,format=raw -m 1G
Logging is printed on the serial port, which can be dumped on stdout by adding -serial stdio