Co to jest jądro w informatyce?
W większości komputerowych systemów operacyjnych jądro jest centralnym komponentem. Jest pomostem między użytkownikiem a aplikacjami i sprzętem komputerowym. Jest to również mechanizm, który pozwala komputerowi obsługiwać wielu użytkowników i wiele zadań jednocześnie. Rodzaje jądra to jądro monolityczne, mikrojądro, jądro hybrydowe, nanokernel i exokernel.
Jądro zarządza wszystkimi zasobami systemowymi komputera. Obejmuje to przechowywanie długoterminowe, jednostkę centralną (CPU), pamięć krótkotrwałą oraz urządzenia wejściowe i wyjściowe. Gdy aplikacja potrzebuje jednego z tych zasobów, jądro udostępnia zasób i realizuje żądanie.
Ta obsługa zasobów pozwala, aby systemy operacyjne były zarówno wieloużytkownikowe, jak i wielozadaniowe. System operacyjny nie wykonuje jednocześnie więcej niż jednego zadania. Zamiast tego jądro przełącza zadania z tak dużą prędkością, że wydaje się, że komputer wykonuje wiele zadań. Jądro jest również odpowiedzialne za upewnienie się, że zasoby używane przez jednego użytkownika lub proces nie zostaną naruszone przez żądanie innego użytkownika lub procesu.
Istnieją dwa główne rodzaje jąder: jądro monolityczne i mikrojądro. Jądra monolityczne wykorzystują nadzorczą metodę zarządzania zasobami, w której wszystkie usługi systemu operacyjnego działają w tej samej przestrzeni adresowej, zwanej przestrzenią jądra. Niektóre monolityczne jądra mogą ładować i zwalniać moduły wykonywalne. To rozszerza możliwości systemu operacyjnego przy jednoczesnym zachowaniu minimalnej ilości kodu działającej w przestrzeni jądra w dowolnym momencie.
Mikrojądra obsługują tylko minimalną liczbę 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 działa w przestrzeni jądra, jak jądro monolityczne. Istnieją inne usługi, takie jak system plików i system okienkowy, które są uruchamiane w przestrzeni użytkownika.
Inne typy jądra to nanokernel i exokernel. Nanokernel używa sterowników urządzeń do obsługi prawie wszystkich usług. Exokernel używa programów do alokacji zasobów fizycznych.