IT blok - Michal Šika

kutilovo živobytí

Jak zjistím verzi Linux/UNIX kernelu

Je dobré vědět, co máme na počítači vůbec nainstalováno. V případě *buntu linuxu a podobných dochází při záplatování k upgrade linuxového jádra. V případě, že bychom chtěli kompilovat či instalovat nějaký specifický software, by nám jiná verze jádra, než očekáváme mohla přidělat problémy.

Kernel je jádro Linuxu a Unixu (i Windows, ale tam je drobátko jiné:-)). Pokud používáme v podstatě jakoukoliv linuxovou distribuci, je dobré, když ji záplatujeme a updatujeme.
Tak se nám stane, že po půl roce běhu máme uvnitř úplně jiný kernel, než jsme si původně instalovali.

Jak tedy zjistíme verzi kernelu, která nám aktuálně běží na nějaké linuxové distribuci popř. Unixu?

Použijeme na to příkaz uname, který nám zjistí např. následující informace:

  • verze Kernelu a jeho jméno
  • zobrazí jméno počítače
  • zobrazí typ procesoru
  • zobrazí jméno operačního systému
  • atd

Tento příkaz funguje ve všech linuxových distribucích a vlastně i ve všech hlavních UNIXech, jako je *BSD, Solaris, HP-UX, AIX, atd.
Příkaz:

$ uname -r

zobrazí např. toto

2.6.35-28-generic

kde:

  • 2 – verze kernelu
  • 6 – hlavní (major) revize kernelu
  • 35 – vedlejší (minor) revize kernelu
  • 28 – přímé opravy/ opravy bugů a kritických chyb
  • generic – specifické označení distribuce. Např. RedHat obsahuje řetězec EL5 pro indikaci RHEL 5 kernelu.

Jiná verze příkazu (s více parametry)

$ uname -rmsn

zobrazí např. toto

Linux msiux002 2.6.35-28-generic x86_64

Všechny možné parametry příkazu uname zjistíme příkazem

$ man uname

Další možností je si vypsat parametry z balíčkovacího nástroje.

Tímto příkazem (debian/*buntu)

$ dpkg --list | grep linux-image

získáme seznam všech instalovaných jader (kernelů) v Debina/*buntu distribucích.
Výstupem bude např toto

ii  linux-image-2.6.35-22-generic   2.6.35-22.35    Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.35-25-generic   2.6.35-25.44    Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.35-27-generic   2.6.35-27.48    Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-2.6.35-28-generic   2.6.35-28.50    Linux kernel image for version 2.6.35 on x86/x86_64
ii  linux-image-generic             2.6.35.28.36    Generic Linux kernel image

Tímto příkazem (RHEL/CentOS/Suse/Fedora)

$ rpm -q kernel

získáme, v linuxových distribucích s balíčkovacím systémem RPM, např. toto

kernel-2.6.35-22.e14
kernel-2.6.35-22.1.4.e14

A nakonec se podíváme na soubor /proc/version

Některým z těchto příkazů

$ more /proc/version
nebo
$ cat /proc/version

získáme např. takovýto výstup

Linux version 2.6.35-28-generic (buildd@allspice) (gcc version 4.4.5 (Ubuntu/linaro 4.4.4-14 ubuntu5) ) #50-Ubuntu SMP Fri Mar 18 18:42:20 UTC 2011

Toto jsou způsoby, jak zjistíme aktuální verzi kernelu linuxové distribuce či Unixu, který používáme. Každý způsob nabízí podobný výsledek, jen informace jsou různě obsáhlá a závisí na tom, pro jaký účel je potřebujeme.

Michal Šika