Skip to content

Frequently asked questions

What is Ixolo, compared with MINIX 3 and Linux?

Section titled “What is Ixolo, compared with MINIX 3 and Linux?”

Ixolo is an independent fork of MINIX 3 for 64-bit x86 PCs. It keeps MINIX’s design: a small microkernel (about 15 000 lines of code), with drivers, file systems and the network stack running as separate user processes. If one of them crashes, the Reincarnation Server restarts it and the rest of the system keeps running.

MINIX 3 (upstream)IxoloLinux
KernelMicrokernelMicrokernel (the same design, ported to x86-64)Monolithic, with loadable modules
DriversUser processesUser processesInside the kernel
Main targeti386, ARMamd64Almost everything
UserlandNetBSDNetBSD, much of it updatedGNU and others
DevelopmentNo commits to master since 2018ActiveVery active

The fork adds a 64-bit kernel, SMP (up to 32 CPUs), UEFI boot, NVMe, xHCI, a journaled file system, threads and much more POSIX. Linux is far larger and runs far more hardware and software; Ixolo trades that for a system small enough to read and robust against driver failures. See the architecture.

The fork has grown far from upstream, and a separate name avoids confusion with the MINIX 3 project and its releases. The axolotl regrows lost limbs; Ixolo restarts failed drivers. The mascot, an axolotl, is called Xolo.

No. Upstream published release candidates of 3.4.0 (the last one in 2017) but never a final 3.4.0. Ixolo starts from upstream’s last development tree (November 2018) and has changed a great deal since. The source tree still reports itself as Minix 3.4.0 in uname and the boot menus, because the renaming has not reached the code yet. Ixolo is not an official MINIX release. The history has the details.

The MINIX 3 code is under a BSD-style licence, copyright Vrije Universiteit Amsterdam: you may use, change and redistribute it, in source or binary form, if you keep the copyright notice and the disclaimer. Read the LICENSE file. Imported third-party software keeps its own licence (NetBSD code is BSD-licensed; a few components under external/ and the new igc network driver are GPL).

Ixolo is not affiliated with or endorsed by the Vrije Universiteit or the Stichting MINIX Research Foundation.

Does it run on real hardware, or only in virtual machines?

Section titled “Does it run on real hardware, or only in virtual machines?”

Most testing happens under QEMU/KVM, and that is the recommended way to try it. Physical machines verified so far: [HARDWARE]. The drivers most likely to work on a real PC are AHCI, IDE and NVMe storage, Intel e1000 network cards, USB mass storage and PS/2 keyboards and mice. There is no USB keyboard support, no Wi-Fi and no Secure Boot. The full list is in the hardware requirements.

Every thread needs a pointer to its thread-local storage. On x86-64 that pointer lives in the FS base register, and the C library sets it with the WRFSBASE instruction, which needs the CPU’s FSGSBASE feature. Setting the register from user space saves a system call, and requiring the feature keeps one code path instead of two. Intel CPUs from Ivy Bridge (2012) on have it, and so do AMD Zen CPUs. In QEMU use -cpu host or -cpu max; QEMU’s older default CPU models lack it.

Not as binaries: there is no Linux compatibility layer. Programs written for POSIX can often be compiled for Ixolo from source. The system passes 1645 of the 1757 tests of the Open POSIX Test Suite. A program that depends on Linux-only interfaces (epoll, inotify, /proc files in the Linux format, and so on) needs porting.

Not yet. There is no amd64 binary package repository; pkg_add is in base, but there is nothing to fetch. What you can do today is in The shell and software.

An experimental one: a native Wayland compositor with LXQt on Qt 6, software rendered. It needs UEFI and is built separately; it is not in the default ISO nor tested by CI. See The desktop.

Ixolo targets amd64 only. The i386 sources are still in the tree but do not build on devel, and the ARM port has not been maintained since the fork. Neither has CI or recent work.

Isn’t MINIX the operating system inside Intel CPUs?

Section titled “Isn’t MINIX the operating system inside Intel CPUs?”

Intel’s Management Engine (ME), a separate processor in many Intel chipsets, runs a modified version of an older MINIX 3, which the BSD licence allows. In an open letter to Intel, Andrew Tanenbaum, MINIX’s author, gives his view: Intel used an older version, one meant mainly for teaching, and all he would have asked for was to be told. Ixolo has nothing to do with the Intel ME. It is a separate fork, started from the public MINIX 3 sources and developed in the open.

Open an issue in the issue tracker. Include the Ixolo version or commit, how you boot it (QEMU command line or hardware), and what you see. A serial console log helps: boot with -serial file:boot.log and pick the serial console entry in the boot menu. To help with the code, see Contributing.