Czym jest jądro systemu Linux?
Jądro Linux® jest głównym składnikiem systemu operacyjnego Linux (OS) i stanowi podstawowy interfejs między sprzętem komputera a jego procesami. Komunikuje się między nimi, zarządzając zasobami tak efektywnie, jak to tylko możliwe.
Jądro jest tak nazwane, ponieważ – jak ziarno w twardej skorupie – istnieje wewnątrz systemu operacyjnego i kontroluje wszystkie główne funkcje sprzętu, niezależnie od tego, czy jest to telefon, laptop, serwer, czy jakikolwiek inny rodzaj komputera.
Co robi jądro
Jądro ma 4 zadania:
- Zarządzanie pamięcią: Śledzenie, ile pamięci jest używane do przechowywania czego i gdzie
- Zarządzanie procesami: Określa, które procesy mogą korzystać z centralnej jednostki obliczeniowej (CPU), kiedy i jak długo
- Sterowniki urządzeń: Działają jako mediator/interpreter między sprzętem a procesami
- Wywołania systemowe i bezpieczeństwo: Odbierają żądania usług od procesów
Jądro, jeśli jest poprawnie zaimplementowane, jest niewidoczne dla użytkownika, pracując w swoim własnym małym świecie znanym jako przestrzeń jądra, gdzie przydziela pamięć i śledzi, gdzie wszystko jest przechowywane. To, co widzi użytkownik – przeglądarki internetowe i pliki – znane jest jako przestrzeń użytkownika. Aplikacje te wchodzą w interakcję z jądrem za pośrednictwem interfejsu wywołania systemowego (SCI).
Pomyśl o tym w ten sposób. Jądro jest zajętym osobistym asystentem dla potężnej władzy wykonawczej (sprzętu). Zadaniem asystenta jest przekazywanie wiadomości i żądań (procesów) od pracowników i społeczeństwa (użytkowników) do władzy wykonawczej, pamiętanie, co jest przechowywane gdzie (pamięć), oraz określanie, kto ma dostęp do władzy wykonawczej w danym czasie i na jak długo.
Gdzie jądro pasuje do systemu operacyjnego
Aby umieścić jądro w kontekście, można pomyśleć o maszynie Linux jako posiadającej 3 warstwy:
- Sprzęt: Fizyczna maszyna – spód lub podstawa systemu, składająca się z pamięci (RAM) i procesora lub centralnej jednostki obliczeniowej (CPU), a także urządzeń wejścia/wyjścia (I/O), takich jak pamięć masowa, sieć i grafika. Procesor wykonuje obliczenia, odczytuje dane z pamięci i zapisuje je do niej.
- Jądro systemu Linux: Rdzeń systemu operacyjnego. (Widzisz? Jest w samym środku.) Jest to oprogramowanie rezydujące w pamięci, które mówi procesorowi, co ma robić.
- Procesy użytkownika: Są to działające programy, którymi zarządza jądro. Procesy użytkownika są tym, co wspólnie tworzą przestrzeń użytkownika. Procesy użytkownika są również znane jako po prostu procesy. Jądro pozwala również tym procesom i serwerom komunikować się ze sobą (znane jako komunikacja międzyprocesowa, lub IPC).
Kod wykonywany przez system działa na procesorach w 1 z 2 trybów: tryb jądra lub tryb użytkownika. Kod działający w trybie jądra ma nieograniczony dostęp do sprzętu, podczas gdy tryb użytkownika ogranicza dostęp do procesora i pamięci do SCI. Podobna separacja istnieje dla pamięci (przestrzeń jądra i przestrzeń użytkownika). Te 2 małe szczegóły tworzą podstawę dla niektórych skomplikowanych operacji, takich jak separacja przywilejów dla bezpieczeństwa, budowanie kontenerów i maszyn wirtualnych.
To również oznacza, że jeśli proces zawiedzie w trybie użytkownika, szkody są ograniczone i mogą być odzyskane przez jądro. Jednakże, z powodu dostępu do pamięci i procesora, awaria procesu jądra może spowodować awarię całego systemu. Ponieważ istnieją zabezpieczenia i uprawnienia wymagane do przekraczania granic, awarie procesów użytkownika zazwyczaj nie powodują zbyt wielu problemów.
Dlaczego warto wybrać Red Hat?
W Red Hat, Linux jest podstawą wszystkiego co robimy. Red Hat jest drugim co do wielkości korporacyjnym współtwórcą jądra Linux, wnosząc ze sobą doświadczenie i wiedzę z 25 lat oraz dużą społeczność partnerów, klientów i ekspertów z całej branży. To długa relacja, z historią i poziomem doświadczenia, który jest trudny do zdobycia.