What can your Linux system tell you about the Linux kernel it's using? Let's do a little probing and see. Credit: James Emery How much can your Linux system tell you about the kernel it’s running and what commands are available to help you ask? Let’s run through some of them. uname The simplest and most straight-forward command for providing information on your kernel is the uname -r command. It provides a succinct answer to your question but in a format that also includes a number of fields each which provides a particular piece of information. $ uname -r 4.15.0-30-generic ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-- the distribution-specific string | | | +------- the latest bug fix | | +---------- the minor revision | +------------ the major revision +--------------- the kernel version Add an “s” and your output will include the kernel’s name: $ uname -sr Linux 4.15.0-30-generic In the first display above, you can see that each field has been annotated. If you use, the uname -a command instead, you will get quite a bit more information. In the display below, each of the fields is explained. Notice that the third field shows the same information we see above. The output is wrapped around below to make it easy to label the fields. OK, so the kernel in this case is “4.15.0-30-generic,” and each portion of the name provides some detail on the kernel’s identity. To add the the kernel’s name, add the “s” swtich: $ uname -a Linux butterfly 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 ----- --------- ----------------- ------------------------------------------- | | | | | | +- kernel version +---- compilation stats | +-- hostname +-- kernel name x86_64 x86_64 x86_64 GNU/Linux | | | | | | | +-- operating system | | +---------- OS architecture | +----------------- processor architecture +------------------------ machine architecture The compilation stats shown on the right in the top line of the output above also tells you some interesting things. #32-Ubuntu SMP –- the number of times this version of the kernel was compiled Thu Jul 26 17:42:43 UTC 2018 –- the last time the kernel was compiled (timestamp) x86_64 –- the machine architecture x86_64 –- the processor architecture x86_64 –- the OS architecture GNU/Linux –- the operating system (distribution name not included) /proc/version In the following command, we see the Linux distribution name along with the kernel name. We also see some of the other information that the uname command provided. $ cat /proc/version Linux version 4.15.0-30-generic (buildd@lgw01-amd64-060) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 rpm On some systems, you can use the rpm command as shown below to provide information on your kernel. $ rpm -q kernel kernel-2.6.32-696.30.1.el6.x86_64 kernel-2.6.32-754.el6.x86_64 kernel-2.6.32-754.2.1.el6.x86_64 dmesg You can also extract kernel information from your dmesg output: $ dmesg | grep Linux [ 0.000000] Linux version 4.15.0-30-generic (buildd@lgw01-amd64-060) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 (Ubuntu 4.15.0-30.32-generic 4.15.18) [ 0.052298] ACPI: Added _OSI(Linux-Dell-Video) [ 0.885913] Linux agpgart interface v0.103 [ 0.908086] usb usb1: Manufacturer: Linux 4.15.0-30-generic ehci_hcd [ 0.928062] usb usb2: Manufacturer: Linux 4.15.0-30-generic ehci_hcd [ 0.928516] usb usb3: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.928838] usb usb4: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929146] usb usb5: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929450] usb usb6: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929758] usb usb7: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.930065] usb usb8: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 1.873372] pps_core: LinuxPPS API ver. 1 registered dpkg The dpkg command can also be used to identify the kernel version. Notice that in the output shown below, we see both the current and prior kernel versions. $ sudo dpkg -l | grep linux-headers | grep ii | awk '{print $3}' | tail -1 4.15.0.30.32 $ sudo dpkg -l | grep linux-headers | grep ii | awk '{print $3}' 4.15.0-24.26 4.15.0-24.26 4.15.0-29.31 4.15.0-29.31 4.15.0-30.32 4.15.0-30.32 4.15.0.30.32 Wrap-up There are many commands on Linux to help you get information on the kernel that your system is using. I hope this post adds some insight into what all those numbers and designations represent. Related content how-to Compressing files using the zip command on Linux The zip command lets you compress files to preserve them or back them up, and you can require a password to extract the contents of a zip file. By Sandra Henry-Stocker May 13, 2024 4 mins Linux opinion NSA, FBI warn of email spoofing threat Email spoofing is acknowledged by experts as a very credible threat. By Sandra Henry-Stocker May 13, 2024 3 mins Linux how-to The logic of && and || on Linux These AND and OR equivalents can be used in scripts to determine next actions. By Sandra Henry-Stocker May 02, 2024 4 mins Linux how-to Using the apropos command on Linux By Sandra Henry-Stocker Apr 24, 2024 3 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe