Преимущества и недостатки микроядерной архитектуры

Операционные системы, основанные на концепции микроядра, удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и возможностью поддержки распределенных приложений.

Высокая степень переносимости - весь машинно-зависимый код изолирован в микроядре, поэтому для переноса системы на новый процессор требуется меньше изменений и все они логически сгруппированы вместе.

Расширяемость в высокой степени. В традиционных системах даже при наличии многослойной структуры нелегко удалить один слой и поменять его на другой по причине множественности и размытости интерфейсов между слоями. Добавление новых функций и изменение существующих требует хорошего знания операционной системы и больших затрат времени. Ограниченный набор четко определенных интерфейсов микроядра позволяет расширять ОС. Добавление новой подсистемы требует разработки нового сервера ОС и не затрагивает целостность микроядра. Микроядерная структура позволяет также сокращать число компонентов операционной системы. Обычно традиционные операционные системы позволяют динамически добавлять в ядро или удалять из ядра только драйверы внешних устойств. При микроядерном подходе конфигурируемость ОС не требует особых мер - достаточно изменить файл с настройками начальной конфигурации системы или же остановить не нужные больше серверы в ходе работы обычными для остановки приложений средствами.

Использование микроядерной модели повышает надежность ОС. Каждый сервер выполняется в виде отдельного процесса в своей собственной области памяти и защищен от других серверов операционной системы, что не наблюдается в традиционной ОС, где все модули ядра могут влиять друг на друга. И если отдельный сервер терпит крах, то он может быть перезапущен без останова или повреждения остальных серверов ОС. Поскольку серверы выполняются в пользовательском режиме, они не имеют непосредственного доступа к аппаратуре и не могут модифицировать память, в которой хранится и работает микроядро. Другим потенциальный источник повышения надежности ОС - уменьшенный объем кода микроядра по сравнению с традиционным ядром и это снижает вероятность появления ошибок программирования.

Модель с микроядром хорошо подходит для поддержки распределенных вычислений, так как использует механизмы, аналогичные сетевым: взаимодействие клиентов и серверов путем обмена сообщениями. Серверы микроядерной ОС могут работать как на одном, так и на разных компьютерах. В этом случае при получении сообщения от приложения микроядро может обработать его самостоятельно и передать локальному серверу или же переслать по сети микроядру, работающему на другом компьютере. Переход к распределенной обработке требует минимальных изменений в работе операционной системы - локальный транспорт заменяется на сетевой.

Производительность. При классической организации ОС (рисунок 5, а) выполнение системного вызова сопровождается двумя переключениями режимов, а при микроядерной организации (рисунок 5, б) - четырьмя.

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

Рисунок 5 - Смена режимов при выполнении системного вызова

Для того чтобы микроядерная операционная система по скорости не уступала операционным системам на базе монолитного ядра, требуется очень аккуратно проектировать разбиение системы на компоненты, стараясь минимизировать взаимодействие между ними. Таким образом, основная сложность при создании микроядерных операционных систем — необходимость очень аккуратного проектирования.

Наноядро — архитектура ядра операционной системы компьютеров, в рамках которой упрощённое ядро выполняет лишь одну задачу - обработку аппаратных прерываний, генерируемых аппаратурой. После обработки прерываний от аппаратуры наноядро посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему ПО при помощи того же механизма прерываний.

В некотором смысле концепция наноядра близка к концепции HAL, предоставляя вышележащему ПО удобные механизмы абстракции от конкретных устройств и способов обработки их прерываний.

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

Наноядра также могут использоваться для обеспечения переносимости ОС на разное аппаратное обеспечение или для обеспечения возможности запуска «старой» операционной системы на новом, несовместимом аппаратном обеспечении без ее полного переписывания. Например, фирма Apple Computer использовала наноядро в версии MacOS Classic для PowerPC для того, чтобы транслировать аппаратные прерывания, генерировавшиеся их компьютерами на базе процессоров PowerPC в форму, которая могла «пониматься» и распознаваться MacOS для процессоров Motorola 680x0. Таким образом, наноядро эмулировало для MacOS «старое» 680x0 железо. Альтернативой было бы полное переписывание и портирование кода MacOS на PowerPC при переходе с 680x0 на них. Другие удачные примеры использования наноядерных архитектур включают наноядро Adeos, работающее как модуль ядра для Linux и позволяюшее выполнять одновременно с Linux какую-либо ОС реального времени.

Термин «наноядро» иногда неформально используется для описания очень маленьких, упрощённых микроядер, таких, как L4.

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

Гибридное ядро (Hybrid kernel) - модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.

Гибридное ядро представляет смешанный подход использования монолитной и микроядерной архитектуры.

Наиболее тесно элементы микроядерной архитектуры и элементы монолитного ядра переплетены в ядре Windows NT. Хотя Windows NT часто называют микроядерной операционной системой, это не совсем так. Микроядро NT слишком велико (более 1 Мбайт, кроме того, в ядре системы находится, например, ещё и модуль графического интерфейса), чтобы носить приставку «микро». Компоненты ядра Windows NT взаимодействуют друг с другом путем передачи сообщений, как и положено в микроядерных операционных системах. В то же время все компоненты ядра работают в одном адресном пространстве и активно используют общие структуры данных, что свойственно операционным системам с монолитным ядром. По мнению специалистов Microsoft, причина проста: чисто микроядерный дизайн коммерчески невыгоден, поскольку неэффективен.

Таким образом, Windows NT можно с полным правом назвать гибридной операционной системой.

Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер.

Примеры: Windows NT (Windows NT, 2000, 2003; XP, Vista, Seven), DragonFlyBSD, NetWare, BeOS, ReactOS.

Гипервизор - программа или аппаратная схема, обеспечивающая или позволяющая одновременное, параллельное выполнение нескольких немодифицированных ОС на одном и том же компьютере. Гипервизор обеспечивает изоляцию ОС друг от друга, защиту и безопасность, разделение ресурсов между различными запущенными ОС и управление ресурсами.

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

Гипервизор сам по себе в некотором роде является минимальной операционной системой (микроядром или наноядром). Он предоставляет запущенным под его управлением ОС сервис виртуальной машины, виртуализируя или эмулируя реальное (физическое) аппаратное обеспечение конкретной машины, и управляет этими виртуальными машинами, выделением и освобождением ресурсов для них.

Виртуальная машина – программная или аппаратная среда, выполняющая некоторый код. Обычно виртуальная машина эмулирует работу реального компьютера. На компьютере может функционировать несколько виртуальных машин.

Гипервизор позволяет независимое «включение», перезагрузку, «выключение» любой из виртуальных машин с той или иной ОС. При этом ОС, работающая в виртуальной машине под управлением гипервизора не знает, что она выполняется в виртуальной машине, а не на реальном аппаратном обеспечении.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: