In active development · boots Alpine Linux 3.23

UNIX-like x86-64 kernel, written from scratch.

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.

License
Apache-2.0
Language
C
Target
x86-64
Syscall ABI
Linux 6.12
boot — qemu-system-x86_64 ⤵
[    0.000000] Uinxed version 0.4.0 (gcc version 16.2.0) SMP Sep 25 2026 10:36:13
[    0.000000] cpu: Vendor: AuthenticAMD, Model: QEMU Virtual CPU version 2.5+
[    0.061704] smp: All APs are up, total 1 CPUs.
[    0.138188] sched: 1 CPU(s) registered, using EEVDF scheduler.
[    0.193933] e1000: eth0: Registered (MAC 52:54:00:12:34:56, MSI, link up)
[    0.206291] simpledrm: 1280x800 32bpp boot framebuffer @ 0xffff800080000000, pitch 5120
[    0.214928] swapper/0: /sbin/init not found.
$ 240 lines in total — full log below█
serial stdio · q35 machine · OVMF real `make run` output

Modern subsystems, self-contained

EEVDF scheduler SMP HHDM + Swap VFS TCP/IP DRM/KMS seccomp UEFI + Legacy

Capabilities

Architected for performance & stability

A practical, self-contained kernel with modern design principles.

EEVDF Scheduler & SMP

Earliest Eligible Virtual Deadline First with per-CPU runqueues, migration, load balancing, IPI preemption and Priority Inheritance futexes.

Memory Management

Binary-buddy frames, 4-level paging, higher-half direct map, slab heap, unified page cache with LRU reclaim, writeback, readahead — plus swap.

VFS & Filesystems

UNIX-style VFS with tmpfs root, procfs/sysfs/devtmpfs/cgroupfs, plus FAT/exFAT, ext2/3/4, NTFS (write) and ISO 9660 (Rock Ridge).

In-house Network Stack

Ethernet, ARP, IPv4/IPv6, ICMP(v6), NDP, UDP and TCP with e1000/RTL8139 drivers, Linux socket ABI, DHCP and /proc/net views.

Linux ABI & IPC

Linux 6.12 x86-64 syscall numbering (0–462, unimplemented return -ENOSYS), epoll, eventfd/timerfd/signalfd, pipes, PTYs, modules and inotify.

Drivers & Security

AHCI/NVMe/USB storage, HDA audio, DRM/KMS display, USB HID, ACPI/PCI/USB stacks — with seccomp, no_new_privs and ptrace.

Project status

It already boots a real distro

Experimental, but past “hello world” long ago — validated on VMs and real servers.

  • ✓

    Alpine Linux 3.23 boots

    Current image brings up Alpine userland on x86-64, including an Xfce (X11) desktop with a working terminal.

  • ✓

    Real hardware proven

    Runs on physical servers including Dell PowerEdge R410, via UEFI, Legacy or Ventoy boot.

  • ◌

    Under active validation

    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.

Boot & init flow
Limine (UEFI / Legacy)
        |
        v
+----------------+     +-------------------+
| Early init     |---->| Platform & drivers|
| SIMD -> serial  |     | ACPI -> SMP -> PCI  |
| alloc -> paging |     | net -> audio -> USB |
+----------------+     +-------------------+
        |                        |
        v                        v
+----------------+     +-------------------+
| VFS & fs       |     | Kernel services   |
| tmpfs / proc / |     | sched -> proc -> IPC|
| FAT / ext / NTFS|    | syscalls -> cgroups|
+----------------+     +-------------------+
        |                        |
        +-----------+------------+
                    |
                    v
        sched_start() -> init (PID 1)

Limine hands off to kernel_entry(); init (PID 1) starts after scheduler, VFS and IPC are up.

Boot log

Watch it boot

Verbatim serial capture of a real `make run` on QEMU — 240 lines, uncut.

logs/boot-qemu-0.4.0.log …
…
Raw ↗

Bare `make run` with no initramfs — it ends where init lookup fails.

Quick start

Get started in seconds

Build the kernel image and boot it in QEMU.

1 · Prerequisites

make, gcc 13.3+, qemu, xorriso — plus clang-format / clang-tidy and kconfig-frontends for development.

# Debian / Ubuntu
$ sudo apt update
$ sudo apt install make gcc qemu-system xorriso clang-format clang-tidy kconfig-frontends libncurses-dev dos2unix

# Arch Linux
$ pacman -Sy make gcc qemu-system xorriso clang-format clang-tidy kconfig-frontends libncurses-dev dos2unix
2 · Build the image

Produces UxImage (kernel) and Uinxed-x64.iso (bootable CD image).

$ git clone https://github.com/ViudiraTech/Uinxed-Kernel.git
$ cd Uinxed-Kernel
$ make
3 · Run in QEMU

Boots the ISO on q35 with OVMF firmware; serial output appears in your terminal.

$ make run

Real hardware

  • ›UEFI: GPT + ESP, copy assets/Limine to the ESP, UxImage to EFI/Boot, Secure Boot off.
  • ›Legacy: burn Uinxed-x64.iso to a drive and boot on a 64-bit machine.
  • ›Ventoy also works — copy the ISO onto the drive and select it from the menu.
Full guide in the kernel README →

FAQ

Frequently asked questions

Short answers — details live in the kernel README and DeepWiki.

Are all Linux syscalls implemented? +

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.

How do I read the kernel log? +

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.

A driver I expected is not working (e.g. VirtIO-GPU)? +

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.

Can I run it on real hardware? +

Yes, as an experiment. Prefer disposable machines or test disks — filesystem drivers (especially the NTFS writer) are not yet safe for important data.

Which dev commands are available? +

Run make help for all targets: format, check (clang-tidy), menuconfig, gen.clangd and more.

Hack on a real kernel.

Star the repo, open an issue in any language, or send a patch — polite reports welcome.

Discord · QQ 1084955319