W informatyce, czym jest jądro?

W większości komputerowych systemów operacyjnych centralnym elementem jest jądro. Stanowi pomost między użytkownikiem a aplikacjami i sprzętem komputerowym. Jest to również mechanizm, który pozwala komputerowi obsługiwać jednocześnie wielu użytkowników i wiele zadań. Rodzaje jąder to jądro monolityczne, mikrojądro, jądro hybrydowe, nanojądro i egzokernel.

Jądro zarządza wszystkimi zasobami systemowymi komputera. Obejmuje to pamięć długoterminową, jednostkę centralną (CPU), pamięć krótkoterminową oraz urządzenia wejściowe i wyjściowe. Gdy aplikacja potrzebuje jednego z tych zasobów, jądro udostępnia ten zasób i kończy żądanie.

Taka obsługa zasobów pozwala systemom operacyjnym być zarówno wieloużytkownikowym, jak i wielozadaniowym. System operacyjny w rzeczywistości nie wykonuje jednocześnie więcej niż jednego zadania. Zamiast tego jądro przełącza zadania z tak dużą szybkością, że komputer wydaje się wykonywać wiele zadań. Jądro jest również odpowiedzialne za upewnienie się, że zasoby używane przez jednego użytkownika lub proces nie są naruszane przez żądanie innego użytkownika lub procesu.

Istnieją dwa główne typy jąder to monolityczne jądro i mikrojądro. Jądra monolityczne wykorzystują nadzorczą metodę zarządzania zasobami, w której wszystkie usługi systemu operacyjnego są uruchamiane w tej samej przestrzeni adresowej, zwanej przestrzenią jądra. Niektóre jądra monolityczne mogą ładować i zwalniać moduły wykonywalne. Rozszerza to możliwości systemu operacyjnego, jednocześnie utrzymując minimalną ilość kodu uruchomionego w przestrzeni jądra w dowolnym momencie.

Mikrojądra uruchamiają tylko minimalną ilość usług systemu operacyjnego, takich jak zarządzanie pamięcią, zarządzanie wątkami i komunikacja między procesami w przestrzeni jądra. Wszystkie inne usługi, takie jak sterowniki urządzeń, interfejsy użytkownika i zarządzanie plikami, są uruchamiane w przestrzeni użytkownika. Mikrojądro poważnie minimalizuje ilość kodu działającego w trybie jądra.

Jądro hybrydowe to połączenie monolitycznego i mikrojądra. Większość usług systemowych systemu operacyjnego jest uruchamiana w przestrzeni jądra, podobnie jak jądro monolityczne. Istnieją inne usługi, takie jak system plików i system okien, które są uruchamiane w przestrzeni użytkownika.
Inne typy jądra to nanojądro i egzokernel. Nanojądro wykorzystuje sterowniki urządzeń do obsługi prawie wszystkich usług. Exokernel używa programów do przydzielania zasobów fizycznych.