1
0
Fork 0
mirror of https://github.com/ilobilix/ilobilix.git synced 2026-03-31 17:02:43 +04:00
Ilobilix OS
Find a file
2026-03-30 13:37:50 +04:00
base-files bump kernel commit 2026-02-22 21:36:47 +04:00
host-recipes switch back to jinx, update README.md 2026-02-22 01:54:13 +04:00
kernel@dcf075b22b bump kernel commit 2026-03-30 13:37:50 +04:00
patches/glibc switch back to jinx, update README.md 2026-02-22 01:54:13 +04:00
recipes add coreutils and bash-completion 2026-03-15 14:10:16 +04:00
screenshots bump kernel commit, update screenshot 2026-02-27 05:02:06 +04:00
source-recipes switch back to jinx, update README.md 2026-02-22 01:54:13 +04:00
support switch back to jinx, update README.md 2026-02-22 01:54:13 +04:00
.gitignore give up and use buildroot 2025-12-11 19:51:12 +04:00
.gitmodules switch back to jinx, update README.md 2026-02-22 01:54:13 +04:00
GNUmakefile bump kernel commit 2026-02-26 21:11:15 +04:00
Jinxfile add coreutils and bash-completion 2026-03-15 14:10:16 +04:00
LICENSE set up basic build-system 2025-11-15 22:20:23 +04:00
README.md add coreutils and bash-completion 2026-03-15 14:10:16 +04:00

Ilobilix

Monolithic Hobby OS in modern C++ 23 utilising modules where possible. It has support for custom loadable kernel modules. Its userspace aims to be ABI compatible with GNU/Linux.

Contributors are welcome! Feel free to open issues or submit pull requests.

Note

This repo contains files needed to build and run the OS. Kernel source code is located in ilobilix/kernel

License: EUPL v1.2

x86_64

Building And Running

  • Make sure you are running an up-to-date Linux system and have following programs installed:
    • clang (21+)
    • clang-scan-deps (clang-tools-extra)
    • lld
    • llvm
    • make
    • cmake
    • ninja
    • xorriso
    • qemu-system
    • Jinx dependencies
  • Clone this repository:
    • git clone https://github.com/ilobilix/ilobilix --recursive
  • Build Ilobilix:
    • This command will build the kernel, cross-compiler and userspace:
    • make all
  • Run the OS in QEMU:
    • make run-iso

Configurable Environment Variables

Note

Default values are enclosed in <>

Shared Options

  • ILOBILIX_ARCH=[<x86_64>|aarch64]

Build-Only Options

  • ILOBILIX_PACKAGES=[<base>|all|...]
  • ILOBILIX_BUILD_TYPE=[Release|<ReleaseDbg>|Debug]
  • ILOBILIX_LTO=[ON|<OFF>] (Requires 'Release' build type)
  • ILOBILIX_SYSCALL_LOG=[ON|<OFF>]
  • ILOBILIX_LIMINE_MP=[<ON>|OFF]
  • ILOBILIX_UBSAN=[ON|<OFF>]

Run-Only Options

  • QEMU_SMP=<6>
  • QEMU_ACCEL=[<ON>|OFF]
  • QEMU_LOG=[ON|<OFF>]
  • QEMU_GDB=[ON|<OFF>]

Directory Structure

ilobilix/
├── kernel/           # Ilobilix kernel repository
├──── kernel/kernel/  # ─ Kernel source code
├──── kernel/modules/ # ─ Loadable kernel modules
├── base-files/       # Sysroot skeleton
├── host-recipes/     # Recipes for the toolchain used to build sysroot
├── patches/          # Patches for host and target recipes
├── recipes/          # Target sysroot recipes
├── source-recipes/   # Sources for host and target recipes
├── support/          # Various files for userspace and the build system

Notable Pojects Used:

Known Bugs

  • mp booting not working on aarch64
  • unconfirmed: sometimes sleeping thread doesn't wake up on bare metal
  • unconfirmed: slab allocator memory mapping breaks on that one laptop