17

I use the following command to see the name, release and version of a kernel.

-bash-4.1$ uname -s 
Linux
-bash-4.1$ uname -r
2.6.32-279.el6.x86_64
-bash-4.1$ uname -v
#1 SMP Wed Jun 13 18:24:36 EDT 2012

What is the difference and relation between kernel's release and version? Thanks!

Similar question for a Linux distribution (e.g. Ubuntu, Mint, ...)? I.e. what is the difference and relation between a Linux distribution's release and version?

Tim
  • 101,790

2 Answers2

14

uname -r

The first is the version string that was used when the kernel was compiled. That's the role of -r.

$ uname -r
3.13.7-100.fc19.x86_64

This string can get a bit confusing but the base portion (everything before the first dash) is part of the actual Linux kernel version you're using. The rest is related to packaging options that were selected.

What do I mean by this?

  1. Well in the above scenario, 3.13.7 would be the kernel's actual version.
  2. The -100 tells you that various patch sets were applied to it by the Fedora packager, and they're tracking these additional patch sets by appending a number to keep track of them and also denote that this kernel is a base kernel of 3.13.7 + everything that's part of this -100.
  3. The kernel was packaged for version 19 of Fedora (fc19).
  4. It was packaged for the *x86_64* (64-bit) architecture.

uname -v

For -v it's showing you when the kernel was compiled/built.

$ uname -v
#1 SMP Mon Mar 24 21:53:16 UTC 2014

On my Fedora 19 system you can convince yourself that this is in fact true by looking at when the kernel package was actually build via RPM.

$ rpm -qi kernel-$(uname -r) | grep -E "Build Date"
Build Date  : Mon 24 Mar 2014 06:31:17 PM EDT

The build dates differ slightly since the uname -v is what was "burned" into the kernel when it was compiled. The build date in the RPM is from when the RPM had the kernel's compile time burned into it, during package construction.

slm
  • 369,824
2

Release follow kernel version with package/release specific information added. If we go by your example 2.6.32-279.el6.x86_64, this means:

  • 2.6.32 Linux kernel, this is base version and tells you the version of Linux kernel in most distributions and packages.
  • 279 is this package specific release version. el6 suggests its Enterprise Linux (RHEL/CentOS). What happens in these distributions is that they use same kernel version just backport important patches and just up the package number every time so your package manager can update it. This version tag is distribution specific and can vary across different distributions and package managers. It is chosen at compile time.

Version shows the kernel was compiled.

ek9
  • 2,905