GNU Mach is the microkernel upon which a GNU Hurd system is based. It provides an Inter Process Communication (IPC) mechanism that the Hurd uses to define interfaces for implementing in a distributed multi-server fashion the services a traditional operating system kernel provides.

It is maintained by the Hurd developers for the GNU project and remains compatible with Mach 3.0.

The majority of GNU Mach's ?device drivers are from Linux 2.0. They were added using glue code, i.e., a Linux emulation layer in Mach.

GNU Mach runs on x86 machines. See the hardware compatibility list and information about ports to other architectures.

The latest release is GNU Mach 1.4.

Advantages of GNU Mach

GNU Mach is not the most advanced microkernel known to the planet, nor is it the fastest or smallest, but it has a rich set of interfaces and some features which make it useful as the base of the Hurd system.

  • it's free software

    Anybody can use, modify, and redistribute it under the terms of the ?GNU General Public License (GPL).

  • it's built to survive

    As a microkernel, GNU Mach doesn't implement a lot of the features commonly found in an operating system, but only the bare minimum that is required to implement a full operating system on top of it. This means that a lot of the operating system code is maintained outside of GNU Mach, and while this code may go through a complete redesign, the code of the microkernel can remain comparatively stable.

  • it's scalable

    Mach is particularly well suited for SMP and network cluster techniques. Thread support is provided at the kernel level, and the kernel itself takes advantage of that. Network transparency at the IPC level makes resources of the system available across machine boundaries (with NORMA IPC, currently not available in GNU Mach).

  • it exists

    The Mach microkernel is real software that works Right Now. It is not a research or a proposal. You don't have to wait at all before you can start using and developing it. Mach has been used in many operating systems in the past, usually as the base for a single UNIX server. In the GNU system, Mach is the base of a functional multi-server operating system, the Hurd.

Booting

To actually use the kernel and boot the GNU operating system, you need a boot loader. Not all boot loaders are capable to boot the GNU system, you need one that supports the multiboot standard. The bootloader of the GNU system is GNU GRUB, which supports a broad range of operating systems including GNU/Hurd.

Development