Chelidae is a modified operating system based on the MIT xv6 (x86) kernel, extended with a custom graphical user interface and window manager.
The Chelidae build system is designed specifically for Linux environments (native Linux or WSL2).
gccwith 32-bit support (gcc-multilib)binutilswith i386 supportqemu-system-i386for emulationmakefor build automationgolang(version 1.20 or newer) for build utilitiespython3withPillowfor asset processing
sudo apt update
sudo apt install build-essential qemu-system-x86 golang python3 python3-pip
pip3 install PillowThe Makefile automates the full build pipeline for the Chelidae kernel, userland, and disk images.
Build the kernel, user programs, and filesystem images:
make -j$(nproc)Launch Chelidae using QEMU:
make runConverts window UI icons (such as close and minimize buttons) from PNG files into C arrays.
python3 convert.pyConverts a TrueType font (fonts/font.ttf) into bitmap character arrays for text rendering.
python3 font.pyConverts desktop application icons from PNG files into C arrays. Place 48x48 PNG icons inside the app_icons/ directory.
python3 convert_icons.pykernel/: xv6-based kernel source code (scheduler, memory management, filesystem, and GUI logic)user/: User-space applications and supporting librariesinclude/: Shared header filesicon/: PNG assets for window UI elementsapp_icons/: PNG assets for desktop applicationsfonts/: TrueType fonts used for text renderingscripts/: Go and Python scripts used during the build process
convert.pyscansicon/*.pngand generatesicons_data.cfont.pyconvertsfonts/font.ttfintocharacter.candcharacter.hconvert_icons.pyscansapp_icons/*.pngand generatesapp_icons_data.candapp_icons.h- GCC compiles the Chelidae kernel and user programs using
-m32for the i386 architecture - Linker scripts (
kernel.ld) define the final kernel memory layout - The
mkfsutility generatesfs.imgcontaining user-space programs ddcombines the bootloader and kernel intoChelidae.img
MIT License.
Chelidae is derived from the MIT xv6-public source code and remains compatible with the original xv6 license.