I need to understand the Linux versioning system and distribution concepts. what are public, stable or final terms for versions?

  • 4
    This is a fair question that does not deserve to be closed. Versioning and distributions within the linux world are arcane; to ask a more specific (less broad, more clear, etc.) question the OP would first have to understand more about it.
    – goldilocks
    Nov 5, 2014 at 10:05

2 Answers 2


Kernel versioning is independent of distro versioning, except to the extent that distros include patches of their own. This is indicated by tacking an extra identifier onto the version, e.g.:


Here 3.16.6 is the version of the vanilla (unmodified) kernel, and -203 is appended by the distro to indicate the relative version of their modifications to it.

It's not necessary for you to understand that in any depth, just that the Linux kernel is an independent entity. Distros combine it with userland software and (in most cases) everything is precompiled to work together on a specific computer architecture (the most common one today being X86-64; some distros call this AMD64 -- they refer to exactly the same thing).

Most of the fundamental userland software actually comes from GNU, an organization distinct from that of the Linux kernel, hence the proper generic name for the OS is usually considered to be "GNU/Linux".

Software is bundled together in repositories managed by the distribution. When you install software, it comes from a default repository (e.g. "stable"), but you may configure the system to use a different one (e.g. "testing") to access different versions of individual things by default. You might also be able to specify a version and if it is not in the default repository, the installer will check a list of others for it.

Distributions come in two different sorts with regard to versioning themselves. While individual software is always being updated, most distros are also upgraded as a whole occasionally, e.g., from Ubuntu 12.x to Ubuntu 13.x. This enables them to make sweeping changes that might be too difficult to do otherwise. However, some distros instead use a rolling release model where there are not distinct releases, there is just one continuously updated version.

To summarize, the concept of versioning might apply to:

  • The Linux kernel, an independent piece of software.
  • Distribution releases, which often have nicknames (e.g. Ubuntu 14.10: "Utopic Unicorn", or Fedora 20: "Heisenbug").
  • The version of individual packages in a distro, which are usually separated into distinct repositories. Like the kernel, these have independent sources that may be modified slightly by the distribution packagers.
  • The "target architecture" a package is compiled for (e.g. X86-64). These may also be separated into repos.

An example of a full package version string, which combines several of these things:


This is for a Fedora .rpm but other distros use similar schemes. Foobar is the package name, 4.11.3 is the version of the source used, -4 indicates the version of the patches applied by Fedora, f20 is the distro version for which this package was compiled, and x86_64 is the architecture for which it was compiled.

  • can stable or unstable version be said looking at the version number? Like i think i heard the last digit among the three (mm.nn.xx- here the xx ) , if its odd it is unsatble , not final.
    – shaon007
    Nov 5, 2014 at 10:37
  • That's not the case with the kernel, but it is a convention some places; once upon a time Debian releases worked that way (e.g., 2.1 was unstable, 2.2 was stable). It would probably not be indicated by the third number; that generally indicates a "patch level". If someone finds a bug and a patch is created and accepted, it is merged with the current version and the patch level increments by one, e.g., from 1.2.3 to 1.2.4. However, there are no hard and fast rules about how version numbers work -- it is up to the developers how they want to use them.
    – goldilocks
    Nov 5, 2014 at 14:44
  • BTW, the patches applied to the original source ("upstream") are distinct from patches applied to the source by the distro before they compile it. Hence the last number in 3.16.6 indicates a patch level on the 3.16 kernel source, and the "-203" in 3.16.6-203 indicates the patch version applied independently to this by the distro.
    – goldilocks
    Nov 5, 2014 at 14:48

Since you mentioned you're new to Linux I'm going to assume you mean you're new to the Linux Distributions. Linux is 'only' the kernel to a distribution. To call Debian, RedHat, Ubuntu and others Linux would not be correct. A distribution comprises of a Linux kernel + a whole range of programs around it to give it more functionality.

So to take Debian as an example: (a lot of distributions are based on Debian)

The stable distribution contains the latest officially released distribution of Debian. This is the production release of Debian, the one which we primarily recommend using.

The testing distribution contains packages that haven't been accepted into a stable release yet, but they are in the queue for that. The main advantage of using this distribution is that it has more recent versions of software.

The unstable distribution is where active development of Debian occurs. Generally, this distribution is run by developers and those who like to live on the edge. In Debian the unstable distribution is called sid.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .