GNU Hurd is a collection of
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
servers written as part of
GNU
GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
, for the
GNU Mach microkernel. It has been under development since 1990 by the
GNU Project
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
of the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
, designed as a replacement for the
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
kernel,
and released as
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
under the
GNU General Public License
The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
. When the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
proved to be a viable solution, development of GNU Hurd slowed, at times alternating between stasis and renewed activity and interest.
The Hurd's design consists of a set of protocols and
server processes (or
daemons, in Unix terminology) that run on the GNU Mach microkernel.
The Hurd aims to surpass the Unix kernel in functionality, security, and stability, while remaining largely compatible with it. The GNU Project chose the multiserver microkernel for the operating system, due to perceived advantages over the traditional Unix
monolithic kernel
A monolithic kernel is an operating system software architecture, architecture with the entire operating system running in kernel space. The monolithic model differs from other architectures such as the microkernel in that it alone defines a high ...
architecture,
a view that had been advocated by some developers in the 1980s.
Name and logo
In December 1991 the primary architect of the Hurd described the name as a
mutually recursive acronym
A recursive acronym is an acronym that refers to itself, and appears most frequently in computer programming. The term was first used in print in 1979 in Douglas Hofstadter's book '' Gödel, Escher, Bach: An Eternal Golden Braid'', in which Hofs ...
:
As both ''hurd'' and ''hird'' are
homophone
A homophone () is a word that is pronounced the same as another word but differs in meaning or in spelling. The two words may be spelled the same, for example ''rose'' (flower) and ''rose'' (past tense of "rise"), or spelled differently, a ...
s of the English word ''herd'', the full name ''GNU Hurd'' is also a play on the words ''
herd
A herd is a social group of certain animals of the same species, either wild or domestic. The form of collective animal behavior associated with this is called '' herding''. These animals are known as gregarious animals.
The term ''herd'' ...
of
gnus
Gnus (), or Gnus Network User Services, is a message reader which is part of GNU Emacs. It supports reading and composing both e-mail and news and can also act as an RSS reader, web processor, and directory browser for both local and remote file ...
'', reflecting how the kernel works.
The logo is called the ''Hurd boxes'' and it also reflects on architecture. The logo is a graph where nodes represent the Hurd kernel's servers and directed edges are
IPC messages.
Development history
Richard Stallman
Richard Matthew Stallman ( ; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
founded the
GNU Project
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
in September 1983 with an aim to create a
free GNU
GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
operating system. Initially the components required for kernel development were written:
editors
Editing is the process of selecting and preparing written, visual, audible, or cinematic material used by a person or an entity to convey a message or information. The editing process can involve correction, condensation, organization, a ...
,
shell
Shell may refer to:
Architecture and design
* Shell (structure), a thin structure
** Concrete shell, a thin shell of concrete, usually with no interior columns or exterior buttresses
Science Biology
* Seashell, a hard outer layer of a marine ani ...
,
compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
,
debugger
A debugger is a computer program used to test and debug other programs (the "target" programs). Common features of debuggers include the ability to run or halt the target program using breakpoints, step through code line by line, and display ...
etc. By 1989, the
GPL came into being and the only major component missing was the kernel.
Development on the Hurd began in 1990 after an abandoned kernel attempt in 1986, based on the research
TRIX operating system developed by Professor
Steve Ward and his group at
MIT's Laboratory for Computer Science
Computer Science and Artificial Intelligence Laboratory (CSAIL) is a research institute at the Massachusetts Institute of Technology (MIT) formed by the 2003 merger of the Laboratory for Computer Science (LCS) and the Artificial Intelligence Lab ...
(LCS).
According to
Thomas Bushnell, the initial Hurd architect, their early plan was to adapt the
4.4BSD
The history of the Berkeley Software Distribution began in the 1970s when University of California, Berkeley received a copy of Research Unix, Unix. Professors and students at the university began adding software to the operating system and releas ...
-Lite kernel and, in hindsight, "It is now perfectly obvious to me that this would have succeeded splendidly and the world would be a very different place today."
In 1987 Richard Stallman proposed using the
Mach microkernel developed by
Richard Rashid
Richard Farris Rashid is the founder of Microsoft Research, which he created in 1991. Between 1991 and 2013, as its chief research officer and director, he oversaw the worldwide operations for Microsoft Research which grew to encompass more than ...
at
Carnegie Mellon University
Carnegie Mellon University (CMU) is a private research university in Pittsburgh, Pennsylvania, United States. The institution was established in 1900 by Andrew Carnegie as the Carnegie Technical Schools. In 1912, it became the Carnegie Institu ...
. Work on this was delayed for three years due to uncertainty over whether CMU would release the Mach code under a suitable license.
With the release of the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
in 1991, the primary user of GNU's
userland components soon became operating systems based on the Linux kernel (
Linux distribution
A Linux distribution, often abbreviated as distro, is an operating system that includes the Linux kernel for its kernel functionality. Although the name does not imply product distribution per se, a distro—if distributed on its own—is oft ...
s), prompting the coining of the term
''GNU/Linux''.
Development of the Hurd has proceeded slowly. Despite an optimistic announcement by Stallman in 2002 predicting a release of GNU/Hurd later that year,
the Hurd is still not considered suitable for production environments. Development in general has not met expectations, and there are still a significant number of bugs and missing features.
This has resulted in a poorer product than many, including Stallman, had expected.
In 2010, after twenty years under development, Stallman said that he was "not very optimistic about the GNU Hurd. It makes some progress, but to be really superior it would require solving a lot of deep problems", but added that "finishing it is not crucial" for the GNU system because a free kernel already existed (
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
), and completing Hurd would not address the main remaining problem for a free operating system: device support.
The
Debian
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
project, among others, have worked on the Hurd project to produce binary distributions of
Hurd-based GNU operating systems for
IBM PC compatible
An IBM PC compatible is any personal computer that is hardware- and software-compatible with the IBM Personal Computer (IBM PC) and its subsequent models. Like the original IBM PC, an IBM PC–compatible computer uses an x86-based central p ...
systems.
After years of stagnation, development picked up again in 2015 and 2016, with four releases during these two years, but no more since then.
On August 20, 2015, amid the
Google Summer of Code
The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to contributors who successfully complete a free and open-source software coding project during the summer. , the program is ...
, it was announced that
GNU Guix had been ported to GNU Hurd.
Architecture

Unlike most
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
kernels, the Hurd uses a
server–client architecture, built on a
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
that is responsible for providing the most basic
kernel services – coordinating access to the
hardware: the
CPU (through
process management and
scheduling
A schedule (, ) or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things ...
),
RAM
Ram, ram, or RAM most commonly refers to:
* A male sheep
* Random-access memory, computer memory
* Ram Trucks, US, since 2009
** List of vehicles named Dodge Ram, trucks and vans
** Ram Pickup, produced by Ram Trucks
Ram, ram, or RAM may also ref ...
(via
memory management
Memory management (also dynamic memory management, dynamic storage allocation, or dynamic memory allocation) is a form of Resource management (computing), resource management applied to computer memory. The essential requirement of memory manag ...
), and other various
input/output
In computing, input/output (I/O, i/o, or informally io or IO) is the communication between an information processing system, such as a computer, and the outside world, such as another computer system, peripherals, or a human operator. Inputs a ...
devices (via
I/O scheduling
Input/output (I/O) scheduling is the method that computer operating systems use to decide in which order I/O operations will be submitted to storage volumes. I/O scheduling is sometimes called disk scheduling.
Purpose
I/O scheduling usually ...
) for sound, graphics, mass storage, etc. In theory, the microkernel design would allow for all device drivers to be built as servers working in
user space
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
, but today most drivers of this kind are still contained in the
GNU Mach kernel space
A modern computer operating system usually uses virtual memory to provide separate address spaces or regions of a single address space, called user space and kernel space. This separation primarily provides memory protection and hardware prote ...
.
According to Hurd developers, the main advantage of microkernel-based design is the ability to extend the system: developing a new module would not require in depth knowledge of the rest of the kernel, and a bug in one module would not crash the entire system. Hurd provides a concept of ''translators'', a framework of modules used to extend a file system functionality.
From early on, the Hurd was developed to use
GNU Mach as the microkernel. This was a technical decision made by
Richard Stallman
Richard Matthew Stallman ( ; born March 16, 1953), also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to ...
, who thought it would speed up the work by saving a large part of it. He has admitted that he was wrong about that.
Other Unix-like systems working on the
Mach microkernel include
OSF/1,
Lites, and
MkLinux.
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
and
NeXTSTEP
NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its ...
use
hybrid kernel
A hybrid kernel is an operating system Kernel (operating system), kernel whose architecture attempts to combine aspects and benefits of microkernel and monolithic kernel architectures used in operating systems.
Overview
The traditional kernel cat ...
s based on Mach.
Other microkernels
From 2004 onward, various efforts were launched to port the Hurd to more modern microkernels. The
L4 microkernel was the original choice in 2004, but progress slowed to a halt. Nevertheless, during 2005, Hurd developer Neal Walfield finished the initial memory management framework for the L4/Hurd port, and Marcus Brinkmann ported essential parts of
glibc
The GNU C Library, commonly known as glibc, is the GNU Project implementation of the C standard library. It provides a wrapper around the system calls of the Linux kernel and other kernels for application use. Despite its name, it now also dir ...
; namely, getting the process startup code working, allowing programs to run, thus allowing the first user programs (trivial ones such as the
hello world program
Hello is a salutation or greeting in the English language. It is first attested in writing from 1826.
Early uses
''Hello'', with that spelling, was used in publications in the U.S. as early as the 18 October 1826 edition of the '' Norwich Cou ...
) in C to run.
Since 2005, Brinkmann and Walfield started researching
Coyotos as a new kernel for HURD.
In 2006, Brinkmann met with Jonathan Shapiro (a primary architect of the Coyotos Operating System) to aid in and discuss the use of the Coyotos kernel for GNU/Hurd. In further discussion HURD developers realised that Coyotos (as well as other similar kernels) are not suitable for HURD.
In 2007, Hurd developers Neal Walfield and Marcus Brinkmann gave a critique of the Hurd architecture, known as "the critique",
and a proposal for how a future system may be designed, known as "the position paper".
In 2008, Neal Walfield began working on the Viengoos microkernel as a modern native kernel for HURD. , development on Viengoos is paused due to Walfield lacking time to work on it.
In the meantime, others have continued working on the Mach variant of Hurd.
Unix extensions
A number of traditional Unix concepts are replaced or extended in the Hurd.
Under Unix, every running program has an associated
user id
Unix-like operating systems identify a user by a value called a user identifier, often abbreviated to user ID or UID. The UID, along with the group identifier (GID) and other access control criteria, is used to determine which system resources a us ...
, which normally corresponds to the user that started the
process
A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic.
Things called a process include:
Business and management
* Business process, activities that produce a specific s ...
. This id largely dictates the actions 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
file system, 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, like a Unix
symbolic link
In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto.
Symbolic links are supported by POSIX and by most Unix-like operating syste ...
. The effect of Unix ''
mounting'' is achieved by setting up a filesystem translator (using the "settrans" command). Translators can also be used to provide services to the user. For example, the
ftpfs translator allows a user to encapsulate remote FTP sites within a directory. Then, standard tools such as
ls,
cp, and
rm can be used to manipulate files on the remote system. Even more powerful translators are ones such as
UnionFS, which allows a user to unify multiple directories into one; thus listing the unified directory reveals the contents of all the directories.
The Hurd requires a
multiboot-compliant
boot loader
A bootloader, also spelled as boot loader or called bootstrap loader, is a computer program that is responsible for booting a computer and booting an operating system. If it also provides an interactive menu with multiple boot choices then it's o ...
, such as
GRUB.
Architecture of the servers
According to the Debian documentation, there are 24 servers (18 core servers and 6 file system servers) named as follows:
Core servers
* auth (
authentication server): Receives requests and passwords from programs and gives them an ID, which changes the privileges of the program.
* crash (
crash server): Handles all fatal errors.
*
eieio (translation server): TODO
* exec (execution server): Translates an executable image (currently
ELF
An elf (: elves) is a type of humanoid supernatural being in Germanic peoples, Germanic folklore. Elves appear especially in Norse mythology, North Germanic mythology, being mentioned in the Icelandic ''Poetic Edda'' and the ''Prose Edda'' ...
and
a.out are supported) to a runnable image in memory.
* fifo (
FIFO translator): Implements named pipes.
* new-fifo (new FIFO server): An alternate server for named pipes.
* firmlink (the firmlink translator): Implements firmlinks ‒ "half-way between a
symbolic link
In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto.
Symbolic links are supported by POSIX and by most Unix-like operating syste ...
and a
hard link
In computing, a hard link is a directory entry (in a Directory (computing), directory-based file system) that associates a name with a Computer file, file. Thus, each file must have at least one hard link. Creating additional hard links for a fil ...
".
* fwd (forward server): Forwards requests to other servers, used by fifo and symlink servers.
* hostmux (host multiplexer server)
* ifsock (server for sockets interface): Helps with UNIX domain socket addresses.
* init (
init
In Unix-based computer operating systems, init (short for ''initialization'') is the first process started during booting of the operating system. Init is a daemon process that continues running until the system is shut down. It is the direc ...
server): Basic system booting and configuration.
* magic (
magic server): Signals that a name lookup must be resolved internally by a process when the result involves the process's state.
* null (null server): Implements
/dev/null
In some operating systems, the null device is a device file that discards all data written to it but reports that the write operation succeeded. This device is called /dev/null on Unix and Unix-like systems, NUL: (see TOPS-20) or NUL on CP/M a ...
and /dev/zero.
* pfinet (pfinet server): Implements the PF_INET protocol family.
* pflocal (pflocal server): Implements
UNIX domain sockets.
* proc (process server): Assigns
PIDs and manages process-level actions.
* symlink (
symbolic link
In computing, a symbolic link (also symlink or soft link) is a file whose purpose is to point to a file or directory (called the "target") by specifying a path thereto.
Symbolic links are supported by POSIX and by most Unix-like operating syste ...
translator): Implements symbolic links for filesystems that do not support them.
* term (terminal server): A
POSIX
The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
terminal.
* usermux (user multiplexer server): Invokes user-specific translators.
Filesystem servers
;ext2fs
:The
ext2
ext2, or second extended file system, is a file system for the Linux kernel (operating system), kernel. It was initially designed by French software developer Rémy Card as a replacement for the extended file system (ext). Having been designed ...
filesystem translator. It receives disk blocks from the microkernel and gives files and directories to the applications.
;isofs
:The translator for the
ISO 9660
ISO 9660 (also known as ECMA-119) is a file system for optical disc media. The file system is an international standard available from the International Organization for Standardization (ISO). Since the specification is publicly available, im ...
filesystem. Translates blocks of a CD or DVD to files and directories for the applications.
;nfs
:See
Network File System
Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like ...
.
;ftpfs
:
File transfer protocol
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and d ...
filesystem translator.
;storeio
:The storage translator.
The servers collectively implement the
POSIX
The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
, with each server implementing a part of the interface. For instance, the various filesystem servers each implement the filesystem calls. The storage server will work as a wrapping layer, similar to the block layer of Linux. The equivalent of
VFS of
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
is achieved by libdiskfs and libpager libraries.
GNU distributions running Hurd

Hurd-based
GNU distributions include:
*
Arch Hurd
* Bee GNU/Hurd (discontinued)
*
Debian GNU/Hurd
Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
*
Gentoo GNU Hurd (discontinued)
* GNU/Hurd Live CD
(discontinued)
*
Guix System (under development)
See also
*
Comparison of operating system kernels
*
GNU distributions
*
Kernel-based Virtual Machine
Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the Kernel (operating system), kernel to function as a hypervisor. It was merged into the Mainline Linux, mainline Linux kernel i ...
(KVM)
*
Linux-libre
According to the Free_Software_Foundation_Latin_America , Free Software Foundation Latin America, Linux-libre is a modified version of the Linux kernel that contains no binary blobs, Obfuscation (software), obfuscated code, or code released u ...
– a
free version of the
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
*
Multiboot Specification
The Multiboot specification is an open standard describing how a boot loader can load an x86 operating system kernel. The specification allows any compliant boot-loader implementation to boot any compliant operating-system kernel. Thus, it all ...
References
External links
*
{{Microkernel
Free software operating systems
GNU Project software
Microkernel-based operating systems
Microkernels
Operating system distributions bootable from read-only media
Unix variants
X86-64 operating systems