GNU Hurd

GNU Hurd (або просто Hurd) - проект з розробки вільного програмного забезпечення, метою якого є заміна ядра Unix для Unix-подібних операційних систем. [1] Розробка Hurd ведеться починаючи з 1990 року проектом GNU та Фондом вільного програмного забезпечення.


1. Етимологія

Hurd - непрямий рекурсивний акронім від англ. HIRD of Unix-Replacing Daemons ("HIRD демонів, замінюють UNIX "), де HIRD - також акронім від англ. HURD of Interfaces Representing Depth ("HURD інтерфейсів, що уособлюють глибину ").

Так як слова "Hurd" і "Hird" в англійській мові є варіантами написання "Herd" ("Стадо"), то назва GNU Hurd так само є грою слів - herd of gnus ("Стадо антилоп Гну "), що відображає особливості роботи ядра. [2]


2. Ідеї ​​Hurd

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

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

Розв'язка компонентів операційної системи дозволяє модулізіровать функції, зазвичай властиві монолітному ядру, і, таким чином, не тільки підвищити надійність операційної системи, але і спростити розпаралелювання завдань.


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

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

Була зроблена спроба портування Hurd на високопродуктивне мікроядро L4, проте в даний час робота в цьому напрямку зупинена. [4]

У 2005 році розроблявся дистрибутив під назвою Bee GNU / Hurd. Цей проект, судячи з усього, мертвий, так як останній snapshot (версія Bee 0.3 beta 1) в системі управління версіями CVS датований 22 грудня 2005.

Але, тим не менш, існує дистрибутив Debian GNU / Hurd, регулярно випускаються нові CD-збірки і міні-образи цього дистрибутива [5]. [6]

Також, в 2010 році з'явився новий дистрибутив на базі GNU / Hurd і Archlinux - Arch Hurd. [7]


4. Іменування дисків в Hurd

Іменування дисків - це нотація, визначає порядок формування ідентифікаторів або імен для звернення до пристроїв зберігання даних, які мають файлову систему певного типу, в середовищах різних операційних систем.

Якщо мова йде про іменуванні диска SCSI, необхідно знати номер пристрою SCSI; якщо це IDE диск, то необхідно знати, на якому контролері знаходиться цей диск, а також провідний він або ведений. Система Hurd використовує угоду про найменування дисків, аналогічне застосовуваному в BSD, за цією угодою диски упорядковуються згідно їх фізичному розташуванню за номерами починаючи з нуля. Ця схема найменування нагадує свій аналог в Linux. Там провідний диск на головному контролері позначається як "hda", а ведений диск як "hdb". На вторинному контролері провідний диск і ведений позначаються "hdc" і "hdd" відповідно. В системі Hurd диск 'hda' буде називатися "hd0", а диск "hdb" буде позначатися "hd1" і т. д.

В системі Hurd, як і в дистрибуції BSD, розділи диска називаються "slices" (відрізки) і нумеруються, починаючи з одиниці. Тому, щоб сформувати ім'я для певного розділу диска, береться ім'я диска, до нього додається суфікс "s" і слідом за ним додається номер розділу. Знову таки, це схоже на іменування дисків і розділів в Linux за винятком того що там немає префіксу "s", а для позначення диска використовується буква, а не цифра. Так, для прикладу, "hda1" буде називатися "hd0s1", тобто ім'я диска "hd0s1" - це перший розділ (slice) першого диска типу IDE.

GRUB - це програма початкового завантаження операційної системи. Він використовує зовсім іншу номенклатуру іменування дисків: він отримує від BIOS дані про наявні дисках і перетворює їх в свою внутрішню структуру у форматі масиву. Таким чином диски і розділи нумеруються в GRUB починаючи з нуля. Формат іменування дисків в GRUB такий: "(<диск>, <розділ>)". Тому ім'я "hd (0, 1)" позначає другий розділ на першому диску, який був виявлений засобами BIOS самого комп'ютера. [8] Оскільки GRUB на даний момент має функції tab-доповнення, користувачеві GRUB не потрібно докладати багато зусиль для іменування диска і розділу.


Примітки

  1. What Is the GNU Hurd? - www.gnu.org / software / hurd / hurd / what_is_the_gnu_hurd.html (Англ.) . Gnu.org. Читальний - www.webcitation.org/61FqFfpnt з першоджерела 27 серпня 2011.
  2. Origin Of the Name - www.gnu.org / software / hurd / hurd / what_is_the_gnu_hurd / origin_of_the_name.html (Англ.) . Gnu.org. Читальний - www.webcitation.org/61FqGIVvS з першоджерела 27 серпня 2011.
  3. John Ribeiro "Free Software Sees Gnu Loose of Linux" - www.pcworld.com/news/article/0, aid, 88464,00. asp (Англ.) . PC World (12 березня 2002р.). Читальний - www.webcitation.org/61FqH4zNx з першоджерела 27 серпня 2011.
  4. Porting the Hurd to L4: Hurd/L4 - www.gnu.org/software/hurd/history/port_to_l4.html
  5. http://people.debian.org/ ~ sthibault/hurd-i386/installer/cdimage / - people.debian.org / ~ sthibault/hurd-i386/installer/cdimage / - поточна версія
  6. GNU chapters - bee.es.gnu.org /
  7. Arch Hurd - archhurd.org /
  8. У GRUB2 нумерація розділів (slice) починається з одиниці. Таким чином другий розділ на першому диску буде мати ім'я hd (0,2).