The difference of kernel/distribution’s release and version

kernel

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?

Best Answer

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.

Related Question