Celeb Glow
general | April 02, 2026

What are Kernel Version number components (w.x.yy-zzz) called? [duplicate]

When looking at kernel version numbers installed in /boot using a work in progress command (find /boot/vm* -printf "%A@ %p\n") I see:

1469098968.0000000000 /boot/vmlinuz-3.13.0-92-generic
1477523408.0000000000 /boot/vmlinuz-3.2.0-113-generic
1476549941.0000000000 /boot/vmlinuz-4.4.0-43-generic
1477008540.0000000000 /boot/vmlinuz-4.4.0-45-generic
1470540722.0000000000 /boot/vmlinuz-4.6.3-040603-generic
1471805944.0000000000 /boot/vmlinuz-4.7.1-040701-generic
1472208664.0000000000 /boot/vmlinuz-4.7.2-040702-generic
1473382012.0000000000 /boot/vmlinuz-4.7.3-040703-generic
1474853146.0000000000 /boot/vmlinuz-4.7.5-040705-generic
1475960925.0000000000 /boot/vmlinuz-4.8.1-040801-generic
1477145804.0000000000 /boot/vmlinuz-4.8.4-040804-generic

What are the proper names for "w.xx.y-zzz" that follows the vmlinuz prefix?

The proposed duplicate link (What does the fourth number in the release version mean?)states the second segment is called the ABI Number. The answer below by muru states the fourth segment is the ABI Number however I believe both are wrong based on the links provided in my own answer below.

Keep in mind this question is about ALL four segments w.x.yy-zzz and not just the fourth segment zzz.

6

2 Answers

Calling w the version, x the major revision and y the minor revision is semantic versioning using change significance. Linux hasn't used that semantic versioning in a long time. Until 2003, Linux used odd-even versions (odd numbers are unstable, even numbers are stable). And then came 2.6, which lasted a geological age in software terms (till 2.6.39, 8 years).

Then, pretty much arbitrarily, Linus bumped the version to 3.0. And that ended all of that semantic versioning's applicability to Linux versions. And when 3.20 was due, Linus switched to simply incrementing w whenever x got large enough that he ran out of fingers and toes to count it.

So, now, the kernel version is just w.x, the y from upstream indicates a patch released - Ubuntu just keeps it 0, and z, as already noted, is the ABI number.

3

Kernel Version . Major Revision . Minor Revision - Patch

Using w.xx.y-zzz and looking at the fourth file listed /boot/vmlinuz-4.4.0-45 we can say:

  • w = Kernel Version = 4
  • xx= Major Revision = 4
  • y = Minor Revision = 0
  • zzz=Patch number = 45

If someone is using 4.8.0, which Ubuntu 16.10 ships with, and encounters screen flickering they might say "I used the previous version 4.4.0-45" (which Ubuntu 16.04 uses) to fix the problem.

In layman's terms, this is correct but technically it was a downgrade four major revision levels (4.8.y-z) to (4.4.y-z). Technically speaking, to move from kernel version 4.8 to a previous kernel version it would have to be 3.2 or 3.13 using the file listing shown in the OP.

Segment name changes after Kernel 3.0

The above definitions come from: (Kernel Version Numbering) published May 9, 2006 but are now obsolete.

As the duplicate comment link (What does the fourth number in the release version mean?) states, the new names are:

<base kernel version>.<ABI number>.<upload number>-<flavour>

The proposed duplicate appears to be wrong because the second segment in the kernel version number seems to have nothing to do with ABI. In the other answer posted in this thread the fourth segment is tied to ABI but that doesn't seem right either. Here's the top of the list of ABI changes from (Linux Kernel ABI Timeline):

 ----- Symbols -----
Version Date Added Removed Total
4.8.1 2016-10-07 141 50 1470
4.7.2 2016-08-20 170 42 881
4.6.1 2016-06-01 159 52 924
4.5.6 2016-06-01 146 41 994
4.4.5 2016-03-10 87 40 994
4.3.6 2016-02-20 166 51 1231
4.2.8 2015-12-15 213 75 1768
4.1.19 2016-03-05 204 88 1760
4.0.9 2015-07-21 159 53 822
3.19.8 2015-05-11 207 44 1146
3.18.28 2016-03-05 147 56 867
3.17.8 2015-01-08 165 46 688
3.16.7 2014-10-30 155 55 943
3.15.10 2014-08-14 129 98 1051
3.14.64 2016-03-10 279 91 1019
3.13.11 2014-04-23 140 99 822
3.12.56 2016-03-04 171 77 994

ABI number

From wiki.ubuntu we learn:

ABI stands for Application Binary Interface. For the kernel, this boils down to the exported functions that modules (AKA drivers) can use to do things in kernel space. Most of these exported functions are available directly from the kernel (vmlinux), but a good portion is also exported from other modules. These functions allow modules to make use of subsystems in the kernel for memory management, device interfaces, filesystems (VFS), networking stacks, etc.

Summary of Linux Kernel Version Numbering

From perhaps the most definitive source (wikipedia.org - Linux Kernel Version Numbering) we learn:

The Linux kernel has had three different numbering schemes. To summarize:

  • The first scheme was used in the run-up to "1.0". The first version of the kernel was 0.01. This was followed by 0.02, 0.03, 0.10, 0.11, 0.12 (the first GPL version), 0.95, 0.96, 0.97, 0.98, 0.99 and then 1.0.[303] From 0.95 on there were many patch releases between versions.
  • After the 1.0 release and prior to version 2.6, the number was composed as "a.b.c", where the number "a" denoted the kernel version, the number "b" denoted the major revision of the kernel, and the number "c" indicated the minor revision of the kernel.
  • In 2004, after version 2.6.0 was released, the kernel developers held several discussions regarding the release and version scheme[304][305] and ultimately Linus Torvalds and others decided that a much shorter "time-based" release cycle would be beneficial.
4