Mikrojądro w OperaSystem tingu: Archistruktura, zalety
⚡ Inteligentne podsumowanie
Mikrojądro to minimalne jądro systemu operacyjnego, które przechowuje w przestrzeni jądra tylko najistotniejsze funkcje — zarządzanie pamięcią, planowanie procesów i komunikację międzyprocesową, podczas gdy sterowniki urządzeń, serwery plików i inne usługi działają oddzielnie w przestrzeni użytkownika.

Zanim poznamy Microkernel, musimy zrozumieć:
Co to jest jądro?
Jądro jest ważną częścią systemu operacyjnego, która zarządza zasobami systemowymi. Działa również jako pomost między oprogramowaniem a sprzętem komputera. Jest jednym z pierwszych programów ładowanych podczas uruchamiania systemu po uruchomieniu bootloadera. Jądro odpowiada również za zapewnienie bezpiecznego dostępu do sprzętu komputera dla różnych programów. Decyduje również, kiedy i jak długo dana aplikacja korzysta z określonego sprzętu.
Co to jest mikrojądro?
Mikrojądro to oprogramowanie lub kod zawierający minimalną liczbę funkcji, danych i cech wymaganych do wdrożenia systemu operacyjnego. Zapewnia minimalną liczbę mechanizmów, wystarczającą do uruchomienia najbardziej podstawowych funkcji systemu operacyjnego. Umożliwia implementację innych części systemu operacyjnego, ponieważ nie narzuca wielu reguł.
Mikrojądra i ich środowiska użytkownika są zwykle implementowane w C++ or Języki programowania C z odrobiną języka assembly. Jednakże inne języki implementacji są możliwe z pewnym kodowaniem wysokiego poziomu.
Co to jest jądro monolityczne?
Jądro monolityczne uruchamia wszystkie podstawowe usługi systemowe, takie jak: zarządzanie procesem, zarządzanie pamięcią, komunikacja wejścia/wyjścia i obsługa przerwań, system plików itp. w przestrzeni jądra.
W tym podejściu do jądra cały system operacyjny działa jako pojedynczy program w trybie jądra. System operacyjny jest napisany jako zbiór procedur połączonych ze sobą w duży, wykonywalny program binarny.
Mikrojądro Architektura
Mikrojądro jest najważniejszym elementem prawidłowej implementacji systemu operacyjnego. Jak widać na poniższym diagramie, mikrojądro realizuje podstawowe operacje, takie jak zarządzanie pamięcią, mechanizmy planowania procesów i komunikacja międzyprocesowa.
Oparty na mikrojądrze Operasystemu
Mikrojądro to jedyne oprogramowanie działające na poziomie uprzywilejowanym. Pozostałe ważne funkcje systemu operacyjnego są wyłączane z trybu jądra i uruchamiane w trybie użytkownika. Mogą to być sterowniki urządzeń, aplikacje, serwery plików, komunikacja międzyprocesowa itp.
Składniki mikrojądra
Mikrojądro obejmuje wyłącznie podstawowe funkcjonalności systemu. Komponent jest uwzględniany w mikrojądrze tylko wtedy, gdy jego umieszczenie poza nim zakłóciłoby funkcjonowanie systemu. Wszystkie pozostałe, nieistotne komponenty powinny być umieszczone w trybie użytkownika.
Minimalne funkcjonalności wymagane w mikrojądrze to:
- Zarządzanie pamięcią Mechanizmy takie jak przestrzenie adresowe powinny być zawarte w mikrojądrze. Zawiera ono również funkcje ochrony pamięci.
- Mechanizmy planowania procesora powinny zawierać harmonogramy procesów i wątków.
- Komunikacja między procesami zarządza serwerami, które obsługują własne przestrzenie adresowe.
Różnica między mikrojądrem a jądrem monolitycznym
| Parametry | Jądro monolityczne | Mikrojądro |
|---|---|---|
| Basic | Jest to duży proces działający w pojedynczej przestrzeni adresowej. | Można go podzielić na osobne procesy zwane serwerami. |
| Code | Aby napisać monolityczne jądro, potrzeba mniej kodu. | Aby napisać mikrojądro potrzeba więcej kodu. |
| Ochrona | Jeśli usługa ulegnie awarii, cały system zapadnie się w monolityczne jądro. | Jeśli usługa ulegnie awarii, nigdy nie wpływa to na działanie mikrojądra. |
| Komunikacja | Jest to pojedynczy statyczny plik binarny. | Serwery komunikują się przez IPC. |
| Przykład | Linux, BSD, Microsoft Windows (95, 98, Ja), Solaris, OS-9, AIX, DOS, XTS-400 itp. | L4Linux, QNX, Symbian, K42, Mac OS X, Integrity, itp. |
Zalety mikrojądra
Oto zalety i korzyści wynikające ze stosowania mikrojądra:
- Architektura mikrojądra jest mała i odizolowana, co pozwala jej lepiej funkcjonować.
- Mikrojądra są bezpieczne, ponieważ uwzględniają jedynie te komponenty, które w przeciwnym razie mogłyby zakłócić funkcjonowanie systemu.
- Rozszerzalność systemu jest bardziej dostępna, można ją dodawać do aplikacji systemowych bez naruszania jądra.
- Mikrojądra mają budowę modułową, co oznacza, że poszczególne moduły można wymieniać, przeładowywać lub modyfikować, nawet nie ingerując w jądro.
- Mniej awarii systemu w porównaniu z systemami monolitycznymi.
- Interfejs mikrojądra pomaga wdrożyć bardziej modułową strukturę systemu.
- Nowe funkcje można dodać bez konieczności ponownej kompilacji.
- Awaria serwera jest również izolowana, tak jak awaria każdej innej aplikacji użytkownika.
- System mikrojądra jest elastyczny, co oznacza, że różne strategie i interfejsy API implementowane przez różne serwery mogą współistnieć w systemie.
- Większe bezpieczeństwo i stabilność są wynikiem mniejszej ilości kodu wykonywanego w trybie jądra.
Wady mikrojądra
Oto wady/przeciwskazania do stosowania mikrojądra:
- Dostarczanie usług w systemie z mikrojądrem jest droższe w porównaniu do normalnego systemu monolitycznego.
- Gdy sterowniki są implementowane jako procedury lub procesy, konieczna jest zmiana kontekstu lub wywołanie funkcji.
- Wydajność systemu mikrojądra może być obojętna i może prowadzić do pewnych problemów.

