osdev.labedz.org

Mikrojądro.

Ideą modelu mikrojądra jest zawarcie w jądrze systemowym jedynie najważniejszych modułów systemu operacyjnego. Najczęściej są to tylko menadżer procesów i komunikacji międzyprocesowej, menadżer pamięci, oraz menadżer przerwań i wyjątków. Wszystkie pozostałe moduły wykonywane są jako procesy użytkownika (oczywiście o odpowiednich uprawnieniach). Komunikacja między tymi procesami i pomiędzy procesami a jądrem systemowym odbywa się jedynie za pomocą komunikacji międzyprocesowej zawartej w menadżerze procesów.

Takie rozwiązanie teoretycznie podnosi stabilność systemu - minimalizacja procedur systemowych zawartych w samym jądrze powoduje jego znaczne uproszczenie, co znacząco wpływa na ilość zawartych w nim błędów. Jakiekolwiek błędy pojawiające się w modułach systemowych z poza jądra systemowego wpływają jedynie na nie same, więc nie powodują utraty stabilności reszty systemu.

Wadą takiego rozwiązania jest zmniejszenie wydajności takiego systemu. System operacyjny oparty na modelu mikrojądra musi wykonać znacznie więcej operacji przełączania kontekstu niż system oparty na jądrze monolitycznym. Spowolnienie systemu powoduje również wolniejsza komunikacja międzymodułowa systemu - przebiega ona jedynie z wykorzystaniem mechanizmów IPC zawartych w jądrze, a nie w sposób bezpośredni. Oczywiście nic nie stoi na przeszkodzie, żeby dobrze zaprojektowany system operacyjny oparty na mikrojądrze był wydajniejszy od 'przeciętnego' systemu opartego na jądrze monolitycznym.

Zastosowanie modelu mikrojądra w znacznym stopniu ułatwia implementację systemu czasu rzeczywistego, w celu zastosowania go w systemach krytycznych.

Przykładem systemu operacyjnego opartego na modelu mikrojądra jest system QNX, czy rodzina systemów Microsoft Windows NT/XP.