
- •2. Загрузчик операционной системы
- •2.1. Пример реализации загрузчика для моей операционной системы
- •3. Ядро. Типы ядер. Достоинства и недостатки
- •3.1. Разновидности типов ядер
- •3.1.1. Монолитное ядро
- •3.1.2. Микроядро
- •3.1.3. Экзоядро
- •3.1.4. Наноядро
- •3.1.5. Гибридное ядро
- •3.2. Пример реализации главного модуля моей операционной системы
- •4. Файловая система
- •4.1. Функции файловой системы
- •4.2. Классификация файловых систем
- •4.3. Пример реализации файловой системы для моей ос.
- •5. Система ввода-вывода
- •5.1. Основные концепции системы ввода–вывода
- •5.1.1.2. Прерывания
- •5.1.1.3. Прямой доступ к памяти
- •5.1.2.1. Программная составляющая ввода-вывода
- •5.1.2.2. Обработчики прерываний
- •5.1.2.3. Драйверы устройств
- •5.1.2.5. Пользовательские программы (верхний уровень)
- •6. Командный интерпретатор
- •6.1. Командный интерпретатор с текстовым интерфейсом
- •6.1.1. Функции командного интерпретатора типа командная строка.
- •6.2. Графическая оболочка
- •6.2.1. Функции графической оболочки.
- •7. Программное обеспечение
- •7.1. Классификация программного обеспечения
- •7.1.1. Системное программное обеспечение
- •7.1.2. Прикладное программное обеспечение
- •7.1.3. Инструментальное программное обеспечение
3. Ядро. Типы ядер. Достоинства и недостатки
3.1. Разновидности типов ядер
Ядра операционных систем бывают следующих типов:
- монолитное ядро,
- микроядро,
- экзоядро,
- наноядро,
- гибридное ядро.
3.1.1. Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем.
Достоинства: Скорость работы, упрощённая разработка модулей.
Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы.
3.1.2. Микроядро
Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
Недостатки: Передача данных между процессами требует накладных расходов.
3.1.3. Экзоядро
Экзоядро — ядро операционной системы, предоставляющее лишь функции для взаимодействия между процессами, безопасного выделения и освобождения ресурсов. Предполагается, что программный интерфейс для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры).
Достоинства (теория): Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной операционной системы, например, реализация систем управления базами данных будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.
Недостатки: Для обеспечения одновременного выполнения нескольких прикладным программ им нельзя предоставлять доступ для прямого управления памятью. Слишком низкий уровень предоставляемых абстракций может оказать пагубное влияние на переносимость прикладных программ, а реализация достаточно высокоуровневых абстрактных функций в предоставляемых программам системных библиотеках не даёт ощутимых преимуществ по сравнению с реализацией их в виде системных вызовов, выполняемых ядром операционной системы.