The LAST time I was discussing on this topic, we was on kernel 2.4.x-x.....
WOW, alot of things have changed since then, AND there have been a LOT of work done on the kernel. I can't even imagine all the changes between the two series (I know a ton though).
OK......lets go back to a segment of a post the Linux Torvalds did in April of 1991..... Here is a segment:
________________________________________________________________________________________________________________________________________________________________________________________
In April 1991, Linus Torvalds, a 21-year-old student at the University of Helsinki, Finland started working on some simple ideas for an operating system. He started with a task switcher in Intel 80386 assembly language and a terminal driver. On 25 August 1991, Torvalds posted the following to comp.os.minix, a newsgroup on Usenet:
"I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months [...] Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
[...] It's mostly in C, but most people wouldn't call what I write C. It uses every conceivable feature of the 386 I could find, as it was also a project to teach me about the 386. As already mentioned, it uses a MMU, for both paging (not to disk yet) and segmentation. It's the segmentation that makes it REALLY 386 dependent (every task has a 64Mb segment for code & data - max 64 tasks in 4Gb. Anybody who needs more than 64Mb/task - tough cookies). [...] Some of my "C"-files (specifically mm.c) are almost as much assembler as C. [...] Unlike minix, I also happen to LIKE interrupts, so interrupts are handled without trying to hide the reason behind them"
________________________________________________________________________________________________________________________________________________________________________________________
Lets compare notes from the different series of kernels:
On 14 March 1994, Linux 1.0.0 was released, with 176,250 lines of code. In March 1995, Linux 1.2.0 was released (310,950 lines of code).
Version 2 of Linux, released on 9 June 1996, was followed by additional major versions under the version 2 header:
25 January 1999 - Linux 2.2.0 was released (1,800,847 lines of code).
18 December 1999 - IBM mainframe patches for 2.2.13 were published, allowing Linux to be used on enterprise-class machines.
4 January 2001 - Linux 2.4.0 was released (3,377,902 lines of code).
17 December 2003 - Linux 2.6.0 was released (5,929,913 lines of code).
Starting in 2004, the release process changed and new kernels started coming out on a regular schedule every 2–3 months, numbered 2.6.0, 2.6.1, up through 2.6.39.
On 21 July 2011 Linus Torvalds announced the release of Linux 3.0: "Gone are the 2.6.<bignum> days". The version bump is not about major technological changes when compared to Linux 2.6.39; it marks the kernel's 20th anniversary. The time-based release process remained the same.
As of 2012, the Linux 3.2 release had 14,998,651 lines of code.
________________________________________________________________________________________________________________________________________________________________________________________
Here is a breakdown of the kernels:
Kernel series Original release date Current version Maintainer Support Model
1.0 14 March 1994 1.0.9 EOL
1.1 6 April 1994 1.1.95 EOL
1.2 7 March 1995 1.2.13 EOL
1.3 12 June 1995 1.3.100 EOL
pre2.0 12 May 1996 pre2.0.14 EOL
2.0 9 June 1996 2.0.40 David Weinehall EOL (Officially made obsolete with the kernel 2.2.0 release)
2.2 26 January 1999 2.2.26 Marc-Christian Petersen EOL (Unofficially obsolete with the 2.2.27-rc2)
2.4 4 January 2001 2.4.37.11 Willy Tarreau EOL (Maintained from December 2008 to December 2011), last stable release of the 2.4 kernel series.
2.6.16 20 March 2006 2.6.16.62 Adrian Bunk EOL (1st long-term stable release from March 2006 to July 2009, replaced by 2.6.27.x)
2.6.27 9 October 2008 2.6.27.62 Willy Tarreau EOL (2nd long-term stable release from October 2008 to March 2012)
2.6.32 3 December 2009 2.6.32.61 Willy Tarreau 3rd long-term stable release from December 2009 to mid 2014, used in Debian 6 Squeeze
2.6.33 24 February 2010 2.6.33.20 Greg Kroah-Hartman EOL (4th long-term stable release from March 2011 to November 2011, Base for Real-Time-Tree, replaced by 3.0.x)
2.6.34 16 May 2010 2.6.34.14 Paul Gortmaker 5th long-term stable release from January 2011 to mid 2013
2.6.35 2 August 2010 2.6.35.14 Andi Kleen EOL (6th long-term stable release from December 2010 to March 2012)
2.6.39 19 May 2011 2.6.39.4 Greg Kroah-Hartman EOL (Maintained from May 2011 to August 2011), last stable release of the 2.6 kernel series.
3.0 22 July 2011 3.0.85 Greg Kroah-Hartman 7th long-term stable release from July 2011 to October 2013 (Base for Real-Time-Tree)
3.1 24 October 2011 3.1.10 Greg Kroah-Hartman EOL (Maintained from October 2011 to January 2012)
3.2 5 January 2012 3.2.48 Ben Hutchings 8th long-term stable release from March 2012 to 2016, used in Ubuntu 12.04 LTS, Debian 7 Wheezy and Slackware 14.0
3.3 19 March 2012 3.3.8 Greg Kroah-Hartman EOL (Maintained from March 2012 to June 2012)
3.4 21 May 2012 3.4.52 Greg Kroah-Hartman 9th long-term stable release from May 2012 to October 2014
3.5 21 July 2012 3.5.7 Greg Kroah-Hartman EOL (Maintained by Kroah-Hartman until the release of 3.6.1, from July 2012 to October 2012). Unofficial extended support until March 2014.
3.6 1 October 2012 3.6.11 Greg Kroah-Hartman EOL (Maintained from October 2012 to December 2012)
3.7 11 December 2012 3.7.10 Greg Kroah-Hartman EOL (Maintained from December 2012 to March 2013)
3.8 19 February 2013 3.8.13 Greg Kroah-Hartman EOL (Maintained from February 2013 to May 2013) Unofficial extended support until August 2014.
3.9 29 April 2013 3.9.9 Greg Kroah-Hartman
3.10 30 June 2013 3.10 Linus Torvalds Latest stable version
As we can see from the list..... Kernel 3.4 is the main kernel in use as of to date. It has a life span with support all the way to October of 2014)
-- Information provided by: Linux Kernel Wikipedia --
________________________________________________________________________________________________________________________________________________________________________________________
Revision control
The Linux kernel source code used to be maintained without the help of an automated source code management system, mostly because of Linus Torvalds' dislike of centralized SCM systems.
In 2002, Linux kernel development switched to BitKeeper, an SCM system which satisfied Linus Torvalds' technical requirements. BitKeeper was made available to Linus and several others free of charge, but was not free software, which was a source of controversy. The system did provide some interoperability with free SCM systems such as CVS and Subversion.
In April 2005, however, efforts to reverse-engineer the BitKeeper system by Andrew Tridgell led BitMover, the company which maintained BitKeeper, to stop supporting the Linux development community. In response, Linus Torvalds and others wrote a new source code control system for the purpose, called Git. The new system was written within weeks, and in two months the first official kernel release was made using Git. Git soon developed into a separate project in its own right and gained wide adoption in the free software community.
Version numbering
The Linux kernel has had three different numbering schemes.
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. 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. The version was changed only when major changes in the code and the concept of the kernel occurred, twice in the history of the kernel: in 1994 (version 1.0) and in 1996 (version 2.0). Version 3.0 was released in 2011, but it was not a major change in kernel concept. The major revision was assigned according to the traditional even-odd system version numbering system. The minor revision had been changed whenever security patches, bug fixes, new features or drivers were implemented in the kernel.
In 2004, after version 2.6.0 was released, the kernel developers held several discussions regarding the release and version scheme and ultimately Linus Torvalds and others decided that a much shorter "time-based" release cycle would be beneficial. For about seven years, the first two numbers remained "2.6", and the third number was incremented with each new release, which rolled out after two to three months. A fourth number was sometimes added to account for bug and security fixes (only) to the kernel version. The even-odd system of alternation between stable and unstable was gone.
The first use of the fourth number occurred when a grave error, which required immediate fixing, was encountered in 2.6.8's NFS code. However, there were not enough other changes to legitimize the release of a new minor revision (which would have been 2.6.9). So, 2.6.8.1 was released, with the only change being the fix of that error. With 2.6.11, this was adopted as the new official versioning policy. Later it became customary to continuously back-port major bug-fixes and security patches to released kernels and indicate that by updating the fourth number.
On 29 May 2011, Linus Torvalds announced that the kernel version would be bumped to 3.0 for the release following 2.6.39, to commemorate the 20th anniversary of Linux. It continued the time-based release practice introduced with 2.6.0, but using the second number—i.e. 3.1 would follow 3.0 after a few months. An additional number (now the third number) would be added on when necessary to designate security and bug fixes, as for example with 3.0.18.
Regular development pre-releases are titled release candidates, which is indicated by appending the suffix 'rc' to the kernel version, followed by an ordinal number.
Also, sometimes the version will have a suffix such as 'tip', indicating another development branch, usually (but not always) the initials of a person who made it. For example, 'ck' stands for Con Kolivas, 'ac' stands for Alan Cox, etc. Sometimes, the letters are related to the primary development area of the branch the kernel is built from, for example, 'wl' indicates a wireless networking test build. Also, distributors may have their own suffixes with different numbering systems and for back-ports to their "enterprise" (i.e. stable but older) distribution versions.
-- Information provided by: Linux Kernel Wikipedia --
________________________________________________________________________________________________________________________________________________________________________________________