Микроядро в Operating система: Archiтекстура, предимства
⚡ Умно обобщение
Микроядрото е минимално ядро на операционната система, което съхранява само основни функции - управление на паметта, планиране на процеси и комуникация между процесите - в пространството на ядрото, докато драйверите на устройства, файловите сървъри и други услуги работят отделно в потребителското пространство.

Преди да научим за микроядрото, нека разберем:
Какво е Kernel?
Ядрото е важна част от операционната система, която управлява системните ресурси. То действа и като мост между софтуера и хардуера на компютъра. То е една от първите програми, които се зареждат при стартиране след буутлоудъра. Ядрото е отговорно и за осигуряването на сигурен достъп до хардуера на машината за различни програми. То също така решава кога и колко дълго дадено приложение използва специфичен хардуер.
Какво е Microkernel?
Микроядрото е софтуер или код, който съдържа необходимия минимален брой функции, данни и характеристики за имплементиране на операционна система. То предоставя минимален брой механизми, което е достатъчно за изпълнение на най-основните функции на операционната система. То позволява имплементирането на други части на операционната система, тъй като не налага много правила.
Микроядрата и техните потребителски среди обикновено се внедряват в C++ or C езици за програмиране с малко сглобяване. Въпреки това, други езици за изпълнение са възможни с известно кодиране на високо ниво.
Какво е монолитно ядро?
Монолитно ядро изпълнява всички основни системни услуги, като например управление на процесите, управление на паметта, входно/изходна комуникация и обработка на прекъсвания, файлова система и др., в пространството на ядрото.
При този тип подход към ядрото, цялата операционна система работи като една програма в режим на ядрото. Операционната система е написана като съвкупност от процедури, които са свързани помежду си в голяма изпълнима двоична програма.
Микроядро Archiтекстура
Микроядрото е най-важната част за правилното внедряване на операционна система. Както можете да видите на диаграмата по-долу, микроядрото изпълнява основни операции като памет, механизми за планиране на процеси и комуникация между процесите.
Базиран на микроядро Operaтинг система
Микроядрото е единственият софтуер, изпълняван на привилегировано ниво. Другите важни функционалности на операционната система са премахнати от режим на ядрото и се изпълняват в потребителски режим. Тези функционалности могат да бъдат драйвери на устройства, приложения, файлови сървъри, комуникация между процеси и др.
Компоненти на Microkernel
Микроядрото обхваща само основните функционалности на системата. Даден компонент се включва в микроядрото само ако поставянето му извън него би прекъснало функционалността на системата. Всички останали несъществени компоненти трябва да бъдат поставени в потребителски режим.
Минималните функционалности, необходими за микроядрото, са:
- Управление на паметта Механизми като адресни пространства трябва да бъдат включени в микроядрото. То съдържа и функции за защита на паметта.
- Механизмите за планиране на процесора трябва да съдържат планировчици на процеси и нишки.
- Комуникацията между процесите управлява сървърите, които управляват свои собствени адресни пространства.
Разлика между микроядрото и монолитното ядро
| параметри | Монолитно ядро | Микроядро |
|---|---|---|
| Basic | Това е голям процес, изпълняващ се в едно адресно пространство. | Той може да бъде разделен на отделни процеси, наречени сървъри. |
| Code | За да се напише монолитно ядро, е необходим по-малко код. | За да се напише микроядро, е необходим повече код. |
| Охрана | Ако дадена услуга се срине, цялата система се срива в монолитно ядро. | Ако дадена услуга се срине, това никога не засяга работата на микроядрото. |
| общуване | Това е един статичен двоичен файл. | Сървърите комуникират чрез IPC. |
| Пример | Linux, BSD, Microsoft Windows (95, 98, Аз), Solaris, OS-9, AIX, DOS, XTS-400 и др. | L4Linux, QNX, Symbian, K42, Mac OS X, IntegrityИ др |
Предимства на Microkernel
Ето плюсовете/ползите от използването на микроядро:
- Микроядрената архитектура е малка и изолирана, следователно може да функционира по-добре.
- Микроядрата са сигурни, защото са включени само онези компоненти, които иначе биха нарушили функционалността на системата.
- Разширяването на системата е по-достъпно, така че може да се добави към системното приложение, без да се нарушава ядрото.
- Микроядрата са модулни и различните модули могат да бъдат заменяни, презареждани или модифицирани, без дори да се докосва ядрото.
- По-малко системни сривове в сравнение с монолитни системи.
- Интерфейсът на микроядрото ви помага да наложите по-модулна системна структура.
- Нови функции могат да се добавят без прекомпилиране.
- Неизправността на сървъра също е изолирана, точно както неизправността на всяка друга потребителска програма.
- Микроядрената система е гъвкава, така че различни стратегии и API, внедрени от различни сървъри, могат да съществуват едновременно в системата.
- Повишената сигурност и стабилност са резултат от намаленото количество код, изпълняван в режим на ядрото.
Недостатъци на микроядрото
Ето недостатъците/минусите на използването на микроядро:
- Предоставянето на услуги в микроядрена система е скъпо в сравнение с нормална монолитна система.
- Превключване на контекст или извикване на функция е необходимо, когато драйверите са имплементирани съответно като процедури или процеси.
- Производителността на системата с микроядро може да бъде безразлична и да доведе до някои проблеми.

