Read

Beyond Linux: a tour of free operating systems

Haiku, ReactOS, Plan 9, the BSDs, MINIX, Redox, Oberon and a dozen more — what each one is arguing for, where it came from, and which are actually pleasant to boot in a browser tab.

Almost every computer in use runs a descendant of one of two designs, both of which had settled their structure by 1993. UNIX made a process an address space with a program in it, files byte streams, and the kernel one large privileged program. Windows NT made the kernel smaller, with subsystems around it. They are not the only answers: some are actively maintained, some ship inside hardware you own, and a surprising number boot in a browser tab in seconds.

Kernel designs, and who chose what

A monolithic kernel runs drivers, filesystems and the network stack in the scheduler's privileged address space: fast, because a filesystem call is a function call; fragile, because a bad driver corrupts the kernel. A microkernel privileges only scheduling, memory mapping and message passing: slower, because a filesystem call becomes a message round trip; far more robust, because a crashed driver is only a crashed process.

SystemKernel designFirst releaseStatus
Unix V7Monolithic1979Historic; freed 2002
QNXMicrokernel, real-time1982Commercial
MINIX 3Microkernel1987Inside Intel chipsets
OberonOne language, unprotected1987Historic
Plan 9 / 9frontMonolithic, distributed19929front active
386BSDMonolithic1992Abandoned
FreeBSDMonolithic, modular1993Active
NetBSDMonolithic, rump kernels1993Active; 50+ platforms
OpenBSDMonolithic1995Active
ReactOSHybrid, NT-style1998Alpha (0.4.16, 2026)
HaikuHybrid2001Active; R1/beta6, 2026
SyllableMonolithic (AtheOS)2002Dormant since 2012
KolibriOSMonolithic, in assembly2004Active
HelenOSMicrokernel, multiserver2006Active
MikeOS16-bit real mode2006Teaching material
ToaruOSMonolithic2011Active
SortixMonolithic, POSIX2011Active; self-hosting
RedoxMicrokernel, in Rust2015Active; pre-1.0
SerenityOSMonolithic, Unix-like2018Active
SkiftHybrid, C++2018Intermittent

Haiku — decisions made once, by one group

BeOS was a mid-1990s commercial desktop for media work whose designers treated multithreading as a rule, not an optimisation: an application gets a thread for its main loop and one per window, so a busy window cannot freeze the program. The other half was BFS (Dominic Giampaolo and Cyril Meurillon, 1996): a 64-bit journalling filesystem in which files carry typed attributes and chosen attributes are indexed. A BeOS email is an empty file whose sender, subject and date are attributes; the inbox is a saved query. Be, Inc. was sold to Palm in 2001; Haiku started that year as OpenBeOS. It is still called R1: R1 means parity with BeOS R5 from 2000. R1/beta6 landed on 26 August 2026, with a working Firefox port.

ReactOS — the honest perpetual alpha

ReactOS began in 1996 as FreeWin95 and restarted in February 1998 aiming at the NT kernel instead — binary compatibility with Windows Server 2003, NT 5.2. That means more than running .exe files: a driver built against Microsoft's headers should load and work. That is both the point and the reason it has been alpha for a quarter of a century: the target is a specification nobody published, full of undocumented structures and behaviour that exists only because some driver relied on it. Everything is reimplemented clean-room, never from disassembled binaries — a rule the project audited itself against in 2006. Progress is slow and stated plainly: 0.4.14 in 2021, 0.4.15 in 2025, 0.4.16 in 2026.

The BSDs — complete systems, not assembled ones

Linux is a kernel a distribution builds a system around; a BSD is one project shipping kernel, C library, toolchain, userland and documentation as one versioned tree. 386BSD is where the free branch starts: Bill and Lynne Jolitz ported Berkeley's Net/2 release to the 386 and published it in 1992. It arrived into a lawsuit. UNIX System Laboratories sued Berkeley Software Design and the University of California in April 1992 over AT&T code in Net/2; in 1993 Judge Debevoise refused an injunction, holding AT&T's copyright in 32V probably invalid; Novell bought USL and settled in February 1994. Three files of some 18,000 were removed — but those two years of legal uncertainty are exactly the two years in which Linux acquired its users.

  • FreeBSD (1993), the pragmatic one: ZFS, jails, DTrace, tens of thousands of ports, and enough network engineering that Netflix's Open Connect appliances run it.
  • NetBSD (1993), portability first: one tree builds for over fifty hardware platforms, and rump kernels run its real drivers as ordinary userspace programs on other systems.
  • OpenBSD (de Raadt's 1995 fork of NetBSD), correctness as a security property: OpenSSH, LibreSSL, pf, W^X, address-space randomisation, and pledge and unveil, by which a program gives up the right to make most system calls. A release every six months for thirty years.

Plan 9 — everything is a file, taken literally

The people who built UNIX decided in the late 1980s that they had been half-hearted about their own best idea. UNIX says everything is a file, then exempts sockets, processes, graphics and devices, each with its own API. Plan 9 removes the exemptions. A network connection is a directory under /net/tcp: write the destination into a ctl file, then read and write a data file. The window system, rio, is a filesystem: a window is a directory of the files a program draws through.

Two mechanisms make that pay. Every process has its own namespace, so /tmp or /dev can mean different things to different processes; and 9P, a small file-service protocol, lets a filesystem live on another machine with no change to the program using it. Plan 9 never displaced UNIX, but its ideas escaped: Ken Thompson and Rob Pike designed UTF-8 for it in 1992, and Linux container isolation is per-process namespaces rediscovered. The code opened under the Lucent Public Licence in 2000 and was relicensed MIT in March 2021. 9front, going since 2011, is the maintained fork and the one to boot; 9legacy tracks the original tree.

MINIX — the argument that lost, the system that won

Andrew Tanenbaum wrote MINIX in 1987 as the worked example for his textbook Operating Systems: Design and Implementation, because AT&T's licence had made it impossible to teach from the UNIX source. It was a microkernel from the start, small enough that the annotated listing fitted in the back of a book — for years the only legal way to get it.

In early 1992, on comp.os.minix, Tanenbaum opened a thread titled "LINUX is obsolete" telling a Finnish student that a monolithic kernel was a step back into the 1970s. Linux won the deployment argument outright; the microkernel argument won on the merits, which is why MINIX 3 (2005) runs drivers as isolated processes supervised by a reincarnation server that restarts them. Then MINIX won a market nobody contested: Intel's Management Engine, the independent processor inside Intel chipsets from around 2015, runs MINIX 3 as firmware, found by outside researchers in 2017. By that count MINIX has more installations than any other operating system, and almost nobody has seen one.

Unix V7, the common ancestor

Seventh Edition UNIX (Bell Labs, 1979) is the last version to spread widely before AT&T commercialised UNIX, and the ancestor of both System V and BSD. Boot it for how much of it you already know: the Bourne shell, awk, make, tar, uucp, stdio and malloc all arrive here, and the whole kernel offers about fifty system calls. Everything in a modern POSIX system descends from that list or argues with it. Caldera freed V7 in 2002; the x86 port is by Nordier & Associates.

Built from nothing, on purpose

SerenityOS is what happens when one person decides that reusing code is the problem. Andreas Kling began it in 2018, partly as a structure for recovering from addiction, and wrote it in public, one recorded session at a time: kernel, standard library, compositor, IDE, browser engine, all original, all in the grey bevels of a late-1990s Unix workstation. In June 2024 the browser outgrew the project: Ladybird forked out, Kling stepped down as lead to run it, and SerenityOS carries on without him.

Redox (Jeremy Soller, 2015) makes a narrower claim: most severe kernel vulnerabilities are memory-safety bugs, so write the kernel in a language that rejects them at compile time. It is a Rust microkernel with its own C library (relibc), a ZFS-inspired filesystem and the Orbital desktop, and it extends Plan 9 by naming every resource with a scheme — file:/home, tcp:example.com:80. HelenOS (Charles University, Prague, 2006) is the rigorous version: every service an isolated server, one tree building from IA-32 to RISC-V. Sortix (2011) compiles itself, ports included. ToaruOS (2011) is a full Unix-like desktop with its own Yutani compositor. Skift proves a hobby OS need not look like 1994; Syllable, forked from AtheOS in 2002, last released in 2012.

The small, the strange and the real-time

Oberon answers a question nobody else asked: what if the system, the compiler and the applications were written in one small language, with no memory protection at all because the language makes it unnecessary? Niklaus Wirth and Jürg Gutknecht began it at ETH Zürich in 1985 and had it running on the Ceres workstation by 1987. The interface is stranger than the architecture — no command line, no menus, just tiled text in which anything reading Module.Command becomes a command when middle-clicked. Wirth published the whole design as a book, and in 2013 a RISC CPU on an FPGA to run it on.

KolibriOS is the opposite extreme: forked from MenuetOS in 2004, written entirely in FASM assembly, a preemptive multitasking graphical system — windows, file manager, editor, games, media player — that fits inside a 1.44 MB floppy image and reaches a usable desktop in about a second under emulation. Not a demo, but a working desktop three orders of magnitude smaller than yours.

QNX never had to justify itself academically because it was busy shipping. Gordon Bell and Dan Dodge started it at the University of Waterloo in 1980; by 1982 QUNIX ran on the 8088. Its kernel holds only scheduling, interprocess communication, interrupt redirection and timers; the filesystem and network stack are processes you can start and stop while it runs. Its famous artefact is the late-1990s demo disk: one 1.44 MB floppy with a full QNX 4 system, desktop, TCP/IP, browser and web server. BlackBerry owns it now, and it runs in roughly 275 million vehicles. MikeOS is honest about being a lesson: Mike Saunders' 16-bit real-mode system, in assembly since 2006, working entirely through BIOS interrupts — the natural next step after writing your own boot sector.

Which of these actually boot well here

  • Fast and reliable. KolibriOS ships with the site and boots offline in about a second; MikeOS, Oberon and HelenOS are small images that start quickly.
  • Fast because they cheat. Haiku, ReactOS, SerenityOS, Redox, 9front, FreeBSD and OpenBSD do not really boot — they restore a snapshot of a machine that had already booted, which is why their RAM and ACPI settings are locked.
  • Slow, but they get there. NetBSD, MINIX 3 and Unix V7 stream a large disk and boot properly: minutes, not seconds. Sortix, ToaruOS and Skift sit at 60–70 MB.
  • Awkward. Sound, 3D and internet will all disappoint, and nothing persists: close the tab and the machine is gone.

With ten minutes, boot Haiku — the only system here that is both strange and finished. With an afternoon, boot 9front. All are one click away on the machine list.