[ILUG-BOM] Version Ka Funda

Philip S Tellis linuxers@mm.ilug-bom.org.in
Thu Jan 17 19:08:03 2002


On Thu, 17 Jan 2002, Nikhil Joshi wrote:

> I get confused by the versioning system of Linux. I would like to know
> why the versions are so cryptic and not easy to remember and
> understand like in the Redmond.

Actually, the version numbers are probably the simplest to understand.  
We'll get to redmond in a moment, first linux.

> Software whose version has many
> odd nos. ---> Bad ( o.k. not so good ;-)
> even nos.---> Good
> Am I right?

No.  Version numbers are made up of three parts:

major, minor, release, and there's also the distributor patch, so we 
have:
xx.yy.zz-dd

xx is major, yy is minor, zz or release, and dd is distro patch which we 
won't bother about any more.

minor number even == stable kernel ==> no major changes will happen in 
it, and it has been tested well.  Features are never added or removed to 
different releases of the same minor version.  At least not supposed to.

minor number odd == development kernel ==> a lot of major changes are 
happening in it.  Features are added and removed at will.  Lots of 
testing is done.  When the feature set has stabilised, it is moved to 
the next stable release.

major numbers tell you the level of maturity of the product.  linux has 
been in version 2 for a very long time, and that's the level of its 
maturity.

> Also I've read that the first version of Linux kernel was 0.1 Why 0.1
> ??? when it could have been 1 or 1.0 or whatever

The first kernel was very minimal, had almost no features, and was not 
usable on its own.  In other words, it was not mature enough to be used.  
Version 1 is generally reserved for things that have matured enough to 
be used by the general public.

> Also I've seen that kernels have huge version nos. My kernel version
> no. is 2.2.14-12
> Does it provide any (useful) info ?

i've already told you about the major and minor.

the release (or revision) - the third number - tells you which release 
in the current version is being used.  Releases normally have bugfixes 
for older releases.  Bugs are associated with a release, so you would 
say kernel 2.4.10 fixed bug X from kernel 2.4.9.  kernel 2.4.16 has a 
driver for hardware Y, but kernel 2.4.15 does not.

The last part - after the - is a distro patch, or a fork from the actual 
kernel.

eg: 2.2.14-12 (redhat 6.2 I think), means that redhat 6.2 uses a 2.2.14 
kernel.  However, they have applied some of their own patches to the 
kernel after it was released.  Possibly to fix certain bugs that came 
up.

They cannot just put in a new kernel, because that may not have been 
thoroughly tested.  Instead, they only patch major bugs that are found, 
and do not include features of newer kernels.  Sometimes, they may add 
drivers that are not in the default tree.

You also have other forks like the alan cox tree, which has the -acN
suffix (where N is the alan cox patch number).  So you'd see thinks like 
2.4.17-ac1, 2.4.17-ac2. 

And finally, the prerelease tree.  Before features are put into the 
stable kernel proper, they are put into pre releases, and if nothing 
breaks, the prerelease becomes the release.

So 2.4.17-pre1, 2.4.17-pre2 ... 2.4.17-pre6 were all prereleases that 
built incrementally into 2.4.17.

The idea is to throw features in as soon as possible - release early, 
release often.  This is so that people can test new features as soon as 
they are coded instead of waiting for the developer to first test, and 
then release - Given enough eyeballs, all bugs are shallow.



Now, as far as Microsoft goes.  How does a version number named after 
the year of release tell you anything about its features?

Windows ver 1 to 2 to 3 to 3.1 to 3.11 to 95 to 98 to 2000 to XP
now that is confusing.  there is absolutely no pattern.

if the difference in version numbers is 0.1, does that mean a very small 
change?  In fact, there were major changes between 3.0 and 3.1.  real 
mode dissappeared for one.

Even then, you'd expect 3.1 and 3.11 to be much closer.  well, 3.11 was 
really windows for workgroups.  3.1 with networking features.  Does that 
warrant a version change of 0.01?

Then, the next step.  From 3.11 to 95 (or 4.001.95 to be exact).  Is 
that a big change or what?

And then, 95 OSR A, 95 OSR B (also known as 96), 95 OSR C (known as 97), 
and finally 98.

OSR C had fat32 support - a major change, yet the major, minor and 
release numbers remained the same.

then, 98 to 2000 - that's a big change.  I haven't seen any other 
software that is in version 2000.  To a new comer, that would imply 1999 
versions before it.  Then suddenly XP.  What does that mean and why does 
it look like a Mac?


HTH

Philip

-- 
Much of the excitement we get out of our work is that we don't really
know what we are doing.
		-- E. Dijkstra