kids encyclopedia robot

GNU Hurd facts for kids

Kids Encyclopedia Facts
Quick facts for kids
GNU Hurd
Hurd-logo.svg
Debian GNU HURD text mode screenshot.png
Company / developer GNU Project
Thomas Bushnell
Roland McGrath
Marcus Brinkmann
Neal Walfield
Samuel Thibault
Programmed in Assembly, C
OS family Unix-like
Working state Current
Source model Free software
Initial release 1990; 35 years ago (1990)
Latest stable release 0.9 Edit this on Wikidata / 18 December 2016
Supported platforms x86-64, IA-32, i686, ARM
License GPL-2.0-or-later

GNU Hurd is a special kind of computer operating system. Think of an operating system like the brain of a computer. It helps all the parts work together. GNU Hurd is being built by the GNU Project, which is a group that creates free software. "Free software" means you can use it, study it, change it, and share it with others.

GNU Hurd started being developed in 1990. It was designed to be a replacement for the Unix kernel. A kernel is the main part of an operating system. It controls the computer's hardware and makes sure programs can run. GNU Hurd uses something called a microkernel, which is a smaller, simpler kernel. It works with many small programs called "servers" to do its job.

When the Linux kernel became popular, the development of GNU Hurd slowed down. However, people are still working on it today!

What's in a Name?

The name "Hurd" is a bit of a puzzle, but it's also quite clever! In 1991, the main person working on Hurd, Thomas Bushnell, explained it.

He said that "Hurd" stands for "Hird of Unix-Replacing Daemons." Then, "Hird" stands for "Hurd of Interfaces Representing Depth." This is called a mutually recursive acronym. It means each word's meaning depends on the other word.

Both "hurd" and "hird" sound like the English word "herd." So, "GNU Hurd" also sounds like "herd of gnus." This is a fun way to show how the different parts of the kernel work together like a group.

The logo for Hurd is called the Hurd boxes. It shows how the different parts of the system connect and send messages to each other.

How GNU Hurd Was Developed

Richard Stallman started the GNU Project in 1983. His goal was to create a completely free operating system. Over the years, many parts of this system were created, like editors and compilers. By 1989, the only big piece missing was the kernel.

Work on the Hurd kernel began in 1990. Before that, there was an earlier attempt in 1986 that didn't work out. At first, the plan was to use parts of another kernel called 4.4BSD-Lite. But then, in 1987, Richard Stallman suggested using the Mach microkernel. This caused some delays because they had to wait to see if the Mach code would be released as free software.

In 1991, the Linux kernel was released. It quickly became very popular. Many operating systems started using the Linux kernel along with the GNU tools. This led to the term "GNU/Linux" for these systems.

Development of GNU Hurd has been slow. Even though there were hopes for a release, it's still not ready for everyday use. There are still some bugs and missing features. However, development picked up again in 2015 and 2016.

The Debian project, which creates popular Linux-based operating systems, has also worked on creating versions of GNU Hurd.

How GNU Hurd Works

OS-structure2
This image shows how different types of operating systems are built. GNU Hurd uses a microkernel design.

Most Unix-like operating systems use a single, large kernel. But GNU Hurd is different. It uses a server–client architecture. This means it has a small microkernel that handles the most basic tasks, like managing the CPU and RAM. All the other jobs are handled by separate programs called "servers."

Imagine the microkernel as a tiny manager. It makes sure everyone else (the servers) has what they need to do their jobs. These servers then handle things like managing files, connecting to the internet, and running programs.

One big advantage of this design is that if one server has a problem, it usually won't crash the entire system. Also, it's easier to add new features because you only need to work on one small server, not the whole kernel. Hurd also has a cool feature called translators. These are like special programs that can change how files or folders work. For example, you could have a translator that lets you access files on a remote server as if they were on your own computer.

GNU Hurd uses GNU Mach as its microkernel. Other systems like macOS also use parts of the Mach kernel.

Different Kernels for Hurd

Over the years, people have tried to make GNU Hurd work with other microkernels too. In 2004, they tried the L4 microkernel, and some progress was made.

Later, in 2007, some Hurd developers looked at how the system was designed and suggested new ideas for the future. One developer even started working on a new microkernel called Viengoos, but that project is currently paused.

Meanwhile, work continues on the Mach version of Hurd.

Special Unix Features

GNU Hurd has some unique ways of doing things compared to traditional Unix systems:

  • User IDs: In Unix, a program usually has one user ID. In Hurd, a program can have a set of user IDs. This means it can have many IDs, one, or none. A powerful program can even add or remove IDs from another program.
  • Translators: As mentioned before, translators are special programs that can manage files or entire folders. For example, a translator can make a remote FTP site appear like a local folder on your computer. You can then use normal commands like ls (list files) or cp (copy files) to work with files on that remote site. Another cool translator is UnionFS, which lets you combine several folders into one.

To start up GNU Hurd, you need a special program called a multiboot-compliant boot loader, like GRUB.

How the Servers Work

The GNU Hurd system has many servers that work together. Here are some of the main ones:

Core Servers

  • auth (authentication server): This server helps programs get the right permissions by giving them an ID.
  • crash (crash server): If something goes very wrong, this server handles the error.
  • exec (execution server): This server prepares programs to run in the computer's memory.
  • fifo (FIFO translator): This creates "named pipes," which are like special channels for programs to talk to each other.
  • init (init server): This server helps the system start up and get configured.
  • null (null server): This creates special files like `/dev/null` and `/dev/zero`, which are used for throwing away data or getting endless zeros.
  • pfinet (pfinet server): This helps with internet connections.
  • proc (process server): This server gives programs their unique IDs and manages how they run.
  • symlink (symbolic link translator): This creates "symbolic links," which are like shortcuts to other files or folders.
  • term (terminal server): This manages the text-based interface you might use to type commands.

Filesystem Servers

  • ext2fs: This server helps the system read and write files on ext2 formatted disks.
  • isofs: This server lets you read files from CDs or DVDs.
  • nfs: This server helps you access files over a network.
  • ftpfs: This server lets you access files on FTP sites as if they were local files.
  • storeio: This server helps manage how data is stored.

All these servers work together to make the system function. They help programs use the computer's resources and interact with files and other devices.

GNU Hurd Distributions

Even though it's still in development, some groups have created versions of GNU Hurd that you can try. These are called "distributions." Some examples include:

See also

Kids robot.svg In Spanish: GNU Hurd para niños

  • Comparison of operating system kernels
  • GNU distributions
  • Linux-libre – a free version of the Linux kernel
kids search engine
GNU Hurd Facts for Kids. Kiddle Encyclopedia.