Автор работы: Пользователь скрыл имя, 01 Июля 2013 в 17:54, курсовая работа
Цель работы состоит в рассмотрении различных типов архитектур ядер операционных систем и выявлении различий.
Поставленная цель позволила сформулировать задачи:
1) ознакомиться с основными видами архитектур ядер операционной системы;
2) рассмотреть понятие, касающиеся операционной системы;
3) выявить преимущества и недостатки ядер.
Объект исследования – ядра операционных систем.
ВВЕДЕНИЕ 3
1 ОБЩИЕ СВЕДЕНИЯ О ЯДРЕ ОПЕРАЦИОННОЙ СИСТЕМЫ 4
2 ТИПЫ АРХИТЕКТУР ЯДЕР ОПЕРАЦИОННЫХ СИСТЕМ, ИХ ПРЕИМУЩЕСТВА И НЕДОСТАТКИ 7
2.1 Монолитное и модульное ядра 7
2.2 Микро и экзо ядра 10
2.3 Гибридное и Наноядра 14
3 ЯДРА, ИСПОЛЬЗУЕМЫЕ РАЗЛИЧНЫМИ ОПЕРАЦИОННЫМИ СИСТЕМАМИ 17
3.1 Монолитное и модульное ядра 17
3.2 Микро и экзо ядра 17
3.3 Гибридное и Наноядра 19
ЗАКЛЮЧЕНИЕ 21
ЛИТЕРАТУРА 22
Достоинства микроядерной архитектуры заключаются в теоретически большей надёжности по сравнению с монолитным ядром, так как ошибка в одном из системных компонентов не оказывает влияния на другие компоненты, поскольку они выполняются в разных адресных пространствах и защищены друг от друга. Кроме того, подобную систему проще отлаживать. Недостаток — значительно большие накладные расходы на организацию взаимодействия компонентов системы между собой.
В действительности всё обстоит сложнее. В частности, микроядерная архитектура не является панацеей от всех бед, поскольку определённые сбои всё равно будут носить фатальный характер, когда нормальное восстановление работоспособности после них окажется невозможным (например, сбой, приводящий к разрушению информации о выполняющихся в системе процессах). Кроме того, «идеальная» микроядерная система окажется очень медленной, поэтому на практике микроядро, как правило, реализует значительно больший набор функций, чем простое обеспечение коммуникации между разными компонентами системы. В результате провести абсолютно чёткую и формальную границу между микроядерной системой и ОС с монолитным модульным ядром не представляется возможным, и деление здесь больше интуитивное: если основные функции ядра сосредоточены в собственно ядре, то перед нами система с модульным ядром, а если часть основных функций реализуется отдельными программами, то это микроядерная система [11].
Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.
К ним относятся:
Все остальные сервисы
ОС, в классических монолитных ядрах
предоставляемые
Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
И чтобы добавить в ОС с микроядром драйвер того или иного устройства, не надо перекомпилировать всё ядро, а надо лишь отдельно откомпилировать этот драйвер и запустить его в пользовательском пространстве.
В то же время микроядерная
архитектура операционной системы
вносит дополнительные накладные расходы,
связанные с обменом
Микроядра типа ядра ОС Minix и GNU Hurd развиваются медленно, гораздо медленнее, чем Linux и ядро систем семейства BSD. По словам создателя Minix3, Таненбаума, он пытается «построить сверхнадёжную (very highly reliable) систему. Она может использоваться в том числе на серверах, которым необходимы годы безотказной работы».
Недостаток — плата за принудительное «переключение» процессов в ядре (переключение контекста); этот факт собственно и объясняет трудности в проектировании и написании ядер подобной конструкции. Эти недостатки способны обойти ОС, использующие архитектуру экзоядра, являющуюся дальнейшим развитием микроядерной архитектуры.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы.
Недостатки: Передача данных между процессами требует накладных расходов.
Экзоядро — ядро операционной системы компьютеров, предоставляющее лишь функции для взаимодействия между процессами и безопасного выделения и освобождения ресурсов.
В традиционных операционных системах ядро предоставляет не только минимальный набор сервисов, обеспечивающих выполнение программ, но и большое количество высокоуровневых абстракций для использования разнородных ресурсов компьютера: оперативной памяти, жестких дисков, сетевых подключений. В отличие от них, ОС на основе экзоядра предоставляет лишь набор сервисов для взаимодействия между приложениями, а также необходимый минимум функций, связанных с защитой: выделение и высвобождение ресурсов, контроль прав доступа, и т. д. Экзоядро не занимается предоставлением абстракций для физических ресурсов — эти функции выносятся в библиотеку пользовательского уровня (так называемую libOS) [13].
Основная идея операционной
системы на основе экзоядра состоит
в том, что ядро должно выполнять
лишь функции координатора для небольших
процессов, связанных только одним
ограничением — экзоядро должно иметь
возможность гарантировать
Архитектуры на основе экзоядер
являются дальнейшим развитием и
усовершенствованием
2.3 Гибридное и Наноядра
Наноядро — архитектура
ядра операционной системы компьютеров,
в рамках которой крайне упрощённое
и минималистичное ядро выполняет
лишь одну задачу — обработку аппаратных
прерываний, генерируемых устройствами
компьютера. После обработки прерываний
от аппаратуры наноядро, в свою очередь,
посылает информацию о результатах
обработки (например, полученные с клавиатуры
символы) вышележащему программному обеспечению
при помощи того же механизма прерываний.
Также часто реализуют
В некотором смысле концепция наноядра близка к концепции HAL — Hardware Abstraction Layer, предоставляя вышележащему ПО удобные механизмы абстракции от конкретных устройств и способов обработки их прерываний.
Наиболее часто в современных компьютерах наноядра используются для виртуализации аппаратного обеспечения реальных компьютеров или для реализации механизма гипервизора, с целью позволить нескольким или многим различным операционным системам работать одновременно и параллельно на одном и том же компьютере. Например, VMware ESX Server реализует собственное наноядро, не зависимое от ОС и устанавливаемое на «голое железо». Поверх этого наноядра работают пользовательские и административные утилиты VMware и сами операционные системы, виртуализируемые в ESX Server.
Наноядра также могут
использоваться для обеспечения
переносимости (портабельности) операционных
систем на разное аппаратное обеспечение
или для обеспечения
Наноядро может быть настолько маленьким и примитивным, что даже важнейшие устройства, находящиеся непосредственно на материнской плате или на плате контроллера встраиваемого устройства, такие, как таймер или программируемый контроллер прерываний, обслуживаются специальными драйверами устройств, а не непосредственно ядром. Такого рода сверхминималистичные наноядра называют иногда пикоядрами.
Термин «наноядро» иногда неформально используется для описания очень маленьких, упрощённых и лёгких микроядер, таких, как L4.
Гибридные ядра это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра.
Имеют «гибридные» достоинства и недостатки.
Все рассмотренные подходы
к построению операционных систем имеют
свои достоинства и недостатки. В
большинстве случаев
Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим
Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйвера устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер.
3.1 Монолитное и модульное ядра
Примером могут послужить традиционные ядра UNIX (такие как BSD), ядро KolibriOS.
KolibriOS - операционная система
для PC, полностью написанная на
ассемблере fasm, распространяемая на
условиях GPL. Создана на основе MenuetOS.
Является альтернативной
BSD (англ. Berkeley Software Distribution) —
система распространения
Ядра Linux в настоящее время
имеют более модульную
3.2 Микро и экзо ядра
Классическим примером микроядерной системы является Symbian OS. Это пример распространенной и отработанной микроядерной (a начиная c версии Symbian OS v8.1, и наноядерной) операционной системы.
Создателям Symbian OS удалось
совместить эффективность и концептуальную
стройность, несмотря на то что современные
версии этой системы предоставляют
обширные возможности, в том числе
средства для работы c потоковыми данными,
стеками протоколов, критичными к
латентности ядра, графикой и видео
высокого разрешения). Разработчики Symbian
вынесли практически все
В ОС Windows NT версий 3.х микроядерная
архитектура с сервисным
ОС Windows CE (и созданные
на ее основе сборки, такие, как Windows Mobile),
будучи практически полностью
Реализацию экзоядерной архитектуры можно рассмотреть на примере XOK/ExOS — экспериментальной связки собственно экзоядра XOK и библиотечной операционной системы ExOS. Данный тандем, а вместе с ним разнообразные пользовательские программы и инструментальные средства Unix составляют дистрибутив exopc. Дистрибутив до сих пор не самодостаточен, и чтобы получить "почти" работающую систему (с учетом текущей стадии проекта), необходимо всего лишь обзавестись одним из вариантов Linux или *BSD для выполнения сборки — причем, так как в exopc используется бинарный формат, аналогичный OpenBSD, в Linux придется применять кросс-компилятор.
3.3 Гибридное и Наноядра
Фирма Apple Computer использовала наноядро в версии Mac OS Classic для PowerPC для того, чтобы транслировать аппаратные прерывания, генерировавшиеся их компьютерами на базе процессоров PowerPC в форму, которая могла «пониматься» и распознаваться Mac OS. Альтернативой было бы полное переписывание и портирование кода Mac OS на PowerPC при переходе на них. Позднее, в эпоху Mac OS 8.6, наноядро виртуализировало предоставляемые PowerPC мультипроцессорные возможности и обеспечивало поддержку SMP в Mac OS.