2

Я видел, что системы, работающие поверх Hurd, начали становиться доступными (а именно Arch Hurd), и мне было интересно, как пользователь, каким бы продвинутым он ни был, может увидеть разницу?

Linux и BSD должны быть примерно одинаковыми, потому что оба они являются монолитным ядром, поэтому единственное отличие должно быть в их системном API.

NB: когда я пишу Linux, я не имею в виду GNU/Linux, так как полагаю, что среда GNU в конечном итоге должна быть одинаковой в обеих системах

РЕДАКТИРОВАТЬ: удалил заявление о BSD, я ничего не знаю об этой системе, и это не суть моего вопроса: $

РЕДАКТИРОВАТЬ 2: Давайте попробуем другой подход: я хорошо знаю GNU/Linux. Что будет отличаться с GNU/Hurd? например,

  • модуль, конечно, не может существовать с микроядром, что эквивалентно? как выглядит драйвер видеокарты?
  • если ядро Hurd (Mach) делегирует основные задачи процессам пользовательского пространства, то что это?
  • кто отвечает за эти основные задачи? (эквивалент супер- init?)

(дополнительный вопрос: относится ли этот вопрос к stackoverflow?)

2 ответа2

1

Херд -> Микроядро

в то время как

Linux -> Монолитное ядро

похоже на разницу ч / б монолитного ядра и микроядра

1 ) Монолитное ядро намного старше Микроядра. Он используется в Unix. Хотя идея микроядра появилась в конце 1980-х годов.

2 ) примером ОС, имеющей монолитные ядра, являются UNIX, LINUX. В то время как ОС, имеющие микроядро, - это QNX, L4, HURD , первоначально Mach (не mac os x), позже она будет преобразована в гибридное ядро, даже MINIX не является чистым ядром, потому что устройство Драйвер скомпилирован как часть ядра.

3 ) Монолитное ядро быстрее микроядра . В то время как первое микроядро Mach на 50% медленнее, чем монолитное ядро, в то время как более поздняя версия, такая как L4, всего на 2% или 4% медленнее, чем монолитное ядро.

4 ) Монолитное ядро обычно громоздкое . В то время как чистое монолитное ядро должно быть небольшого размера, даже вписываться в s в кеш первого уровня процессора (микроядро первого поколения).

5) в ядре монолитного драйвера устройства находятся в пространстве ядра . В то время как в устройстве Microkernel драйвер находится в пользовательском пространстве .

6 ) поскольку драйвер устройства находится в пространстве ядра, это делает монолитное ядро менее защищенным, чем микроядро. (Сбой в драйвере может привести к сбою). Хотя микроядра более безопасны, чем монолитное ядро, следовательно, используется в некоторых военных устройствах.

7 ) Монолитные ядра используют сигналы и сокеты для обеспечения IPC, тогда как микроядерный подход использует очереди сообщений. 1 поколение микроядра плохо реализовало IPC, поэтому переключение контекста происходило медленно.

8 ) добавление новой функции в монолитную систему означает перекомпиляцию всего ядра, в то время как вы можете добавить новую функцию или патчи без перекомпиляции.

0

Почему бы сначала не прочитать о том, что такое HURD: http://www.gnu.org/software/hurd/hurd/what_is_the_gnu_hurd.html

Вкратце (насколько я понимаю) HURD - это ядро, работающее поверх микроядра MACH, позволяющее обновлять даже содержимое ядра HURD без перезагрузки.

Это все хорошо и теоретически, но на практике вы можете заметить только отсутствие поддержки (драйвера) для HURD.

HURD это как BSD и LINUX. , все почти одинаковые, но разные. Все они имеют свои плюсы и минусы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .