Jądro Linux jest używane w komputerach na całym świecie od trzech dekad. Ze względu na fakt, że jądro jest używane na różnych platformach, rozwiązanie to można znaleźć niemal wszędzie, np. w komputerach PC, smartfonach, elektronice do noszenia, sprzęcie AGD i urządzeniach sieciowych. W tym artykule przyjrzymy się architekturze jądra, jego głównym zadaniom i interfejsom.
Wiadomo, że kod asemblerowy daje możliwość uzyskania jeszcze większej wydajności, pod względem możliwości jest on nieco ograniczony, lwia część kodu napisana jest w języku C. Udział ten wynosi aż 98%. W języku asemblera zdecydowaliśmy się wykonać jedynie nieistotne wstawki, które nieznacznie zwiększają wydajność, funkcje zależne od architektury oraz loader.
Jaka jest architektura jądra Linux? Poziom dostępu do zasobów komputera zależy w dużej mierze od rodzaju jądra używanego przez system operacyjny. Pod względem uprawnień jądro pozostaje ponad innymi aplikacjami. Biorąc pod uwagę liczbę zadań do wykonania, ich rozwiązanie odbywa się na poziomie jądra, dlatego wyróżniamy ich kilka odmian. Najczęściej spotykane rozwiązanie to monolityczne, mikrojądro i hybrydowe.
Lwia część monolitycznego jądra Linux jest przechowywana w pojedynczym pliku. Ale to jeszcze nie oznacza, że należy do monolitycznego jądra, ale moduły są zdolne do oddzielnego przechowywania. Główną sztuczką jest to, że jądro może obsłużyć wszystkie żądania, ale nie bierze pod uwagę żądań od aplikacji użytkownika. Jądro podejmuje się takich zadań jak:
Pomimo monolitycznej natury jądra, składa się ono z wewnętrznych modułów, które są ładowane w razie potrzeby, a nie pojedynczo. Niektóre moduły są oddzielone od jądra, ale w większości są to sterowniki urządzeń pomocniczych. Jądro jest najbardziej uprzywilejowanym oprogramowaniem na komputerze. Mówiąc konkretnie o jądrze Linuksa, jest ono monolityczne. Jest to najważniejsza rzecz, którą należy wiedzieć na tym etapie.