GNU/HURD
bringing up the microkernel…
01 · What is the GNU Hurd

A kernel made of
cooperating strangers.

The GNU Hurd is a collection of user-space servers running on top of the GNU Mach microkernel. Instead of one privileged program doing everything, each capability of the operating system — filesystems, networking, process bookkeeping, authentication — is its own small, replaceable program talking over message passing.

Drag to orbit · scroll to zoom · click any module for detail
02 · How many parts does it have

18 servers & translators

The Hurd ships roughly two dozen cooperating servers and translators. These are the ones you meet in a typical running system, laid out by what they do — one shelf per category, one silhouette per kind of job.

03 · What starts first

From power-on
to login prompt.

Step 1 / 12

GRUB loads the kernel

04 · Three ways to build an OS

Monolithic vs microkernel
vs hybrid.

Every column splits the same way: an application in user mode on top, a kernel/user-mode boundary, and the operating system's own services underneath. Monolithic (Linux-style) fuses everything into one privileged kernel block. The Hurd's microkernel keeps only IPC, scheduling and memory in kernel mode and runs every service as an ordinary user-space server. A hybrid kernel splits the difference, pulling the file server and Unix personality server back into kernel mode.

Fault isolation

Run the simulation from the console to see where a filesystem bug can and cannot take the system down.

05 · Watch a command run

Type a command,
watch it cross the system.

Every shell command is a new Mach task that spends its short life sending IPC messages to a handful of Hurd servers before printing a reply. Type one into the console and follow the hops.

Hop 1 / 1

Waiting for input

Type a command into the console on the left and press Enter.

06 · Attach a filesystem anywhere

One command,
a brand-new filesystem.

settrans attaches an ordinary, unprivileged program to any node in the namespace. From that moment every lookup underneath it — ls, cat, open() — is answered by that program instead of whatever it is sitting in. No kernel changes, no root required.

Equivalent shell command
no translator attached

Pick a translator in the console, then attach it to /mnt.

07 · Boot it for real

The same sequence,
on a real machine.

Everything on the previous pages is a model. This is the console log of an actual Debian GNU/Hurd image booting under QEMU — the same servers, in the same order, on hardware the kernel believes is real.