Hurd

HomePage | Recent changes | View source | Discuss this page | Page history | Log in |

Printable version | Disclaimers | Privacy policy

The Hurd is an operating system kernel being developed by the GNU Project. The Hurd aims for surpassing Unix kernels in capability, while remaining largely compatibile with it.

The Hurd builds on top of a microkernel that is responsible to provide the most basic kernel services -- coordinating access to the hardware: the CPU (through multiprocessing), RAM (via memory management), and other various devices for sound, graphics, mass storage, etc. Currently GNU Mach is used as the microkernel. Projects exists to port the Hurd to other microkernels.

There are other Unix-like systems running on top of Mach (including Lites, and MkLinux), implemented as a single so called "server". In effect they replace a monolithic kernel with two parts (microkernel and server). The Hurd instead consists of multiple servers working together -- it is a "Hird of Unix-Replacing Daemons". ("Hird" stands for "Hurd of Interfaces Representing Depth".)

A number of traditional Unix concepts are replaced or extended:

Under Unix every program running has an associated user id, which normally corresponds to the user that started the process. This id largely dictates the action permitted to the program. No outside process can change the user id of a running program. A Hurd process, on the other hand, runs under a set of user ids, which can contain multiple ids, one, or none. A sufficiently privileged process can add and remove ids to another process. For example there is a password server that will hand out ids in return for a correct login password.

Regarding the filesystem, a suitable program can be designated as a translator for a single file or a whole directory hierarchy. Every access to the translated file, or files below a hierarchy in the second case, is in fact handled by the program. For example a file translator may simply redirect read and write operations to another file, not unlike a Unix symbolic link. What mounting is to Unix, the Hurd achieves by setting up a filesystem translator.

The Hurd requires a multiboot-compliant bootloader, GRUB for example.

At this time, there is a single distribution of the Hurd in preparation, which has not yet been officially released outside of interested testers and developers. That distribution is Debian GNU/Hurd.

See also:


/Talk