Jak jądro Linux współpracuje w systemie operacyjnym

Kiedy umieścimy jądro Linux w kontekście, możesz pomyśleć o maszynie z Linuksem, która ma 3 warstwy:

  • Sprzęt: maszyna fizyczna – podstawa systemu, składająca się z pamięci (RAM) i procesora lub jednostki centralnej (CPU), a także urządzeń wejścia / wyjścia (I / O), takich jak pamięć masowa, sieć i grafiki. Procesor wykonuje obliczenia, odczytuje i zapisuje w pamięci.
  • Jądro Linuksa: rdzeń systemu operacyjnego. (Widzisz? Jest w samym środku). To oprogramowanie rezydujące w pamięci, które mówi procesorowi, co ma robić.
  • Procesy użytkownika: są to uruchomione programy, którymi zarządza jądro. Procesy użytkownika łącznie tworzą przestrzeń użytkownika. Procesy użytkownika są również nazywane tylko procesami. Jądro umożliwia również tym procesom i serwerom komunikację ze sobą (nazywaną komunikacją międzyprocesową lub IPC).

Kod wykonywany przez system działa na procesorach w 1 z 2 trybów:

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. Podobna separacja istnieje w przypadku pamięci (przestrzeń jądra i przestrzeń użytkownika). Te dwa drobne szczegóły stanowią podstawę niektórych skomplikowanych operacji, takich jak separacja uprawnień dla bezpieczeństwa, budowanie kontenerów i maszyn wirtualnych.

Oznacza to również, że jeśli proces nie powiedzie się w trybie użytkownika, szkody są ograniczone i można je odzyskać przez jądro. Jednak ze względu na dostęp 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 zwykle nie powodują zbyt wielu problemów. Z tego też powodu założenie w/w dwóch kontekstów rozwiązuje wiele skomplikowanych problemów podczas tworzenia oprogramowania. Można dzięki temu ustalić czytelnie, na jakiej warstwie działamy i przydzielić zasoby dla programu jaki tworzymy.

Rozwiązuje to też problem znany i nielubiany problem z konkurencyjnymi systemami operacyjnymi (nie bazującymi na jądrze Linux), tzn. blokada przed przedostaniem się wirusa komputerowego, robaka lub malware do jądra systemu operacyjnego. Oczywiście, regularne łatki bezpieczeństwa, które tworzą wolontariusze z całego świata, wspiera potężnie bezpieczeństwo systemu Linux.

About the author