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.

TUX - maskotka systemu Linux

About the author

Autor "BIELI" to zapalony entuzjasta otwartego oprogramowania, który dzieli się swoją pasją na blogu poznajlinuxa.pl. Jego wpisy są skarbnicą wiedzy na temat Linuxa, programowania oraz najnowszych trendów w świecie technologii. Autor "BIELI" wierzy w siłę społeczności Open Source i zawsze stara się inspirować swoich czytelników do eksplorowania i eksperymentowania z kodem.