GNU Hurd
Логотип программы GNU Hurd
Скриншот программы GNU Hurd
HURD Live CD
Тип ядро ОС
Разработчики Томас Башнелл
Роланд Макграт
Маркус Бринкманн
и другие
Написана на Си и язык ассемблера
Операционная система GNU
Аппаратные платформы IA-32[2] и x86-64[2]
Последняя версия 0.9[1] (18 декабря 2016; 9 лет назад (2016-12-18))
Репозиторий git.savannah.gnu.org/cgi…
savannah.gnu.org/git/?gr…
Лицензия GNU GPL
Сайт gnu.org/software/hurd/in…
Логотип Викисклада Медиафайлы на Викискладе

GNU Hurd (или просто Hurd) — проект по разработке свободного программного обеспечения, целью которого является замена ядра Unix для Unix-подобных операционных систем[3]. Разработка Hurd ведётся начиная с 1990 года проектом GNU и Фондом свободного программного обеспечения. Разработка ведётся медленно по причине существования Linux — уже готовой свободной замены ядрам Unix-систем.

Этимология

править

HURD — двойной рекурсивный акроним HIRD of Unix-Replacing Daemons (с англ. — «хирд демонов», заменяющих UNIX), где HIRD — также акроним HURD of Interfaces Representing Depth (с англ. Hurd интерфейсов, олицетворяющих глубину).

Так как слова «Hurd» и «Hird» в английском языке являются омофонами «Herd» («стадо»), то название GNU Hurd также является игрой слов — herd of gnus («стадо антилоп гну»). Это отражает особенности работы ядра[4].

Идеи Hurd

править

Hurd имеет микроядерную архитектуру. Оно представляет собой набор небольших автономно работающих программ-серверов и программ пользователя, которые обмениваются между собой формализованными сообщениями. Основа Hurd — микроядро GNU Mach, реализация Mach обеспечивает только взаимодействие этих программ между собой.

Особый класс серверов — трансляторы — обеспечивают возможность работы с файловыми системами, сетевыми протоколами, управляют доступом к файлам. Также устройство файловой системы Hurd обладает некоторыми особенностями, которые отличают GNU/Hurd от других операционных систем.

Развязка компонентов операционной системы позволяет модулизировать функции, обычно присущие монолитному ядру, и, таким образом, не только повысить надёжность операционной системы, но и упростить распараллеливание задач.

Статус разработки

править

Сейчас Hurd работает на компьютерах с архитектурой x86, однако уже много лет находится в состоянии, далёком от стабильной версии. Скептики сомневаются, что в ближайший разумный промежуток времени Hurd достигнет уровня стабильности и простоты использования, необходимых для повседневного применения. В 2002 году Ричард Столлман, руководитель проекта GNU, заявил о скором выходе стабильной версии Hurd[5].

Была предпринята попытка портирования Hurd на высокопроизводительное микроядро L4, однако в настоящее время работа в этом направлении остановлена[6].

В 2005 году разрабатывался дистрибутив под названием Bee GNU/Hurd. Этот проект, судя по всему, мёртв, так как последний снэпшот (версия Bee 0.3 beta 1) в системе управления версиями CVS датирован 22 декабря 2005[источник не указан 4789 дней].

Из активных проектов существует дистрибутив Debian GNU/Hurd, регулярно выпускаются новые CD-сборки и мини-образы этого дистрибутива[7][8].

Также в 2010 году появился новый дистрибутив на базе GNU/Hurd и Arch Linux — Arch Hurd[9].

В 2020 году дистрибутив GNU Guix System стал поддерживать GNU Hurd[10][11].

В 2026 году вышел релиз Gentoo GNU/Hurd[12]

Именование дисков в Hurd

править

Именование дисков — это нотация, определяющая порядок формирования идентификаторов или имён для обращения к устройствам хранения данных, которые имеют файловую систему определённого типа, в средах различных операционных систем.

Если речь идёт о именовании диска SCSI, необходимо знать номер устройства SCSI; если это IDE-диск, то необходимо знать, на каком контроллере находится этот диск, а также ведущий он или ведомый. Система Hurd использует соглашение о наименовании дисков, аналогичное применяемому в BSD, по этому соглашению диски упорядочиваются согласно их физическому расположению по номерам, начиная с нуля. Эта схема наименования напоминает свой аналог в Linux. Там ведущий диск на главном контроллере обозначается как «sda», а ведомый диск — как «sdb». На вторичном контроллере ведущий диск и ведомый обозначаются «sdc» и «sdd», соответственно. В системе Hurd диск «sda» будет называться «hd0», а диск «sdb» будет обозначаться «hd1» и т. д.

В системе Hurd, как и в BSD, разделы диска называются «slices» (от англ. slice — отрезанная часть, ломоть) и нумеруются, начиная с единицы. Имя раздела получается добавлением номера с префиксом «s» к имени диска. Так второй раздел на диске «hd1» получит имя «hd1s2» (в отличие от «sdb2» в Linux).

GRUB — это программа начальной загрузки операционной системы. Он использует совершенно другую номенклатуру именования дисков: он получает от BIOS данные об имеющихся дисках и преобразует их в свою внутреннюю структуру в формате массива. Таким образом, диски и разделы нумеруются в GRUB начиная с нуля. Формат именования дисков в GRUB таков: «(<диск>, <раздел>)». Поэтому имя «hd (0, 1)» обозначает второй раздел на первом диске, который был обнаружен средствами BIOS самого компьютера[13]. Поскольку GRUB на данный момент имеет функции tab-дополнения, пользователю GRUB не требуется прилагать много усилий для именования диска и раздела.

Примечания

править
  1. Hurd 0.9, GNU Mach 1.8, GNU MIG 1.8 released. Дата обращения: 12 июня 2022. Архивировано 30 мая 2022 года.
  2. 1 2 The 64-bit Hurd is Here! (англ.)
  3. What Is the GNU Hurd? (англ.). gnu.org. Дата обращения: 28 ноября 2010. Архивировано из оригинала 27 августа 2011 года.
  4. Origin Of the Name (англ.). gnu.org. Дата обращения: 28 ноября 2010. Архивировано из оригинала 27 августа 2011 года.
  5. John Ribeiro. «Free Software Sees Gnu Loose of Linux» (англ.). PC World (12 марта 2002). Дата обращения: 28 ноября 2010. Архивировано из оригинала 27 августа 2011 года.
  6. Porting the Hurd to L4: Hurd/L4. Дата обращения: 18 сентября 2009. Архивировано 27 июня 2010 года.
  7. http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/ Архивная копия от 29 июня 2011 на Wayback Machine — текущая версия
  8. GNU chapters. Дата обращения: 27 июля 2008. Архивировано 5 марта 2005 года.
  9. Arch Hurd. Дата обращения: 20 мая 2010. Архивировано 31 июля 2010 года.
  10. * Jan (janneke) Nieuwenhuizen, Ludovic (civodul) Courtès, Marius (mbakke) Bakke, Ricardo (rekado) Wurmus. Deprecating support for the Linux kernel (англ.). GNU Guix (1 апреля 2020). — «After years in the making, Guix recently gained support for running natively on the GNU/Hurd operating system.» Дата обращения: 4 августа 2020. Архивировано 4 августа 2020 года.
    • Jan Nieuwenhuizen, Ludovic Courtès. A “Hello World” virtual machine running the Hurd (англ.) (8 апреля 2020). — «we’re not deprecating Linux-libre, fear not! But when we published it, it was already April 2nd in Eastern parts of the world and thus, not surprisingly, the remainder of the post was less of a joke.» Дата обращения: 4 августа 2020. Архивировано 10 августа 2020 года.
  11. Download latest images (англ.). GNU Guix. — «GNU Guix System on GNU Hurd». Дата обращения: 4 августа 2020. Архивировано 5 августа 2020 года.
  12. Gentoo GNU/Hurd – Gentoo Linux (амер. англ.). www.gentoo.org. Дата обращения: 10 апреля 2026.
  13. В GRUB2 нумерация разделов (slice) начинается с единицы. Таким образом, второй раздел на первом диске будет иметь имя hd(0,2).

Ссылки

править

📚 Artikel Terkait di Wikipedia

Windows API

содержащая дополнительные функции Windows на платформах x86-64 и IA-64. Linux kernel API .NET Framework. Windows Runtime. Wine — свободная кроссплатформенная

NVM Express

15 февраля 2016. Архивировано 28 апреля 2014 года. NVME(4). NetBSD Kernel Interfaces Manual . Дата обращения: 9 сентября 2016. Архивировано из оригинала

Мьютекс

RT-mutex implementation design — The Linux Kernel documentation (англ.). The Linux Kernel documentation. The kernel development community (7 июня 2017)

POSIX

2016. Архивировано 9 июля 2008 года. Robert Love. Linux System Programming: Talking Directly to the Kernel and C Library. — "O'Reilly Media, Inc.", 2013-05-14

InfiniBand

Register. Дата обращения: 28 июля 2014. Архивировано 4 марта 2016 года. Linux Kernel 2.6.11 Supports InfiniBand . Дата обращения: 29 июля 2014. Архивировано

Single UNIX Specification

1238 p. — ISBN 978-0-13-700291-7. Robert Love. Linux System Programming: Talking Directly to the Kernel and C Library : [англ.]. — O'Reilly Media, Inc

Си (язык программирования)

indent(1) - Linux man page (англ.). linux.die.net. Дата обращения: 5 марта 2019. Архивировано 13 мая 2019 года. Wolfram Research, Inc. SYSTEMS INTERFACES AND

Семафор (программирование)

Sem_timedwait.3p — Linux manual page : [англ.]. — Man7.org. — Дата обращения: 5 мая 2019. 112521 – monotonic sem_timedwait : [англ.]. — Bugzilla.kernel.org. — Дата