GNU Hurd to
jądro systemu operacyjnego
opartego na
architekturze mikrojądra. System ten nazywa się
GNU/Hurd (
analogicznie do
GNU/Linux) albo po prostu
GNU, ponieważ Hurd jest częścią tego projektu. Nazwa to
rekurencyjny akronim: "Hurd" oznacza
Hird of Unix-Replacing Daemons, a "Hird" natomiast oznacza
Hurd of Interfaces Representing Depth.
Obecnie Hurd używa mikrojądra
Mach 4, powstałego na Uniwersytecie Carnegie-Mellon, lecz ponieważ Mach nie jest już aktywnie rozwijany i wiąże się z nim wiele
problemów - m.in. słaba wydajność i przenośność, brak obsługi
SMP, od lat pojawiają
się propozycje zmiany mikrojądra na
L4. Hurd w wersji aktualnej został przeniesiony na L4.
Hurd jest mniej więcej zgodny ze standardem
POSIX. Najważniejszą niezgodnością jest używanie systemu
wątków Cthreads zamiast systemu określonego w standardzie
POSIX (Pthreads). Istnieje biblioteka
emulująca wątki Pthreads na bazie Cthreads.
Hurd bywa nazywany "zespołem
serwerów" (bazujących na Machu lub innym mikrojądrze) wykonujących konkretne zadania. Mamy więc do dyspozycji serwer
uwierzytelniania, haseł,
procesów itd. Nowatorskim rozwiązaniem zastosowanym w Hurdzie jest (oprócz architektury mikrojądra) danie użytkownikom możliwości usunięcia lub zamiany jakiegokolwiek z
serwerów. Użytkownicy mogą pisać też własne pełnoprawne
serwery. Obszar systemu (w sensie obszaru, z którym użytkownik nie może nic zrobić) jest ograniczony do minimum.
Inną ciekawą cechą jest mechanizm
translatorów, działających na zasadzie filtrów nakładanych na konkretne miejsca w drzewie katalogowym (także na
pliki). Za przykład translatora mógłby posłużyć mechanizm pozwalający na dostęp do zasobów
FTP tak jak do zwykłego katalogu na dysku i operacje na tych zasobach tak jak na plikach lokalnych (tymi samymi narzędziami). Teraz takie możliwości są oferowane w obrębie pojedynczych programów, a nie całego systemu.