To jest tłumaczenie maszynowe i może zawierać błędy!
Rdzeń systemu operacyjnego
Gdy zapisujesz plik, program potrzebuje dostępu do pamięci masowej. Gdy wiele programów działa jednocześnie, potrzebują one zarówno czasu procesora, jak i pamięci RAM. Rdzeniem systemu operacyjnego (kernel) jest ta część systemu operacyjnego, która zarządza takimi zasobami i udziela programom kontrolowanego dostępu do nich.
Tutaj będziesz w stanie wyjaśnić zadania wykonywane przez rdzeń oraz odróżnić go od całego systemu operacyjnego oraz interfejsu użytkownika.
Miejsce w serii: To jest Część 3 z Systemy operacyjne. Część 1 wyjaśnia całość; Część 2 przedstawia interfejsy użytkownika. Zacznij tam, jeśli te pojęcia są dla Ciebie nowe. Ta strona służy również jako podstawa dla wirtualizacji i kontenerów na poziomie Vg2.
Rdzeń jest częścią systemu operacyjnego
System operacyjny zawiera więcej niż tylko rdzeń. Zawiera również biblioteki, usługi systemowe i narzędzia umożliwiające użytkowanie i zarządzanie systemem. Powłoka polecenia lub środowisko graficzne zapewniają interfejs użytkownika do systemu.
Dlatego można usunąć pulpit z serwera Linuksa, a nadal mieć działający system operacyjny. Rdzeń i inne niezbędne elementy systemu wciąż tam są.
Co robi jądro?
| Zasób lub zadanie | Co obsługuje jądro |
|---|---|
| Procesor (CPU) | Dystrybuje czas procesora między procesami, czyli uruchamianymi programami. |
| Pamięć operacyjna (RAM) | Zarządza obszarami pamięci i chroni je przed nieautoryzowanym dostępem ze strony innych procesów. |
| Przechowywanie danych i urządzenia | Udostępnia dostęp za pośrednictwem m.in. systemów plików i sterowników. Sterownik to oprogramowanie obsługujące określony typ urządzenia. |
| Uprawnienia | Kontroluje wiele żądań wysyłanych przez programy w odniesieniu do uprawnień użytkownika i procesu. |
Gdy program potrzebuje usługi z jadra, używa wywołania systemowego (system call), zwykle za pośrednictwem biblioteki. Program zazwyczaj działa z mniejszymi uprawnieniami niż jądro. Jest to ważna granica w systemie.
Przykład: Zapisujesz plik tekstowy
- Wybierasz opcję Zapisz w edytorze tekstu.
- Program prosi system operacyjny o zapisanie danych do pliku.
- Rdzeń systemu obsługuje żądanie, w tym uprawnienia oraz dostęp przez system plików i sterownik.
- Program otrzymuje informację o wyniku i może wyświetlić komunikat o powodzeniu lub niepowodzeniu zapisu.
Ten sam rodzaj usługi systemowej jest używany niezależnie od tego, czy żądanie pochodzi z programu graficznego, czy z linii poleceń. Interfejs GUI i CLI to interfejsy użytkownika; rdzeń systemu zarządza zasobami systemowymi. Podany przykład jest uproszczony: buforowanie oraz wszystkie szczegóły dotyczące zapisu na fizycznym dysku zostały pominięte.
Linux, Debian i Ubuntu: Co jest czym?
Linux to nazwa jądra systemu operacyjnego. W potocznym języku ta nazwa odnosi się również do całych systemów operacyjnych opartych na Linuksie. Dystrybucja Linuksa, np. Debian lub Ubuntu, łączy jądro Linuksa z bibliotekami, narzędziami, programem instalacyjnym i systemem pakietowym.
| Pojęcie | Związek z pozostałymi elementami |
|---|---|
| Jądro Linuksa | Część systemu operacyjnego opartego na Linuksie. |
| Debian i Ubuntu | Dystrybucje budowane w oparciu o jądro Linuksa. Mogą używać różnych wersji jąдра oraz konfiguracji. |
| GNOME i KDE Plasma | Przykłady graficznych środowisk pulpituowych. Można je zainstalować lub usunąć bez zmiany samego jądra systemu operacyjnego. |
| Bash | Powłoka polecenia umożliwiająca korzystanie z poleceń. To jest program, nie jądro. |
Sprawdź maszynę z systemem Linux, jeśli masz taką
W terminalu Linuksa możesz odczytać nazwę i wersję jądra systemu operacyjnego:
uname -s
uname -r
Pierwsza komenda powinna wyświetlić Linux. Druga pokazuje wersję jądra na dokładnie tym komputerze; nie musi być ona taka sama jak u innego ucznia. Komendy niczego nie zmieniają i nie wymagają sudo.
Aby zobaczyć, która dystrybucja Linuksa jest używana, odczytujesz inną informację:
cat /etc/os-release
Szukaj pola PRETTY_NAME, na przykład nazwy zawierającej „Debian” lub „Ubuntu”. Wersja jądra i wersja dystrybucji to różne informacje. Użyj tego rozdziału w systemie Linux; nie musisz instalować systemu Linux, aby wykonać test samodzielny poniżej.
Dlaczego jądro pojawia się w maszynach wirtualnych i kontenerach?
Maszyna wirtualna działa na systemie gościnnym z własnym jądrem. Kontenery Linuksa współdzielą jądro systemu Linuksa, na którym działają. Gdy Docker jest uruchamiany wewnątrz maszyny wirtualnej Linuksa, kontenery dzielą jądro maszyny wirtualnej.
Zobacz mapę systemu operacyjnego, maszyn wirtualnych i kontenerów, aby poznać zależności oraz zasoby dotyczące konteneryzacji dla zilustrowanego porównania.
Kontrolluj swoje wyjaśnienie
- Usunąłeś GNOME z serwera Debiana. Czy usunąłeś również jądro? Uzasadnij odpowiedź.
- Dwa programy zapisują pliki jednocześnie. Który element obsługuje dostęp do zasobów systemowych?
uname -riPRETTY_NAMEpokazują różne numery wersji. Dlaczego oba mogą być poprawne?
Sprawdź odpowiedź: GNOME jest środowiskiem graficznym (desktopowym), a jego usunięcie samo w sobie nie usuwa jądra. Jąдро obsługuje dostęp programów do zasobów systemowych, wraz z innymi częściami systemu. uname -r wyświetla wersję jąдра, podczas gdy PRETTY_NAME opisuje dystrybucję.
Jesteś gotowy do przejścia dalej, gdy potrafisz wyjaśnić różnicę między systemem operacyjnym, jądrem a interfejsem użytkownika za pomocą własnego przykładu. Jeśli mylisz te elementy, użyj ilustracji i przejdź przez proces zapisywania plików jeszcze raz. Chcesz zbadać temat głębiej? Wyjaśnij, jak dwie różne dystrybucje Linuksa mogą opierać się na tym samym typie jąдра.
Źródła: Red Hat: Jądro Linux, Systemy operacyjne oparte na Linuksie oraz uname. Ilustracja została narysowana dla tego zasobu.