Jądro monolityczne

Jądro monolityczne – rodzaj jądra systemu operacyjnego, w którym większa część funkcji jądra zaimplementowana jest w pojedynczym obrazie pamięci, który ładowany jest na stałe do pamięci komputera przez bootloader. Zdarza się jednak, że do jądra monolitycznego (zwanego wtedy modularnym) dopisywana jest możliwość ładowania modułów, które jednak nie realizują najbardziej podstawowych funkcji jądra.

Model funkcjonowania jądra monolitycznego.

Jądro monolityczne cechuje się wyższą wydajnością niż mikrojądro, zwłaszcza w systemach jednoprocesorowych oraz przy obciążaniu systemu tylko jednym procesem[potrzebny przypis].

Z drugiej strony awaria (np. błąd programisty) w dowolnym miejscu jądra monolitycznego może spowodować awarię całego systemu (np. błędne żądanie dostępu do pamięci w sterowniku każdego, nawet nieistotnego urządzenia, może zniszczyć dane na dysku, albo „zawiesić” cały system), przez co testowanie tych jąder (szczególnie sterowników urządzeń) jest czasochłonne i skomplikowane, a ewentualne luki mogą często być wykorzystane przez crackerów do łamania zabezpieczeń.

Tworzenie systemów czasu rzeczywistego przy pomocy jądra monolitycznego choć możliwe, jest zwykle trudniejsze niż w mikrojądrach, z powodu konieczności zagwarantowania ograniczeń czasowych przez wszystkie komponenty (zwykle przy wykorzystaniu wywłaszczania mało ważnych komponentów, oraz unikanie blokad w postaci semaforów).

Przykładami systemów operacyjnych z jądrem monolitycznym są m.in.:

Postęp w architekturze mikrojąder, wzrost wydajności komputerów, problemy bezpieczeństwa w jądrach monolitycznych oraz wzrost komplikacji i rozmiaru ich kodu (szczególnie w systemach współbieżnych i czasu rzeczywistego), spowodowały, że mikrojądra są coraz częściej wybierane przy tworzeniu systemów operacyjnych (np. Singularity - mikrojądro w języku C#).

Zobacz też edytuj