Проект GNU Hurd: основные концепции ядра
Содержание:
1. История Hurd;
2.Основные концепции ядра (Вы читаете данный раздел);
3. GNU Hurd в наши дни.
Исторический путь, который прошло ядро GNU Hurd, привел к специфической реализации. В основе Hurd лежит GNU Mach -реализация микроядра Mach, созданная в рамках GNU. Поскольку Mach - микроядро, выполняющее лишь базовые функции (управление задачами и памятью, ввод/вывод, взаимодействие процессов) и не позволяющее обрабатывать системные вызовы, потребовалась надстройка. Именно ей, этой надстройкой, и стало ядро GNU Hurd.
Основные особенности Hurd:
- межпроцессное взаимодействие (IPC), основанное на концепции «порта». Порт - это очередь сообщений микроядра Mach, которая ассоциирована с задачей Mach и является основным средством взаимодействия клиента и сервера. В качестве последних выступают процессы, которые обмениваются сообщениями. Порты могут быть «делегированы» посредством IPC-сообщения, в котором будет содержаться информация о правах;
- использование концепции «порта» позволило наделять пользователей привилегиями, которыми в обычной ситуации владеет только ядро (например, из пространства пользователя можно обращаться к устройствам);
- все драйверы устройств должны быть включены в ядро;
- небольшой объем ядра за счет перемещения большого количества кода в непривилегированный режим;
- использование IPC для доступа к ядру (например, в Linux используются сигналы и системные вызовы).
Кстати, многие модификации Linux на основе GNU Hurd могут без особых проблем ответить на вопрос, что лучше плазма или жк (http://televizor-info.ru/eto-interesno/plazma-ili-zhk-kakoj-televizor-luchshe.html)? Дело в том, что данные системы отлично обрабатывают видео в высоком качестве и программные продукты, поддерживающие HD-разрешение!
В общем, отличительная особенность Hurd - его микроядерная архитектура. На практике - это «серверы» (микропрограммы), работающие поверх Mach и взаимодействующие между собой, а также с программами, запущенными пользователем, посредством сообщений.
Строго говоря, «микроядерность» Hurd в некотором смысле относительна. Поскольку микроядро Mach создавалось очень давно, оно было ориентировано на слабые процессоры. В частности, это привело к тому, что вызывает резонные вопросы у тех, кто знаком с понятием микроядра. Дело в том, что драйверы аппаратного обеспечения в случае Mach должны быть включены в само ядро и не могут быть помещены в пользовательское пространство из-за медленно работающего IPC. Об этой проблеме можно почитать, например, здесь: http://lists.qnu.orq/archive/html/buq-hurd/2007-03/msq00085.html.
1. История Hurd;
2.
3. GNU Hurd в наши дни.
Исторический путь, который прошло ядро GNU Hurd, привел к специфической реализации. В основе Hurd лежит GNU Mach -реализация микроядра Mach, созданная в рамках GNU. Поскольку Mach - микроядро, выполняющее лишь базовые функции (управление задачами и памятью, ввод/вывод, взаимодействие процессов) и не позволяющее обрабатывать системные вызовы, потребовалась надстройка. Именно ей, этой надстройкой, и стало ядро GNU Hurd.
Основные особенности Hurd:
- межпроцессное взаимодействие (IPC), основанное на концепции «порта». Порт - это очередь сообщений микроядра Mach, которая ассоциирована с задачей Mach и является основным средством взаимодействия клиента и сервера. В качестве последних выступают процессы, которые обмениваются сообщениями. Порты могут быть «делегированы» посредством IPC-сообщения, в котором будет содержаться информация о правах;
- использование концепции «порта» позволило наделять пользователей привилегиями, которыми в обычной ситуации владеет только ядро (например, из пространства пользователя можно обращаться к устройствам);
- все драйверы устройств должны быть включены в ядро;
- небольшой объем ядра за счет перемещения большого количества кода в непривилегированный режим;
- использование IPC для доступа к ядру (например, в Linux используются сигналы и системные вызовы).
Кстати, многие модификации Linux на основе GNU Hurd могут без особых проблем ответить на вопрос, что лучше плазма или жк (http://televizor-info.ru/eto-interesno/plazma-ili-zhk-kakoj-televizor-luchshe.html)? Дело в том, что данные системы отлично обрабатывают видео в высоком качестве и программные продукты, поддерживающие HD-разрешение!
В общем, отличительная особенность Hurd - его микроядерная архитектура. На практике - это «серверы» (микропрограммы), работающие поверх Mach и взаимодействующие между собой, а также с программами, запущенными пользователем, посредством сообщений.
Строго говоря, «микроядерность» Hurd в некотором смысле относительна. Поскольку микроядро Mach создавалось очень давно, оно было ориентировано на слабые процессоры. В частности, это привело к тому, что вызывает резонные вопросы у тех, кто знаком с понятием микроядра. Дело в том, что драйверы аппаратного обеспечения в случае Mach должны быть включены в само ядро и не могут быть помещены в пользовательское пространство из-за медленно работающего IPC. Об этой проблеме можно почитать, например, здесь: http://lists.qnu.orq/archive/html/buq-hurd/2007-03/msq00085.html.