Русская Википедия:GNU Hurd

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

  1. REDIRECT Hurd

Шаблон:Карточка программы GNU Hurd (или просто Hurd) — проект по разработке свободного программного обеспечения, целью которого является замена ядра Unix для Unix-подобных операционных систем[1]. Разработка 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 («стадо антилоп гну»). Это отражает особенности работы ядра[2].

Идеи Hurd

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Mach-like Шаблон:UNIX-like Шаблон:GNU

  1. Шаблон:Cite web
  2. Шаблон:Cite web
  3. Шаблон:Cite web
  4. Шаблон:Cite web
  5. http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/ Шаблон:Wayback — текущая версия
  6. Шаблон:Cite web
  7. Шаблон:Cite web
  8. * Шаблон:Cite web
  9. Шаблон:Cite web
  10. В GRUB2 нумерация разделов (slice) начинается с единицы. Таким образом, второй раздел на первом диске будет иметь имя hd(0,2).