~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 83F69BE7B4C0B46F9AE3A349A87298E9__1713777000 ✰
Заголовок документа оригинал.:
✰ GNU Hurd - Wikipedia ✰
Заголовок документа перевод.:
✰ GNU Hurd — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/GNU_Hurd ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/83/e9/83f69be7b4c0b46f9ae3a349a87298e9.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/83/e9/83f69be7b4c0b46f9ae3a349a87298e9__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 08:12:09 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 22 April 2024, at 12:10 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

GNU Hurd — Википедия Jump to content

ГНУ Херд

Из Википедии, бесплатной энциклопедии
ГНУ Херд
Разработчик Проект GNU
Томас Бушнелл
Роланд МакГрат
Маркус Бринкманн
Нил Уолфилд
Сэмюэл Тибо
Написано в Сборка , С
Семейство ОС Unix-подобный
Рабочее состояние Текущий
Исходная модель Бесплатно программное обеспечение
Начальная версия 1990 год ; 34 года назад ( 1990 )
Последний релиз 0.9 [1]  Отредактируйте это в Викиданных / 18 декабря 2016 г.
Репозиторий
Платформы x86-64 , IA-32 , i686 , ARM [2]
ядра Тип Многосерверное микроядро
Лицензия GPL-2.0 или новее [3]
Официальный веб-сайт www .gnu .org /программное обеспечение /Хёрд /

GNU Hurd — это набор серверов микроядра , написанных как часть GNU для микроядра GNU Mach . Он разрабатывается с 1990 года проектом GNU Project Фонда свободного программного обеспечения и предназначен для замены ядра Unix . [4] и выпущено как бесплатное программное обеспечение под лицензией GNU General Public License . Когда ядро ​​Linux оказалось жизнеспособным решением, развитие GNU Hurd замедлилось, временами чередуясь между застоем и возобновлением активности и интереса. [5]

Конструкция Hurd состоит из набора протоколов и серверных процессов (или демонов , в терминологии Unix), которые работают на микроядре GNU Mach. [4] Hurd стремится превзойти ядро ​​Unix по функциональности, безопасности и стабильности, оставаясь при этом в значительной степени совместимым с ним. Проект GNU выбрал многосерверное микроядро [6] для операционной системы из-за очевидных преимуществ по сравнению с традиционной архитектурой монолитного ядра Unix , [7] точка зрения, которую отстаивали некоторые разработчики в 1980-х годах. [5]

[ править ]

В декабре 1991 года главный архитектор Херда описал это название как взаимно рекурсивный акроним : [8]

Пришло время объяснить значение слова «Хёрд». «Хёрд» означает «Хирд демонов, заменяющих Unix». И затем «Хирд» означает «Хёрд интерфейсов, представляющих глубину». Насколько мне известно, у нас есть первое программное обеспечение, названное парой взаимно рекурсивных сокращений.

Поскольку и hurd , и hird являются омофонами английского слова herd , полное название GNU Hurd также представляет собой игру слов herd of gnus , отражающую принцип работы ядра. [9]

Логотип называется « Коробки Херда» и также отражает архитектуру. Логотип представляет собой граф, где узлы представляют серверы ядра Hurd, а направленные ребра — это сообщения IPC . [8]

История развития [ править ]

Ричард Столлман основал проект GNU в сентябре 1983 года с целью создания свободной GNU операционной системы . Первоначально были написаны компоненты, необходимые для разработки ядра: редакторы , оболочка , компилятор , отладчик и т. д. К 1989 году лицензия GPL , и единственным важным компонентом, отсутствовавшим, было ядро. появилась [10] [11]

Разработка Hurd началась в 1990 году после отказа от попытки ядра в 1986 году на основе исследовательской операционной системы TRIX , разработанной профессором Стивом Уордом и его группой в Массачусетского технологического института Лаборатории компьютерных наук (LCS). [12] По словам Томаса Бушнелла , первоначального архитектора Hurd, их первоначальный план заключался в адаптации ядра 4.4BSD -Lite, и, оглядываясь назад, «теперь для меня совершенно очевидно, что это было бы великолепно, и мир стал бы совсем другим местом. сегодня." [13] В 1987 году Ричард Столлман предложил использовать микроядро Маха , разработанное Ричардом Рашидом в Университете Карнеги-Меллон . Работа над этим была отложена на три года из-за неуверенности в том, выпустит ли CMU код Маха под подходящей лицензией. [12]

С выпуском ядра Linux GNU в 1991 году основным пользователем компонентов пользовательского пространства вскоре стали операционные системы, основанные на ядре Linux ( дистрибутивы Linux ), что привело к появлению термина GNU/Linux .

Разработка Hurd шла медленно. Несмотря на оптимистичное заявление Столлмана в 2002 году, предсказывающее выпуск GNU/Hurd позднее в том же году, [14] Hurd по-прежнему не считается подходящим для производственных сред. Разработка в целом не оправдала ожиданий, и по-прежнему существует значительное количество ошибок и недостающих функций. [15] В результате продукт получился хуже, чем многие, включая Столлмана, ожидали. [16] В 2010 году, после двадцати лет разработки, Столлман сказал, что он «не очень оптимистичен в отношении GNU Hurd. Он добился некоторого прогресса, но для того, чтобы стать действительно превосходным, потребуется решить множество глубоких проблем», но добавил, что «завершение его не имеет решающего значения» для системы GNU, поскольку свободное ядро ​​уже существовало ( Linux ), и завершение Hurd не решило бы главную оставшуюся проблему свободной операционной системы: поддержку устройств. [17]

Проект Debian , среди прочих, работал над проектом Hurd по созданию двоичных дистрибутивов операционных систем GNU на основе Hurd для систем , совместимых с IBM PC .

После нескольких лет застоя разработка снова активизировалась в 2015 и 2016 годах: за эти два года было выпущено четыре релиза. [18] но с тех пор больше нет.

20 августа 2015 года, во время Google Summer of Code , было объявлено, что GNU Guix был портирован на GNU Hurd. [19]

Архитектура [ править ]

Общая структура монолитных, микроядерных и гибридных операционных систем на основе ядра соответственно.

В отличие от большинства Unix-подобных ядер, Hurd использует архитектуру сервер-клиент , построенную на микроядре , которое отвечает за предоставление самых основных служб ядра — координацию доступа к оборудованию : ЦП (посредством управления процессами и планирования ), ОЗУ (через управление памятью ) и другие различные ввода-вывода устройства (посредством планирования ввода- вывода) для звука, графики, запоминающих устройств и т. д. Теоретически конструкция микроядра позволит построить все драйверы устройств как серверы, работающие в пользовательском пространстве . но сегодня большинство драйверов такого типа все еще содержатся в GNU Mach пространстве ядра . [20]

По мнению разработчиков Hurd, главным преимуществом проектирования на основе микроядра является возможность расширения системы: разработка нового модуля не потребует глубоких знаний остальной части ядра, а ошибка в одном модуле не приведет к сбою всей системы. . Херд предлагает концепцию трансляторов — структуру модулей, используемых для расширения функциональности файловой системы. [21]

С самого начала Hurd разрабатывался с использованием GNU Mach в качестве микроядра. Это было техническое решение, принятое Ричардом Столлманом , который думал, что оно ускорит работу за счет экономии значительной ее части. Он признал, что ошибался в этом вопросе. [22] Другие Unix-подобные системы, работающие на микроядре Mach, включают OSF/1 , Lites и MkLinux . macOS и NeXTSTEP используют гибридные ядра на базе Mach.

Другие микроядра [ править ]

Начиная с 2004 года, предпринимались различные попытки перенести Hurd на более современные микроядра. Микроядро L4 было первоначальным выбором в 2004 году, но прогресс замедлился и остановился. Тем не менее, в 2005 году разработчик Hurd Нил Уолфилд завершил первоначальную структуру управления памятью для порта L4/Hurd, а Маркус Бринкманн портировал важные части glibc ; а именно, заставить код запуска процесса работать, позволяя запускать программы, что позволяет запускать первые пользовательские программы (тривиальные, такие как программа hello world ) на C.

С 2005 года Бринкманн и Уолфилд начали исследовать Coyotos как новое ядро ​​для HURD. [23] [24] В 2006 году Бринкманн встретился с Джонатаном Шапиро (главным архитектором операционной системы Coyotos), чтобы помочь и обсудить использование ядра Coyotos для GNU/Hurd. В ходе дальнейшего обсуждения разработчики HURD поняли, что Coyotos (как и другие подобные ядра) не подходят для HURD. [25]

В 2007 году разработчики Hurd Нил Уолфилд и Маркус Бринкманн выступили с критикой архитектуры Hurd, известной как «критика». [26] и предложение о том, как можно спроектировать будущую систему, известное как «документ с изложением позиции». [27] В 2008 году Нил Уолфилд начал работу над микроядром Viengoos как современным родным ядром для HURD. По состоянию на 2009 год , разработка Viengoos приостановлена ​​из-за того, что Уолфилду не хватает времени на работу над ним. [28]

Тем временем другие продолжают работать над вариантом Херда, разработанным Маха. [29]

Расширения Unix [ править ]

Ряд традиционных концепций Unix заменены или расширены в Hurd.

В Unix каждая запущенная программа имеет связанный с ней идентификатор пользователя , который обычно соответствует пользователю, запустившему процесс . Этот идентификатор во многом определяет действия, разрешенные программе. Ни один внешний процесс не может изменить идентификатор пользователя запущенной программы. С другой стороны, процесс Hurd выполняется под набором идентификаторов пользователей, которые могут содержать несколько идентификаторов, один или ни одного. Процесс с достаточными привилегиями может добавлять и удалять идентификаторы другого процесса. Например, существует сервер паролей, который будет выдавать идентификаторы в обмен на правильный пароль для входа.

Что касается файловой системы , то подходящая программа может быть назначена транслятором отдельного файла или всей иерархии каталогов. Каждый доступ к переведенному файлу или файлам ниже иерархии во втором случае фактически обрабатывается программой. Например, переводчик файлов может просто перенаправить операции чтения и записи в другой файл, например, по символической ссылке Unix . Эффект монтирования Unix достигается за счет настройки транслятора файловой системы (с помощью команды settrans). Переводчики также могут использоваться для предоставления услуг пользователю. Например, переводчик ftpfs позволяет пользователю инкапсулировать удаленные FTP-сайты в каталог. Затем стандартные инструменты, такие как ls , cp и rm , можно использовать для управления файлами в удаленной системе. Еще более мощными переводчиками являются такие, как UnionFS , который позволяет пользователю объединить несколько каталогов в один; таким образом, список единого каталога раскрывает содержимое всех каталогов.

Hurd требуется мультизагрузочный загрузчик Для , такой как GRUB .

Архитектура серверов [ править ]

Согласно документации Debian, существует 24 сервера (18 основных серверов и 6 серверов файловой системы), названных следующим образом: [30]

Основные серверы [ править ]

  • auth ( сервер аутентификации ): Получает запросы и пароли от программ и присваивает им идентификатор, который меняет привилегии программы.
  • сбой ( сервер сбоя ): обрабатывает все фатальные ошибки.
  • eieio (сервер переводов): TODO
  • exec (сервер выполнения): преобразует исполняемый образ (в настоящее время ELF и a.out ) в исполняемый образ в памяти. поддерживаются
  • fifo ( переводчик FIFO ): реализует именованные каналы.
  • new-fifo (новый сервер FIFO): альтернативный сервер для именованных каналов.
  • Firmlink (переводчик твердых ссылок): реализует твердые ссылки ‒ «на полпути между символической ссылкой и жесткой ссылкой ». [31]
  • fwd (сервер пересылки): перенаправляет запросы на другие серверы, используемые серверами fifo и символических ссылок.
  • hostmux (хост-сервер-мультиплексор)
  • ifsock (сервер для интерфейса сокетов): помогает с адресами сокетов домена UNIX.
  • init ( сервер инициализации ): базовая загрузка и настройка системы.
  • Magic ( магический сервер): сигнализирует о том, что поиск имени должен быть разрешен внутри процесса, если результат включает состояние процесса.
  • null (нулевой сервер): реализует /dev/null и /dev/zero.
  • pfinet (сервер pfinet): реализует семейство протоколов PF_INET.
  • pflocal (сервер pflocal): реализует сокеты домена UNIX .
  • proc (сервер процессов): назначает PID и управляет действиями на уровне процесса.
  • symlink ( переводчик символических ссылок ): реализует символические ссылки для файловых систем, которые их не поддерживают.
  • термин (сервер терминалов): терминал POSIX .
  • usermux (сервер-мультиплексор пользователей): вызывает трансляторы, специфичные для пользователя.

Серверы файловой системы [ править ]

ext2fs
ext2 Переводчик файловой системы . Он получает дисковые блоки от микроядра и передает приложениям файлы и каталоги.
isofs
Переводчик файловой системы ISO 9660 . Преобразует блоки CD или DVD в файлы и каталоги для приложений.
нфс
См. Сетевая файловая система .
ftpfs
Транслятор файловой системы протокола передачи файлов .
магазин
Переводчик памяти.

Серверы совместно реализуют POSIX API , причем каждый сервер реализует часть интерфейса. Например, каждый из различных серверов файловой системы реализует вызовы файловой системы. Сервер хранения будет работать как оберточный уровень, аналогичный блочному уровню Linux. Эквивалент VFS в Linux достигается с помощью библиотек libdiskfs и libpager.

Дистрибутивы GNU использующие , Hurd

Debian GNU/Hurd с Xfce

на основе Hurd Дистрибутивы GNU включают:

См. также [ править ]

Ссылки [ править ]

  1. ^ «Выпущены GNU Hurd 0.9, GNU Mach 1.8, GNU MIG 1.8» . Проверено 11 мая 2018 г.
  2. ^ «GNU Hurd портирован на AArch64 и другие новости Hurd» . osnews.com . Проверено 22 апреля 2024 г.
  3. ^ «КОПИРОВАНИЕ — hurd/hurd.git — Hurd» . Git.savannah.gnu.org . Проверено 25 февраля 2019 г.
  4. ^ Перейти обратно: а б «Что такое GNU Hurd?» . ГНУ . Проверено 4 марта 2010 г.
  5. ^ Перейти обратно: а б Тоцци, Кристофер (20 апреля 2015 г.). «30 лет спустя, HURD жив: GNU обновляет ядро ​​Unix с открытым исходным кодом» . Парень из ВАР . Архивировано из оригинала 24 апреля 2015 г.
  6. ^ «Что такое мультисерверное микроядро?» . ГНУ. 13 апреля 2013 г. Проверено 11 августа 2015 г.
  7. ^ "преимущества" . ГНУ . Проверено 7 декабря 2011 г.
  8. ^ Перейти обратно: а б Вервлёсем, Коэн (7 июля 2010 г.). «Хёрд: поиски GNU идеального ядра» . LWN.net . Проверено 5 октября 2012 г.
  9. ^ «GNU Hurd: Происхождение названия» . ГНУ . Проверено 4 марта 2010 г.
  10. ^ Хиллесли, Ричард (30 июня 2010 г.). «GNU HURD: измененные видения и потерянные обещания» . Проверено 1 октября 2012 г.
  11. ^ «Linux и проект GNU» . ГНУ . 26 января 2010 г. Проверено 4 марта 2010 г.
  12. ^ Перейти обратно: а б «История GNU Hurd, «Как это началось» » . ГНУ . Проверено 27 августа 2006 г.
  13. ^ Салюс, Питер . «Демон, GNU и Пингвин» . Проверено 8 августа 2006 г.
  14. ^ Рибейро, Джон (11 марта 2002 г.). «Свободное программное обеспечение видит отсутствие GNU в Linux» . Мир ПК . Архивировано из оригинала 22 сентября 2016 г. Проверено 5 октября 2012 г.
  15. ^ "Положение дел" . ГНУ . Проверено 4 марта 2010 г.
  16. ^ Столлман, Ричард (9 марта 2006 г.). «Движение за свободное программное обеспечение и будущее свободы» (ogg) . Фонд свободного программного обеспечения . Загреб . Еще в 1990 году люди считали этот способ самым чистым из возможных способов проектирования ядер. Ну, потребовалось много-много лет, чтобы это ядро ​​вообще заработало, и оно до сих пор работает не очень хорошо, и это Похоже, что в этой конструкции могут быть фундаментальные проблемы, о которых еще в 1990 году никто не знал.
  17. ^ Столлман, Ричард (29 июля 2010 г.). «РМС АМА» . Реддит . Проверено 7 декабря 2011 г.
  18. ^ «Фонд свободного программного обеспечения меняет приоритеты — SD Times» . СД Таймс . 17 января 2017 г. Проверено 17 апреля 2017 г.
  19. ^ Рагкусис, Манолис (20 августа 2015 г.). «[Обновление GSoC] Портирование Guix на GNU/Hurd» (список рассылки). guix-devel . Проверено 20 августа 2015 г.
  20. ^ Косулос, Константин (21 марта 2007 г.). "Re: Драйверы устройств в Маха?" . bug-hurd (список рассылки).
  21. ^ Доппнер, Томас В. (20 декабря 2010 г.). Подробно об операционных системах: проектирование и программирование . Джон Уайли и сыновья. п. 160. ИСБН  978-0-471-68723-8 . Проверено 29 ноября 2012 г.
  22. ^ Столлман, Ричард (12 октября 2000 г.). «В защиту Красной шляпы» . Линукс сегодня . Проверено 7 декабря 2011 г. Я беру на себя полную ответственность за техническое решение о разработке ядра GNU на основе Маха, решение, которое, по-видимому, было причиной медленности разработки. Я думал, что использование Маха ускорит работу и сэкономит нам большую часть работы, но я ошибался.
  23. ^ Шапиро, Джонатан С. (27 октября 2005 г.). "Re: Комментарий по поводу смены ядер" . l4-hurd (список рассылки).
  24. ^ Бахманн, Том (7 июля 2006 г.). «Re: seL4, L4.sec и беспорядок с койотами» . l4-hurd (список рассылки).
  25. ^ «Портирование Херда на другое микроядро» . ГНУ Херд . Фонд свободного программного обеспечения . Проверено 6 мая 2017 г.
  26. ^ Уолфилд, Нил Х.; Бринкманн, Маркус (июль 2007 г.). «Критика многосерверной операционной системы GNU Hurd» (PDF) . ГНУ . Проверено 7 декабря 2011 г.
  27. ^ Уолфилд, Нил Х.; Бринкманн, Маркус (4 января 2007 г.). «Улучшение удобства использования посредством декомпозиции доступа и уточнения политики» (PDF) . ГНУ . Проверено 7 декабря 2011 г.
  28. ^ "виенгус" . ГНУ . Проверено 4 марта 2010 г.
  29. ^ «Что случилось с микроядрами L4/Coyotos/viengoos?» . ГНУ . Проверено 7 января 2011 г.
  30. ^ «Предварительное описание пользовательского интерфейса GNU/Hurd» . Дебиан . 10 октября 1996 г. Проверено 4 марта 2010 г.
  31. ^ «GNU/Hurd — Документация» . Дебиан. 10 октября 1996 г. Проверено 12 июля 2012 г.
  32. ^ «GNU Hurd/hurd/run/distrib» . ГНУ . 03.05.2015 . Проверено 21 сентября 2017 г.
  33. ^ «GNU Hurd/hurd/running/live cd» . ГНУ . 9 апреля 2013 г. Проверено 21 сентября 2017 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 83F69BE7B4C0B46F9AE3A349A87298E9__1713777000
URL1:https://en.wikipedia.org/wiki/GNU_Hurd
Заголовок, (Title) документа по адресу, URL1:
GNU Hurd - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)