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
[ 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█
Modern subsystems, self-contained
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.
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.
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.
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
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
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.
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