Операционные системы - статьи

         

Истинное микроядро


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

Сообщения передаются через "шину сообщений", по которой проходят все сигналы по подключению и отключению программных компонент "на лету". Следствие из общей шины сообщений - это экстраполяция локального IPC на процессорные кластеры. Если одно ваше приложение вызывает другое через системный вызов (а иных возможностей фактически и нет), то IPC прозрачно транслируется на другой процессор - и в результате приложения общаются тоже прозрачно. Применение кластерного механизма - доступ к ресурсам другого процессора, такого как файловые системы, устройства или сетевые подключения, без включения сетевых протоколов (кроме встроенного в ядро протокола Qnet). На основе такого доступа можно строить экстремально "тонкие" клиенты, все ресурсы получающие по сети. Протокол Qnet будет осуществлять маршрутизацию и баланс сетевого трафика - прозрачно для приложений. Сам Qnet работает практически через любую среду, например Ethernet или Internet (конечно, такой IPC будет крайне зависимым от среды).

Помимо процессорных кластеров, QNX поддерживает также и SMP для отдельных потоков - естественно, что приложение должно быть спроектировано для многопоточной среды, чтобы получить выгоду от работы на нескольких процессорах. Использование SMP можно комбинировать с Qnet для построения кластеров как одно-, так и много- процессорных систем - перекомпиляции приложений не потребуется.



Содержание раздела