Jądro systemu

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

Leave a Reply

Your email address will not be published. Required fields are marked *