Sunday, May 29, 2011

Linux Kernel Versions

In the old days (^_^) kernel versions went like this: even minor versions (e.g., 2.0, 2.2, 2.4) were stable kernels; odd minor versions (2.1, 2.3, 2.5) were development kernels. The patch level, a third component of the version, indicated a bug fix release in the stable kernel, or a testing release in the development kernel.

All that changed in 2.6 when the kernel developers switched to distributed version control, first propriety BitKeeper, and then git. Everyone developed asynchronously on their own copy of the kernel source. Linus pulled changes from these distributed sources into his own tree and made release which were numbered 2.6.1, 2.6.2, 2.6.3, etc,.

Bug fix releases add a fourth number: 2.6.4.1. That always looked silly to me because the development and maintenance process hadn't changed that much to warrant extending the version number.

Today, 2.6.39 became the last 2.6 kernel because Linus released 3.0-rc1, in preparation for a 3.0 stable kernel. Future stable releases will be numbered 3.1, 3.2, 3.3, etc., and maintenance releases will be 3.0.1, 3.0.2, etc. I suppose there will even be a 4.0 at some point.

Linus was adamant that there would never be a 2.7 kernel. He was right. But something had to done about the version numbering. It was just silly.

No comments:

Post a Comment