Home

Awesome

Ilobilix

Second attempt at making an OS

LICENSE

Building and Running

Make sure you have following programs installed:

Note: you may need more packages to build the sysroot, such as flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev etc

On debian based systems, I recommend installing llvm, clang and lld from here: https://apt.llvm.org
If you are on a up-to-date Debian based system (Ubuntu, linux mint, Pop_os!, etc) you can install most of them with this command:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
For meson, ninja and xbstrap, first make sure you have python and python-pip installed and then run:
python -m pip install meson ninja xbstrap

Follow these steps to build and run the os:

  1. Clone this repo with:
    git clone --depth=1 https://github.com/ilobilo/ilobilix

  2. Currently you have to manually build the sysroot:

  1. Set up the build system:
    meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values

  2. Build and run the kernel:
    ninja -C builddir <see Ninja Targets>

Ninja Targets

Target NameDescription
run_biosRun with legacy BIOS (only on x86_64)
run_bios_debugSame but with debugging enabled
run_uefiRun with UEFI
run_uefi_debugSame but with debugging enabled
norunDo not run the OS

Notes:

Options

Project optionsDefault ValueDescription
kernel_cflagsExtra c compiler arguments for kernel
kernel_cxxflagsExtra cpp compiler arguments for kernel
modules_cflagsExtra c compiler arguments for modules
modules_cxxflagsExtra cpp compiler arguments for modules
kernel_ubsanfalseEnable ubsanitizer in kernel
modules_ubsanfalseEnable ubsanitizer in modules
5lvl_pagingfalseEnable 5 level paging in kernel
syscall_debugfalsePrint syscall log in serial console
gdbfalseAdd -s -S to QEMU when debugging
noaccelfalseDisable QEMU accelerators
vncfalseStart QEMU VNC server on 127.0.0.1:5901

Discord Server

https://discord.gg/fM5GK3RpS7

Resources and Projects:

TODO

Packages