GNU Mach is the microkernel of the GNU system. A microkernel provides only a limited functionality, just enough abstraction on top of the hardware to run the rest of the operating system in user space. The GNU Hurd servers and the GNU C library implement the POSIX compatible base of the GNU system on top of the microkernel architecture provided by Mach.
Currently, GNU Mach runs on IA32 machines. GNU Mach should, and probably will, be ported to other hardware architectures in the future. Mach was ported to many operating systems in the past.
GNU Mach is maintained by the Hurd developers for the GNU project. If you need help with GNU Mach or want to contribute to the development of the microkernel, you should contact the Hurd people.
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.
GNU Mach 1.3 was released in May 2002, and features advanced boot script support, support for large disks (>= 10GB) and an improved console.
GNU Mach is used as the default microkernel in the GNU/Hurd system. It is compatible with other popular Mach distributions. The device drivers for block devices and network cards are taken from Linux 2.0.x kernel versions, and so a broad range of common hardware is supported.
However, the Linux device drivers have been improved greatly since the 2.0.x version, and a new version of GNU Mach based on the OSKit library is being worked on, which uses newer drivers and in general has cleaner machine specific support code.
GNU Hurd/ hurd/ running/Live CD
A less recent Live CD can be found at http://teythoon.cryptobitch.de/hurd/livecd/hurd-live-install-1273300101.iso.xz.
It can be run with qemu via
$ xz -d hurd-live-install-1273300101.iso.xz
$ qemu -m 512 -cdrom hurd-live-install-1273300101.iso
# it works as well if you fire it up in a virtualbox "generic" VM (do not choose Linux or anything choose "other")
# to get root access type:
# you can install the system by typing
# yes our data is save (it's a VM sandbox luckily :-D)
# it will ask you on what harddisk to install, just hit enter
blabla [hd0]; # hit enter (accept defaults)
# now it fails with some random error type
# and hit enter which means "write partition changes to disk"
# then it asks you to reboot
# now you are root :-D have PHUN
These LiveCDs should be useful for those who want to try out the
Hurd before they commit to installing it on their hard disks. In addition to
that, the bootable Hurd CDs should enable us to have a native installer instead
of relying on Linux.