Showing posts with label гибридное ядро. Show all posts
Showing posts with label гибридное ядро. Show all posts

Thursday, November 16, 2006

Современные тенденции развития операционных систем(Мое выступление)

Мой доклад на конференции в XAИ в 2006 году.
Плакаты были потеряны - остались лишь их упоминания.

Особая благодарность моему научному руководителю Дужему В. И.
за помощь в подготовке к конференции.

Плакат 1.
На сегодняшний день существует довольно большое количество операционных систем. От долгожителей UNIX и его клонов до совсем новых и малоизвестных операционных систем созданных энтузиастами (иногда одним человеком). Все они используют различные концепции и идеи в своих работах. Но для всех операционных систем существуют некоторые базовые требования, которым должны удовлетворять все операционные системы вне зависимости от целей поставленных при их разработке. Такие как:
  • Скорость реакции на изменения в аппаратной архитектуре и концепциях.
  • Удобство использования ( администратора системы для сервера или конечного пользователя для офисного или домашнего компьютера).
На удовлетворение этих требований влияют в значительной степени архитектура операционной системы.
Плакат 2.
Вследствие этого основной задачей поставленной перед этим докладом это исследование существующих архитектур операционных систем, и на основе результатов определить (спрогнозировать) возможность быстрой разработки и дополнения поддержкой новых устройств и технологий в существующих операционных системах.
Плакат 3.
На данный момент существует 2 базовых архитектуры ядра и 3 вида архитектур, которые можно назвать дальнейшим расширением этих архитектур.

Базовые (классические):
  • Микроядро;
  • Монолитное ядро.
Потомки:
  • Экзоядро (похоже на микроядро) ;
  • Модульное (похоже на монолитное);
  • Гибридное ядро (монолитное плюс модульное).

Плакат 4.
Среди ядер можно выделить следующие проблемы:

  1. Неэффективное использование ресурсов из-за не эффективного и не оптимизированного под архитектуру кода, и как следствие невозможности добавления новых возможностей без полной переработки архитектуры системы;
  2. Сложность внесения исправлений и изменений вследствие сложной архитектуры системы;
  3. Отставание от развития аппаратуры вследствие большого объема изменений требуемых для добавления поддержки или нежелания разработчиков аппаратуры и операционной системы распространять информацию о разработанной или разрабатываемой системе;
  4. Для внесения новых возможностей требуется значительное изменение архитектуры системы вследствие того, что разработчики не заложили возможность расширения системы.
Плакат 5.
На плакате 5 рассмотрены основные особенности существующих операционных систем.
Плакат 6.
Микроядро. Главная особенность вынесение некоторых функций из ядра в пространство пользователя, что позволило увеличить стабильность системы, но имеет несколько недостатков, так как компоненты находятся вне ядра нужны дополнительные затраты ресурсов при обмене сообщениями между различными компонентами системы, и дополнительные средства обеспечения безопасности системы. Хотя при этом можно создать систему, где каждый компонент работает в своем адресном пространстве. Существует абстракция от оборудования.
Плакат 7.
Монолитное ядро. Классика среди архитектур ядер. Все компоненты системы находятся в одном адресном пространстве и в одном программном коде. Ядро представляет собой единую и неделимую систему. Существует абстракция от оборудования. Вследствие этого нет возможности подгрузить и исполнить код в пространстве ядра. Но так все находиться в одном пространстве, и компилируется все вместе и размер кода достаточно большой и отладка очень затруднена.
Плакат 8.
Модульное ядро. Базируется на монолитном ядре с применением тех же принципов построения и работы ядра, но появляется возможность загрузки и выгрузки модулей ядра при необходимости. Что позволяет повысить безопасность работы системы (если какого-то компонента в системе нет он не может привести к проблемам) и уменьшить затраты памяти при работе системы. Но при появлении у злоумышленника сформировать и загрузить модуль это может привести к получению злоумышленником полного доступа к системе (хотя если злоумышленник смог получить доступ к загрузке модулей не полный ли это доступ?).
Плакат 9.
Экзоядро - самое молодое из архитектур ядер, близко по концепциям к микроядру. Все компоненты системы вынесены из ядра в пространство пользователя, и ядро выполняет роль арбитра при выполнении различных действий в системе. Минимальное количество функций выполняется на уровне ядра, оно только предоставляет доступ к ресурсам, осуществляет разграничение прав на уровне приложений и минимальное количество функций межпроцессного взаимодействия. Основная идея: ” никаких абстракций на уровне ядра программы могут себе сами создать абстракцию к чему-либо и только в необходимом им объеме, зачем лишние возможности?”
Плакат 10+11.
Гибридное ядро в отличие от предыдущего является расширением монолитного и модульного ядра с использованием абстракции от оборудования. Основная идея: если что-то можно перенести в пространство ядра для повышения скорости, почему бы не перенести? Что привело к новым недостаткам размер ядра большие затраты из-за абстракции от оборудования(хотя не все разработчики драйверов соблюдают эту идею). И из-за работы некоторых частей в ядре системы возникают проблемы безопасности в системе (некоторые частям не требуется такой большой приоритет, но они работают в ядре). Эти проблемы переносятся и в другие системы(LINUX и ATI+NVIDIA).
Плакат 12.
Более оптимальный вариант это объединение всех достоинств ранее рассмотренных систем. Основное единство интерфейсов на всех уровнях. В результате система разделена на две части у одной есть сквозной интерфейс для всех уровней, а у второй предназначен только для пользовательских программ, он аналогичен POSIX или подобному интерфейсу. В результате системные программы драйвера и другие программы могут запускаться на всех 3 уровнях (системный уровень, уровень ядра, уровень пользователя). И базовая часть ядра будет представлять экзоядро с поддержкой этого интерфейса. В результате появляется возможность в зависимости от задач переносить части с уровня на уровень.
Плакат 13.
Выводы:
  • Большинство современных операционных систем не поддерживает возможности расширения и увеличения надежности в зависимости от настроек системы и запуска приложений в изолированном пространстве.
  • В дальнейшее направление исследований изучить возможность модернизации существующих операционных систем в направлении изменения архитектуры ядра и улучшения его характеристик.
  • Наиболее подходящими для усовершенствования являются системы c открытыми кодами и лицензией подобной GPL(LINUX,*BSD).