GNU Hurd

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
GNU Hurd
Hurd-logo.png
HURD Live CD.pngHURD Live CD
Розробник Thomas Bushnell
Roland McGrath
Marcus Brinkmann
та інші
Родина ОС POSIX-сумісний клон Unix
Модель сирцевого коду вільне програмне забезпечення
Останній стабільний випуск 0.5/ 27 вересня 2013; 452 дні тому
Тип ядра мікроядро
Ліцензія GPL
Веб-сайт www.gnu.org

GNU Hurd — офіційне ядро операційної системи GNU. Використовує мікроядерну архітектуру. Є вільним програмним забезпеченням. Проект має за мету створення комплексу системних програм-серверів, що функціонують подібно ядру операційної системи, і здатні замінити ядро UNIX в Unix-подібній операційній системі GNU. Розробка Hurd ведеться з 1990, але поки що проект далекий від завершення.

Назва[ред.ред. код]

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

GNU/HURD — назва операційної системи від проекту GNU, що використовує GNU Hurd як ядро. Назву побудовано за аналогією з «GNU/Linux», що застосовується для операційних систем GNU на ядрі Linux. Використовується, коли потрібно явно вказати на відміну від GNU/Linux. Наприклад, проект Debian використовує його в назві ОС Debian GNU/Hurd,[1] щоб відрізнити її від інших своїх систем на основі GNU — Debian GNU/Linux та Debian GNU/kFreeBSD.

Ідеї Hurd[ред.ред. код]

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

Особливий клас серверів — транслятори. GNU MIG (Mach Interface Generator), є інструментом для трансляції файлів-визначень RPC(Remote Procedure Call) в код на мові Сі, яка потрібна для компіляції будь-якого пакету, що приймає або відправляє RPC-виклики, у тому числі для GNU Mach, GNU Hurd і GNU C Library (glibc).

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

Статус розробки[ред.ред. код]

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

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

В цей час (червень 2010) існує дистрибутив Debian GNU/Hurd L1, випущений в жовтні 2009 року[4]. У 2005 році розроблявся інший дистрибутив під назвою Bee GNU/Hurd. Цей проект, судячи з усього, мертвий, так як останній snapshot (версія 0.3 beta Bee 1) у системі CVS датований 22 грудня 2005.[5] Також, нещодавно (квітень—травень 2010) з'явився новий дистрибутив на базі GNU/Hurd та ArchlinuxArch Hurd.[6]

Іменування дисків в 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 самого комп'ютера.[7] Оскільки GRUB в наш час має функції tab-доповнення, користувачеві не потрібно докладати багато зусиль для визначення коректного значення імені диску та розділу.

Примітки[ред.ред. код]

  1. Debian — Debian GNU/Hurd
  2. Free Software Sees Gnu Loose of Linux — PCWorld
  3. Porting the Hurd to L4: Hurd/L4
  4. http://ftp.debian-ports.org/debian-cd/current/ — поточна версія
  5. GNU chapters
  6. Arch Hurd
  7. У GRUB2 нумерація розділів (slice) починається з одиниці. Таким чином другий розділ на першому диску буде мати ім'я hd (0,2).

Посилання[ред.ред. код]


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.