EEVDF scheduler & SMP
Earliest Eligible Virtual Deadline First with per-CPU runqueues, migration, load balancing, IPI preemption and Priority Inheritance futexes.
vruntime · deadline · vlag · PI-futex
Uinxed is a monolithic UNIX-like x86-64 kernel in C — Limine boot on UEFI/Legacy, SMP bring-up, and a Linux-compatible syscall ABI.
A practical, self-contained kernel with modern design principles — no borrowed kernel underneath.
Earliest Eligible Virtual Deadline First with per-CPU runqueues, migration, load balancing, IPI preemption and Priority Inheritance futexes.
vruntime · deadline · vlag · PI-futex
Binary-buddy frames, 4-level paging, higher-half direct map, slab heap, unified page cache with LRU reclaim, writeback, readahead — plus swap.
HHDM · page cache · writeback · swap
UNIX-style VFS with tmpfs root, procfs/sysfs/devtmpfs/cgroupfs, plus FAT/exFAT, ext2/3/4, NTFS (write) and ISO 9660 (Rock Ridge).
tmpfs · ext4 · NTFS · ISO 9660
Ethernet, ARP, IPv4/IPv6, ICMP(v6), NDP, UDP and TCP with e1000/RTL8139 drivers, Linux socket ABI, DHCP and /proc/net views.
IPv6 · TCP · DHCP · AF_NETLINK
Linux 6.12 x86-64 syscall numbering (0–462, unimplemented return -ENOSYS), epoll, eventfd/timerfd/signalfd, pipes, PTYs, modules and inotify.
0–462 · epoll · futex2 · PID 1
AHCI/NVMe/USB storage, HDA audio, DRM/KMS display, USB HID, ACPI/PCI/USB stacks — with seccomp, no_new_privs and ptrace.
AHCI · NVMe · DRM/KMS · seccomp
Experimental, but past “hello world” long ago — validated on virtual machines and physical servers.
Current image brings up Alpine userland on x86-64, including an Xfce (X11) desktop with a working terminal.
Runs on physical servers including Dell PowerEdge R410, via UEFI, Legacy or Ventoy boot.
PS/2 input, evdev consumers, poll/epoll wakeups and scheduler behavior are being hardened right now.
Experimental software
GPU, VirtIO, audio and parts of the ABI are still incomplete. Use disposable disks or VMs — not production data.
Limine → kernel_entry()
UEFI / Legacy handoff
Early init
SIMD → serial → framebuffer → allocator → paging → heap
Platform
ACPI → TPM → TSC → SMP bring-up → PCI
Drivers
net → storage → input → audio → USB → display
Filesystems
VFS → tmpfs root → procfs / sysfs / devtmpfs
Kernel services
scheduler → process → IPC → syscalls → cgroups
init (PID 1)
Userspace starts, scheduling begins
Every driver below lives in-tree. Some subsystems ship disabled by default in Kconfig — turn them on with `make menuconfig`.
Input
PS/2 keyboard & mouse · evdev · USB HID (keyboard, mouse, consumer control)
Storage
IDE/ATA · AHCI (SATA) · NVMe · USB Mass Storage (BOT / SCSI)
Audio
Sound Blaster 16 · Intel HD Audio · ALSA-compatible PCM/control ABI
Display
DRM/KMS core + GPU driver registry · VirtIO-GPU · GOP framebuffer console · software fb fallback
Network
e1000/e1000e (82540EM, 82545EM, 82546EB, 82541PI, 82574L) · RTL8139 / RTL8169
Bus
PCI/PCIe (ECAM + legacy) · USB UHCI / OHCI / EHCI / xHCI · I2C
Platform
ACPI · HPET · RTC · serial · IEEE 1284 parallel · TPM (TIS/CRB, 1.2 + 2.0)
Security
seccomp filters + user notifications · no_new_privs · ptrace · cgroups pids controller
No borrowed kernel underneath — every subsystem below is in-tree C, counted straight from the source tree.
Line counts come from the kernel source tree — `find` + `wc -l` over every *.c and *.h.
Three commands from clone to a running kernel on QEMU.
make, gcc 13.3+, qemu, xorriso — plus clang-format / clang-tidy and kconfig-frontends for development.
# Debian / Ubuntu
$ sudo apt install make gcc qemu-system xorriso \
clang-format clang-tidy kconfig-frontends \
libncurses-dev dos2unix
# Arch Linux
$ sudo pacman -Sy make gcc qemu-system xorriso \
clang-format clang-tidy kconfig-frontends \
libncurses-dev dos2unix
Produces UxImage (kernel) and Uinxed-x64.iso (bootable CD image).
$ git clone https://github.com/ViudiraTech/Uinxed-Kernel.git
$ cd Uinxed-Kernel
$ make
Boots the ISO on q35 with OVMF firmware; serial output appears in your terminal.
$ make run
Uinxed-Kernel/
├── boot/ Boot protocol structures and interfaces
├── init/ Kernel entry and initialization routines
├── kernel/ Core subsystems and runtime services
├── mem/ Memory management subsystem
├── fs/ VFS and filesystem implementations
├── net/ Network stack and protocols
├── drivers/ Hardware drivers and device support
├── ipc/ Inter-process communication mechanisms
├── security/ Security and policy components
├── include/ Kernel headers and public interfaces
├── libs/ Internal kernel libraries and utilities
├── tools/ Development, debugging and auxiliary tools
├── scripts/ Build, configuration and maintenance
├── assets/ Build and boot resources
├── Kconfig Kernel configuration system
└── Makefile Build system
Short answers — details live in the kernel README and DeepWiki.
No. The table follows Linux 6.12 x86-64 numbering (0–462), but only a subset is implemented. Unimplemented calls return -ENOSYS instead of crashing, and coverage grows over time.
Logs go to the boot console (default tty0). For reliable debugging, set kernel_cmdline to console=ttyS0 in limine.conf and rebuild — make run already attaches QEMU serial to stdio.
Some subsystems default to off in Kconfig (e.g. VIRTIO, VIRTIO_GPU, SOUND_SB16). Enable them with make menuconfig and make sure the device exists in your VM or hardware.
Yes, as an experiment. Prefer disposable machines or test disks — filesystem drivers (especially the NTFS writer) are not yet safe for important data.
Run make help for all targets: format, check (clang-tidy), menuconfig, gen.clangd and more.
Yes. Issues are welcome in any language. For patches, run make format and make check first so the diff stays reviewable.
Star the repo, open an issue in any language, or send a patch — polite reports welcome.
Discord · QQ 1084955319