Dla zwykłych użytkowników i słabszych fanów Linux jest systemem operacyjnym. Dla purystów tytuł "Linux" jest zarezerwowany dla jądra, który zasila system operacyjny. Jeśli jesteś ciekawy, czym jest jądro Linuksa, odpowiedzmy na to pytanie z myślą o nowym użytkowniku.
Tryby
Zanim wyjaśnimy, czym jest jądro, ważne jest zrozumienie pojęć "tryb użytkownika" i "tryb jądra". Tryb użytkownika polega na tym, że podczas wykonywania kodu nie ma możliwości bezpośredniego dostępu do pamięci sprzętowej lub referencyjnej. Aby uzyskać dostęp do sprzętu i pamięci, kod działający w trybie użytkownika musi przekazywać instrukcje do systemowych interfejsów programowania aplikacji (API). Tryb jądra polega na tym, że podczas wykonywania kodu ma nieograniczony dostęp do całego sprzętu i jest zarezerwowany dla najbardziej zaufanych funkcji systemu operacyjnego.
Co to jest jądro?
Każdy system operacyjny ma jądro. Systemy Windows, macOS, iOS, Android, Chrome OS i Linux mają system niskiego poziomu, który jest odpowiedzialny za połączenie wszystkich aplikacji z fizycznym sprzętem komputera. Bez jądra żadna z twoich aplikacji nie byłaby w stanie korzystać z fizycznego komputera; aplikacje takie jak Firefox, Chrome, LibreOffice, MS Office lub Outlook nie działają. Jądro jest również odpowiedzialne za umożliwienie procesom wymiany informacji przy użyciu tzw. Komunikacji między procesami (IPC).
Istnieją (ogólnie mówiąc) trzy typy jądra:
- Jądra monolityczne: jądra te obejmują procesor, pamięć, IPC, sterowniki urządzeń, zarządzanie systemem plików i wywołania serwera systemowego. Jest również odpowiedzialny za przekazywanie wolnej pamięci systemowej do aplikacji. Tego typu jądra mają zazwyczaj lepszy dostęp do sprzętu i wielozadaniowości.
- Mikrokernele: Mikrokernele przyjmują minimalistyczne podejście i zarządzają tylko procesorem, pamięcią i IPC.
- Hybrydowe jądra: Hybrydowe jądra mogą decydować o tym, co chcą uruchomić w trybie użytkownika lub jądra. Mimo że zapewnia to najlepsze z obu światów, wymaga znacznie więcej od producentów sprzętu do tworzenia sterowników, które służą do łączenia się między uruchomieniem kodu i sprzętu.
Linux używa Open Source, Monolithic Kernel, podczas gdy MacOS i Windows używają Hybrid Jądra. Jądro Linuksa zostało stworzone w 1991 roku przez Linusa Torvaldsa. Do dziś pan Torvalds pozostaje wiodącym deweloperem jądra Linux, a deweloperzy z całego świata przyczyniają się do jądra Linux. W rzeczywistości szacuje się, że prawie 10 000 programistów, pochodzących z ponad 1000 firm, przyczyniło się do jądra systemu Linux (od momentu rozpoczęcia śledzenia w 2005 r.).
Gdzie jest jądro?
Jeśli otworzysz okno terminalu i wydasz polecenie ls / boot, zobaczysz plik o nazwie vmlinuz-VERSION (Gdzie VERSION to nazwa lub numer wydania). Plik vmlinuz jest rzeczywistym bootowalnym jądrem Linuxa, a "z" oznacza, że jądro jest skompresowane; więc zamiast vmlinux mamy vmlinuz.

W katalogu / boot znajdują się inne ważne pliki jądra, takie jak initrd.img-VERSION, system.map-VERSION i config-VERSION (gdzie VERSION to nazwa lub numer wersji). Te inne pliki służą do następujących celów:
- initrd: używany jako mały RAMdisk, który wyodrębnia i wykonuje rzeczywisty plik jądra.
- system.map: używane do zarządzania pamięcią, przed załadowaniem jądra.
- config: instruuje jądro, jakie opcje i moduły załadować.
Moduły
Bez modułów jądro nie byłoby zbyt przydatne. Moduły skutecznie włączają sterowniki niezbędne do komunikowania się ze sprzętem bez zużywania całej pamięci systemowej. Moduły dodatkowo zwiększają funkcjonalność jądra, takie jak komunikacja z urządzeniami peryferyjnymi, zarządzanie systemami plików, bezpieczeństwo itd. Możliwe jest wyświetlanie, dodawanie i usuwanie modułów do jądra za pomocą następujących poleceń:
- lsmod wyświetli listę wszystkich aktualnie załadowanych modułów jądra.
- insmod załaduje moduł jądra do działającego jądra.
- rmmod wyładuje moduł z działającego jądra.
Tak więc, za pomocą kilku prostych poleceń, jądro Linuksa może być dość elastyczne.
Obecne jądro
W chwili pisania tego tekstu stabilne jądro Linuksa to 4.18.5, ale nie wszystkie dystrybucje Linuksa będą zawierać najnowsze jądro. W rzeczywistości zaktualizowana dystrybucja pulpitu Elementary OS uruchamia jądro 4.15.0-30. Co oznacza ta liczba? W przypadku najnowszego jądra podstawowego systemu operacyjnego oznacza to:
- 4 to wersja Major
- 15 to wersja mniejsza
- 0-30 to wersja
Możliwe jest również pobranie różnych wersji jądra Linux z kernel.org i samodzielne skompilowanie. Kompilacja jądra Linux to zadanie, które najlepiej pozostawić tym, którzy naprawdę wiedzą, co robią. Nieprawidłowo skompilowane jądro może spowodować, że system nie będzie mógł się uruchomić. Tak więc, jeśli nie jesteś gotowy, aby zanurkować w trudnym zadaniu kompilowania kodu na tym poziomie, użyj domyślnego jądra, które jest dostarczane i aktualizuje wybraną dystrybucję.




