Domyślnym jądrem w systemie RHEL7.0 jest kernel w wersji 3.10, który zapewnia 64 bitowe środowisko i biblioteki do wsparcia aplikacji zarówno 64 i 32 bitowych. Jądro Linuxa to zbiór komponentów softwarowych nazywanych modułami, które pracują jako jeden podmiot aby umożliwić program i aplikacjom wydajne funkcjonowanie. Modułami mogą być sterowniki różnych urządzeń takich jak karta graficzna czy urządzeń peryferyjnych a także softwarowe komponenty takie jak LVM, system plików czy softwarowy RAID. Część modułów jest statyczną częścią jądra a część jest dynamicznie ładowana gdy zajdzie taka potrzeba. Jądro Linuxa zawierające moduły statyczne i dynamiczne określane jest modularnym. Modularne jądro jest mniejsze, szybsze, bardziej wydajne i mniej podatne na awarie. Poza tym w przypadku aktualizacji pojedynczego modułu (np. jakiegoś sterownika) nie ma potrzeby aktualizacji i kompilacji całego kernela co pociągałoby za sobą konieczność restartu systemu. Jądro Linuxa wspiera różne architektury takie jak Intel/AMD/PowerPC/IBM w konfiguracjach jedno i wieloprocesorowych.
Poza podstawowym jądrem RHEL7 zawiera także dodatkowe pakiety kernela przedstawione w tabeli poniżej.
Pakiet | Opis |
kernel | Główny pakiet z jądrem, który zawiera kernel Linuxa pod nazwą vmlinuz. Pakiet instalowany jako część instalacji systemu. |
kernel-devel | Oprogramowanie do budowy modułów jądra. |
kernel-tools | Narzędzia do zarządzania jądrem. |
kernel-tools-libs | Biblioteki wspierające narzędzia kernela. |
kernel-firmware | Pliki z firmwarem wymagane do działania przez różne urządzenia. |
kernel-headers | Pliki nagłówkowe w języku C określające interfejs pomiędzy kernelem a przestrzenią użytkownika i programami. |
kernel-debug | Wsparcie debugowania. |
kernel-debug-devel | Wsparcie do budowy modułów służących do debugowania. |
Lista kerneli zainstalowanych w systemie:
# yum list installed kernel
kernel.x86_64 3.10.0-327.el7 @anaconda
kernel.x86_64 3.10.0-327.36.3.el7 @updates
kernel.x86_64 3.10.0-514.2.2.el7 @updates
kernel.x86_64 3.10.0-514.10.2.el7 @updates
Określanie wersji jądra:
# uname -r
3.10.0-123.el7.x86_64
Oznaczenie | Opis |
Major version (3) |
Główna wersja jądra. Numer głównej wersji jest zmieniany gdy wprowadzane są znaczące zmiany, usprawnienia czy aktualizacje. |
Major revision (10) |
Główna rewizja trzeciej wersji głównej. |
Kernel patch version (0) |
Wskazuje, że nie były nałożone na jądro żadne łaty. Jeżeli pojawia się tutaj numer np. n oznacza to n-tą połataną wersję tego kernela z poprawkami błędów lub usprawnieniami. |
Wersja Red Hata (123) |
Wskazuje na wersję jądra z Red Hata. |
Enterprise Linux (el7) |
Wskazuje na wersję RHEL, dla której przewidziane jest to jądro. |
Processor architecture (x86_64) |
Architektura procesora dla jakiej przewidziane jest jądro. |
Struktura katalogów kernela.
Kernel i związane z nim pliki składowane są w różnych miejscach w drzewie katalogów.
/boot
– katalog tworzony w czasie instalacji systemu celem składowania w nim skompilowanego jądra i innych związanych z nim plików.
# ls -l /boot
razem 260140
-rw-r--r--. 1 root root 126431 10-24 18:18 config-3.10.0-327.36.3.el7.x86_64
-rw-r--r--. 1 root root 126426 2015-11-19 config-3.10.0-327.el7.x86_64
-rw-r--r-- 1 root root 137701 03-03 01:15 config-3.10.0-514.10.2.el7.x86_64
-rw-r--r--. 1 root root 137700 12-07 00:18 config-3.10.0-514.2.2.el7.x86_64
drwxr-xr-x. 2 root root 26 11-05 17:56 grub
drwx------. 6 root root 104 03-31 04:17 grub2
-rw-r--r--. 1 root root 43045392 11-05 18:06 initramfs-0-rescue-662a75de83ac4f48b32e361141f65571.img
-rw------- 1 root root 29925646 03-31 04:20 initramfs-3.10.0-327.36.3.el7.x86_64.img
-rw-------. 1 root root 17913067 12-15 02:53 initramfs-3.10.0-327.36.3.el7.x86_64kdump.img
-rw------- 1 root root 29925056 03-31 04:22 initramfs-3.10.0-327.el7.x86_64.img
-rw-------. 1 root root 16900687 11-05 19:37 initramfs-3.10.0-327.el7.x86_64kdump.img
-rw------- 1 root root 29992034 03-31 04:24 initramfs-3.10.0-514.10.2.el7.x86_64.img
-rw------- 1 root root 29991586 03-31 04:26 initramfs-3.10.0-514.2.2.el7.x86_64.img
-rw------- 1 root root 18434610 03-31 04:00 initramfs-3.10.0-514.2.2.el7.x86_64kdump.img
-rw-r--r--. 1 root root 10209364 03-31 04:14 initrd-plymouth.img
-rw-r--r--. 1 root root 252739 10-24 18:21 symvers-3.10.0-327.36.3.el7.x86_64.gz
-rw-r--r--. 1 root root 252612 2015-11-19 symvers-3.10.0-327.el7.x86_64.gz
-rw-r--r-- 1 root root 277969 03-03 01:17 symvers-3.10.0-514.10.2.el7.x86_64.gz
-rw-r--r--. 1 root root 277953 12-07 00:20 symvers-3.10.0-514.2.2.el7.x86_64.gz
-rw-------. 1 root root 2965270 10-24 18:18 System.map-3.10.0-327.36.3.el7.x86_64
-rw-------. 1 root root 2963044 2015-11-19 System.map-3.10.0-327.el7.x86_64
-rw------- 1 root root 3112473 03-03 01:15 System.map-3.10.0-514.10.2.el7.x86_64
-rw-------. 1 root root 3113323 12-07 00:18 System.map-3.10.0-514.2.2.el7.x86_64
-rwxr-xr-x. 1 root root 5156528 11-05 18:06 vmlinuz-0-rescue-662a75de83ac4f48b32e361141f65571
-rwxr-xr-x. 1 root root 5158864 10-24 18:18 vmlinuz-3.10.0-327.36.3.el7.x86_64
-rwxr-xr-x. 1 root root 5156528 2015-11-19 vmlinuz-3.10.0-327.el7.x86_64
-rwxr-xr-x 1 root root 5393008 03-03 01:15 vmlinuz-3.10.0-514.10.2.el7.x86_64
-rwxr-xr-x. 1 root root 5393328 12-07 00:18 vmlinuz-3.10.0-514.2.2.el7.x86_64
/proc
– wirtualny system plików tworzony w pamięci w czasie uruchamiania systemu i usuwany w czasie zamykania systemu. W plikach tego katalogu mieści się aktualna konfiguracja sprzętowa i informacje o systemie. Do danych zawartych w tym katalogu odnosi się wiele narzędzi taki jak top, ps, uname czy vmstat.
# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz
stepping : 7
microcode : 0x29
cpu MHz : 881.906
cache size : 6144 KB
…… . .
# cat /proc/meminfo
MemTotal: 7889040 kB
MemFree: 5550788 kB
MemAvailable: 6061284 kB
…… . .
/lib/modules
– katalog zawiera informacje o modułach jądra. W katalogu tym znajdują się podkatalogi o nazwach odpowiadających wersjom kerneli zainstalowanym w systemie.
# ll /lib/modules
razem 16
drwxr-xr-x. 7 root root 4096 11-05 19:39 3.10.0-327.36.3.el7.x86_64
drwxr-xr-x. 7 root root 4096 11-05 18:09 3.10.0-327.el7.x86_64
drwxr-xr-x 7 root root 4096 03-31 04:15 3.10.0-514.10.2.el7.x86_64
drwxr-xr-x. 7 root root 4096 12-17 03:51 3.10.0-514.2.2.el7.x86_64