Kernel jest centralnym składnikiem systemu operacyjnego, który zarządza operacjami komputera i sprzętu. Zasadniczo zarządza operacjami pamięci i czasem procesora. Jest to podstawowy składnik systemu operacyjnego. Kernel działa jako pomost pomiędzy aplikacjami a przetwarzaniem danych na poziomie sprzętowym, wykorzystując komunikację międzyprocesową i wywołania systemowe.
Kernel ładuje się do pamięci jako pierwszy, gdy system operacyjny jest ładowany i pozostaje w pamięci do czasu ponownego zamknięcia systemu operacyjnego. Jest odpowiedzialny za różne zadania, takie jak zarządzanie dyskami, zarządzanie zadaniami i zarządzanie pamięcią.
Decyduje, który proces powinien zostać przydzielony procesorowi do wykonania, a który powinien pozostać w pamięci głównej do wykonania. Zasadniczo działa jako interfejs pomiędzy aplikacjami użytkownika a sprzętem. Głównym celem jądra jest zarządzanie komunikacją pomiędzy oprogramowaniem, tj. aplikacjami poziomu użytkownika, a sprzętem, tj, CPU i pamięcią dyskową.
Cele jądra :
- Ustanawianie komunikacji między aplikacjami poziomu użytkownika a sprzętem.
- Decydowanie o stanie przychodzących procesów.
- Kontrolować zarządzanie dyskami.
- Kontrolować zarządzanie pamięcią.
- Kontrolować zarządzanie zadaniami.
Typy jądra :
1. Kernel monolityczny –
Jest to jeden z typów jądra, gdzie wszystkie usługi systemu operacyjnego działają w przestrzeni jądra. Posiada zależności pomiędzy komponentami systemu. Ma ogromne linie kodu, który jest złożony.
Przykład :
Unix, Linux, Open VMS, XTS-400 etc.
- Zaleta :
Ma dobrą wydajność. - Wada :
Ma zależności między komponentem systemu i linie kodu w milionach.
2. Micro Kernel –
Jest to typ jądra, które ma minimalistyczne podejście. Posiada pamięć wirtualną i planowanie wątków. Jest bardziej stabilny z mniej usług w przestrzeni jądra. Resztę umieszcza w przestrzeni użytkownika.
Przykład :
Mach, L4, AmigaOS, Minix, K42 etc.
- Zaleta :
Jest bardziej stabilny. - Wada :
Jest wiele wywołań systemowych i przełączników kontekstowych.
3. jądro hybrydowe –
Jest to połączenie zarówno jądra monolitycznego i mircrokernel. Posiada szybkość i konstrukcję jądra monolitycznego oraz modularność i stabilność mikrokernela.
Przykład :
Windows NT, Netware, BeOS etc.
- Zaleta :
Łączy w sobie zarówno jądro monolityczne jak i mikrokernel. - Wada :
Jest wciąż podobny do jądra monolitycznego.
4. Exo Kernel –
Jest to typ jądra, który podąża za zasadą end-to-end. Posiada najmniejszą możliwą liczbę abstrakcji sprzętowych. Przydziela fizyczne zasoby do aplikacji.
Przykład :
Nemesis, ExOS etc.
- Zaleta :
Ma najmniej abstrakcji sprzętowych. - Wada :
Więcej pracy dla programistów aplikacji.
5. Nano Kernel –
Jest to typ jądra, który oferuje abstrakcję sprzętową, ale bez usług systemowych. Micro Kernel również nie posiada usług systemowych dlatego Micro Kernel i Nano Kernel stały się analogiczne.
Przykład :
EROS etc.
- Zaleta :
Oferuje abstrakcję sprzętową bez usług systemowych. - Wada :
Jest całkiem taki sam jak Micro Kernel stąd jest mniej używany.