Mikrojądro w OperaSystem tingu: Archistruktura, zalety

Zanim nauczymy się MicroKernel, zrozummy:

Co to jest jądro?

Jądro jest ważną częścią systemu operacyjnego zarządzającą zasobami systemowymi. Działa również jako pomost pomiędzy oprogramowaniem i sprzętem komputera. Jest to jeden z pierwszych programów, który jest ładowany podczas uruchamiania systemu po bootloaderze. Jądro jest również odpowiedzialne 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 jest oprogramowaniem lub kodem, który zawiera wymaganą minimalną liczbę funkcji, danych i cech do wdrożenia systemu operacyjnego. Zapewnia minimalną liczbę mechanizmów, która jest wystarczająca do uruchomienia najbardziej podstawowych funkcji systemu operacyjnego. Umożliwia wdrożenie innych części systemu operacyjnego, ponieważ nie narzuca wielu zasad.

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 obsługuje wszystkie podstawowe usługi systemowe, takie jak zarządzanie procesem, Zarządzanie pamięcią, komunikacja we/wy i obsługa przerwań, system plików itp. w przestrzeni jądra.

W tym typie podejścia Kernel cały system operacyjny działa jako pojedynczy program w trybie kernela. System operacyjny jest napisany jako zbiór procedur, które są połączone w duży wykonywalny program binarny.

Mikrojądro Architektura

Mikrojądro jest najważniejszą częścią dla prawidłowej implementacji systemu operacyjnego. Na poniższym diagramie widać, że mikrojądro spełnia podstawowe operacje, takie jak pamięć, mechanizmy planowania procesów i komunikacja międzyprocesowa.

Mikrojądro Architektura
Oparty na mikrojądrze Operasystemu

Mikrojądro to jedyne oprogramowanie działające na poziomie uprzywilejowanym. Inne ważne funkcje systemu operacyjnego są usuwane z trybu jądra i uruchamiane w trybie użytkownika. Funkcjonalnościami tymi mogą być sterowniki urządzeń, aplikacje, serwery plików, komunikacja międzyprocesowa itp.

Składniki mikrojądra

Mikrojądro obejmuje jedynie podstawowe funkcjonalności systemu. Komponent jest zawarty w Mikrojądrze tylko wtedy, gdy umieszczenie go na zewnątrz zakłóciłoby funkcjonalność systemu. Wszystkie inne, mniej istotne komponenty należy ustawić 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 także 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 jednej 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
Bezpieczeństwo 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, SymbianK42, Mac OS X, Integrity, itp.

Zalety mikrojądra

Oto zalety/korzyści korzystania z mikrojądra

  • Architektura mikrojądra jest mała i odizolowana, co pozwala jej lepiej funkcjonować.
  • Mikrojądra są bezpieczne, ponieważ uwzględniają tylko te komponenty, które mogą zakłócić funkcjonowanie systemu.
  • Rozbudowa systemu jest bardziej przystępna, dzięki czemu można ją dodać do aplikacji systemowej bez ingerencji w Kernel.
  • Mikrojądra są modułowe i różne moduły można wymieniać, przeładowywać i modyfikować nawet bez dotykania jądra.
  • Mniej awarii systemu w porównaniu z systemami monolitycznymi.
  • Interfejs mikrojądra pomaga wymusić bardziej modułową strukturę systemu.
  • Bez ponownej kompilacji dodaj nowe funkcje
  • Awaria serwera jest również izolowana, jak awaria każdego innego programu użytkownika.
  • System mikrojądra jest elastyczny, dlatego różne strategie i API, wdrażane przez różne serwery, mogą współistnieć w systemie.
  • Zwiększone bezpieczeństwo i stabilność spowodują zmniejszenie ilości kodu działającego w trybie jądra

Wady mikrojądra

Oto wady/wady korzystania z mikrojądra:

  • Świadczenie usług w systemie mikrojądra jest drogie w porównaniu do normalnego systemu monolitycznego.
  • Przełączenie kontekstu lub wywołanie funkcji potrzebne, gdy sterowniki są zaimplementowane odpowiednio jako procedury lub procesy.
  • Wydajność systemu mikrojądra może być obojętna i może prowadzić do pewnych problemów.

Podsumowanie

  • Jądro jest ważną częścią systemu operacyjnego zarządzającą zasobami systemowymi.
  • Mikrojądro to oprogramowanie lub kod zawierający minimalną liczbę funkcji, danych i cech wymaganych do wdrożenia systemu operacyjnego.
  • W podejściu z jądrem monolitycznym cały system operacyjny działa jako pojedynczy program w trybie jądra
  • Mikrojądro jest najważniejszym elementem prawidłowej implementacji systemu operacyjnego.
  • Mikrojądro obejmuje jedynie podstawowe funkcjonalności systemu.
  • Jądro monolityczne to duży proces działający w jednej przestrzeni adresowej, podczas gdy mikrojądro można podzielić na osobne procesy zwane serwerami.
  • Architektura mikrojądra jest mała i odizolowana, dlatego może lepiej funkcjonować
  • Świadczenie usług w systemie mikrojądra jest drogie w porównaniu do normalnego systemu monolitycznego