encyklopedia.space

Kernel

Kernel (pol. jądro) jest centralną częścią systemu operacyjnego, odpowiedzialną za zarządzanie zasobami komputera oraz udostępnianie ich procesom i wątkom działającym w systemie. To właśnie kernel zapewnia abstrakcję sprzętu, kontrolę nad pamięcią, planowanie procesów, obsługę przerwań i interfejsy systemowe.

Definicja

Kernel to najniższy poziom oprogramowania, który działa w trybie uprzywilejowanym (tryb jądra) i ma bezpośredni dostęp do procesora, pamięci operacyjnej, urządzeń I/O oraz innych elementów fizycznych komputera.

Historia

Początki koncepcji kernela sięgają wczesnych lat 1960 i 1970, kiedy powstawały pierwsze systemy wielozadaniowe, takie jak Multics i Unix. W 1984 roku Linus Torvalds rozpoczął pracę nad projektem Linux, tworząc monolityczny kernel, który stał się podstawą jednego z najpopularniejszych systemów operacyjnych.

Rodzaje architektur kernela

W zależności od sposobu organizacji kodu i podziału funkcji, wyróżnia się trzy główne typy architektur:

  • Monolityczny – wszystkie podstawowe usługi (zarządzanie pamięcią, system plików, sterowniki) są zintegrowane w jednym dużym obrazie binarnym.
  • Mikrokernel – minimalny zestaw funkcji (głównie obsługa przerwań i komunikacji międzyprocesowej) pozostaje w przestrzeni jądra; pozostałe usługi działają w trybie użytkownika.
  • Hybrydowy – łączy zalety obu podejść; elementy krytyczne są częścią monolitu, a niekrytyczne – moduły działające w przestrzeni użytkownika (np. Windows NT).

Główne funkcje kernela

Funkcja Opis
Planowanie procesów Decyzje o przydziale czasu procesora poszczególnym procesom i wątkom (proces, wątek).
Zarządzanie pamięcią Alokacja i zwalnianie pamięci, wirtualizacja pamięci (pamięć wirtualna), ochrona pamięci.
Obsługa systemu plików Interfejsy do odczytu i zapisu danych na nośnikach (systemy plików).
Komunikacja międzyprocesowa (IPC) Mechanizmy wymiany danych pomiędzy procesami (potoki, kolejki, semafory, pamięć współdzielona).
Obsługa przerwań Reagowanie na sygnały sprzętowe i programowe, delegowanie ich do odpowiednich sterowników.
Bezpieczeństwo i izolacja Kontrola dostępu, tryby ochronne, sandboxing.

Przykłady popularnych kernelów

Kernel w systemach wbudowanych i czasu rzeczywistego

W systemach wbudowanych oraz systemach czasu rzeczywistego (RTOS) kernel musi spełniać dodatkowe wymagania: deterministyczny czas reakcji, małe zużycie pamięci oraz możliwość działania na ograniczonych zasobach. Przykłady: FreeRTOS, VxWorks.

Rozwój i przyszłość

Obecnie trwają prace nad dalszym modularizowaniem kerneli, zwiększaniem bezpieczeństwa (np. SELinux, AppArmor) oraz integracją z technologiami wirtualizacji (KVM, Hyper‑V). Wspólnota open‑source kontynuuje rozwój kernelu Linuksa, wprowadzając nowe architektury procesorów (ARM, RISC‑V) oraz funkcje takie jak eBPF.

Powiązane pojęcia

System operacyjny • Proces • Wątek • Pamięć wirtualna • Sterownik urządzenia • Komunikacja międzyprocesowa • Bezpieczeństwo systemu

Bibliografia

  1. Andrew S. Tanenbaum, Operating Systems: Design and Implementation, 3. wyd., Prentice Hall, 2006.
  2. Robert Love, Linux Kernel Development, 3. wyd., Addison‑Wesley, 2010.
  3. Microsoft Docs, Windows NT Architecture, dostępny w wewnętrznej bazie wiedzy Microsoft.