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