Release notes
Unreleased — Ixolo [VERSION]
Section titled “Unreleased — Ixolo ”Summary
Section titled “Summary”Ixolo is a fork of MINIX 3 that runs on 64-bit x86. The last upstream MINIX code dates from 2018 and ran on 32-bit x86 and ARM. The fork ported the kernel to amd64, then added multiprocessor support, a reworked virtual memory system, new and extended file systems, NVMe and USB storage, a newer network stack, a large part of POSIX’s real-time and threads interfaces, security hardening and a current toolchain (LLVM/clang 22). The microkernel design is unchanged: drivers and servers still run as isolated user processes, and a crashed driver is still restarted.
Items marked experimental work but are opt-in, incomplete, or not covered by the automated tests.
Platform and boot
Section titled “Platform and boot”- The amd64 kernel boots to a login prompt (May 2026, on
master). - One hybrid ISO boots on both BIOS and UEFI firmware. Under UEFI it uses GRUB, Multiboot2 and the GOP framebuffer as text console. See the UEFI boot design. The image build was fixed for GRUB 2.16, which had silently made the ISO BIOS-only (#483).
- AHCI or IDE is detected at boot. The BIOS boot loader reads MFS version 4 (#280). Hard-disk images boot with the APIC by default (#286).
- MSI-X interrupts (#186), RDRAND entropy at boot (#240), robust timer calibration (#362, #363), the real-time clock under UEFI (#354), and boot with more than 4 GB of RAM (#484).
- The CPU must support
FSGSBASE. NX, SMEP, SMAP and PCID are used when present.
Multiprocessor (SMP)
Section titled “Multiprocessor (SMP)”- Secondary CPUs come up with their own descriptor tables, under a big kernel lock (#157). Up to 32 CPUs at compile time; tested with 1, 2, 4 and 8.
- A fast path for request–reply messages, and placement of servers that talk a lot on the same CPU (#157).
- Many SMP fixes: per-CPU timers and page-fault handling, run-queue locking (#283, #287–#289), preemption of CPU-bound threads (#379), TLB shootdown for multithreaded processes (#409).
- CPU affinity (#473) and real-time scheduling,
SCHED_FIFOandSCHED_RR(#464). - Design notes: SMP.
Memory
Section titled “Memory”- 47-bit user address space: programs can use up to 128 TB of virtual memory (#449, #450, #452).
- Clean-page reclaim (#290–#293) and compressed anonymous memory with LZ4 (#294–#298). See the reclaim design.
- Out-of-memory killer and
RLIMIT_AS/RLIMIT_DATA(#311, #320). mprotect, NX for non-executable mappings (#365–#367), writable shared file mappings andmsync(#410), shared anonymous memory acrossfork(#487).- Experimental: disk swap in the kernel and VM
(#299, #300,
#310). There is no
swapontool to turn it on yet.
File systems
Section titled “File systems”- MFS version 4 is the default: wide inodes, files over 2 GB, dates past 2038 (#246, #280; design).
- MFS metadata journaling (#251–#255; design), extended attributes (#256; design), POSIX.1e ACLs (#258–#262), immutable and append-only flags (#249, #257).
- ext2, ext3 and ext4 with journal replay, extents, 64-bit and checksums (#213, #266–#278).
- FAT12/16/32 read and write (#214, #218, #265) and exFAT (#263, #264).
- tmpfs, which also holds POSIX shared memory (#483).
- Experimental: multithreaded MFS with concurrent I/O (#281). The root file system runs single-threaded by default (#282).
Drivers
Section titled “Drivers”- NVMe, including boot from NVMe (#183, #284).
- USB host controllers EHCI, OHCI and xHCI, with hubs, for mass storage only (#188, #192–#194).
- AHCI, and IDE with a fix for disks over 2 TB (#274).
- A framebuffer device,
/dev/fb0, under UEFI. - The e1000 network driver is the one tested. The other network, audio and
virtio_blkdrivers build for amd64 but have not been tested on it.
Networking
Section titled “Networking”- lwIP 2.2.1 with later security fixes (#313, #314) and stability fixes (#417, #425).
- TCP window scaling, SACK and timestamps (#414),
multicast options as on NetBSD (#429),
accept4(#388). - dhcpcd replaces dhclient (#206).
- Threads on amd64 (#179), with many later fixes.
- The
*atpath calls (#382). This changed the system call ABI: programs built before it must be rebuilt. - Job control (#399–#404),
kqueue(#413), POSIX message queues (#405). - Real-time interfaces: signals (#461), semaphores (#462), asynchronous I/O (#463), priority inheritance and protection (#472, #474), process-shared synchronization (#479), thread cancellation (#481, #488).
- Open POSIX Test Suite: 1645 of 1757 tests pass; pjdfstest: 229 of 238. Details on the POSIX page.
Security
Section titled “Security”- NX and no executable stacks (#317,
#366); SMEP and SMAP (#439);
the kernel rejects user buffers that point into kernel memory
(#440–#442); hardened
sigreturn(#393). - Stack protector and
_FORTIFY_SOURCE=2for user programs and libraries (#436, #444). - Address-space randomization of the stack and the
mmapbase (#445). Partial: executables are not PIE, so their code, data and heap do not move. - bcrypt password hashing;
setupasks for a root password (#443). - OpenSSH 10.6 (#446), Mozilla CA certificates and
certctl(#447, #448), OpenSSL 3.5 LTS, Heimdal Kerberos 7.8 (#215).
Toolchain and userland
Section titled “Toolchain and userland”- LLVM/clang/lld 22 in the tree (#200, #201), up from clang 3.6. lld replaces GNU ld; GNU binutils and GCC are gone (#316, #318, #323–#326).
- Many third-party components updated: SQLite (with WAL and thread safety,
#418, #421), libuv on
kqueue(#427), BIND, tmux, less, zlib, xz, libarchive, Lua and others. See the third-party inventory. - Manual pages ship on the ISO (#165); new
free(1)(#225).
Desktop (experimental)
Section titled “Desktop (experimental)”- A Wayland compositor (
wlcompd), Qt 6 and LXQt, on the UEFI framebuffer with software rendering (#329–#360). - Opt-in: built out of tree, needs UEFI, not on the default ISO and not tested in CI. See the desktop guide.
Testing
Section titled “Testing”- A QEMU test harness,
qemutest.py(#361), run in CI on every pull request on 1 and 2 CPUs. - The Open POSIX Test Suite in the tree (#456), run by hand. QEMU debugging tools (#407).
Known limitations
Section titled “Known limitations”- amd64 only. i386 does not build on
devel; ARM has not been maintained since the fork. - Tested mainly in QEMU/KVM. Physical machines verified: [HARDWARE].
- The installer,
setup, still looks for the installation sets under/i386/binary/setsand copies nothing from the amd64 ISO. It installs for BIOS only. See Install to disk for the workaround and the disk-image alternative. - No binary package repository for amd64.
pkg_addis in the base system;pkginis not. - No debugger (gdb or lldb).
- Executables are not PIE; no RELRO.
- Live update, an upstream feature, does not work on amd64: its test is a known failure.
- No tool to enable swap; USB keyboards and mice are not supported; no UEFI Secure Boot.
- The tree still calls itself MINIX 3, version 3.4.0 (boot menu,
uname).
Lineage
Section titled “Lineage”| Date | Event |
|---|---|
| Oct 2005 | MINIX 3.1.0, the first MINIX 3 release |
| Feb 2012 | MINIX 3.2.0: NetBSD libc and userland, clang, experimental SMP |
| Feb 2013 | MINIX 3.2.1 |
| Sep 2014 | MINIX 3.3.0: ARM support; the last stable upstream release |
| May 2017 | MINIX 3.4.0rc6, the last upstream release candidate |
| Nov 2018 | Last upstream commit, 4db99f4: the base of the fork |
| Mar 2026 | The fork starts |
| May 2026 | amd64 boots to a login prompt (on master, #153) |
| Jun–Nov 2026 | Development on devel, PRs #154 to #488 |
| [DATE] | Ixolo [VERSION] |
The tree also has its own
RELEASE_NOTES.md. It covers
March to early June 2026 only and has not been updated since. These notes
replace it for everything after.
For the longer story, see history.