In the media lately, there have been several articles floating around about how the release of the Linux 2.4 kernel has been delayed and pushed back for several months. To be honest, these reports are not terribly common at this point. However, I would like to stand in defense of the Linux kernel development team and attempt to clear up some of the misunderstandings surrounding the upcoming release and make it clear to anyone who’ll listen exactly what is going on and why it’s a “good thing.”
In nearly every inaccurate story, there is a central core idea that often bears a remarkable resemblance to the truth. The recent media coverage about the delay of Linux 2.4 is no exception. To be honest, many Linux users and developers believed that the updated kernel would be released by now. In fact, an early article I wrote for Linux Journal Magazine hypothesized an earlier release of Linux 2.4. I could be partially to blame for some of the misinformation. Early discussions on the development process of the Linux 2.4 kernel revolved around a “rapid release” cycle that would, in theory, bring an updated Linux kernel to the masses more quickly than the conventional model that was used during the Linux 2.2 development process. A “rapid release” process (not to be confused with the Open Source motto: “release early, release often”) would involve putting out a Linux 2.4 kernel with relatively few changes (most notably the Wake One changes to improve web server performance) within several months after the start of the development process. While this development model was discussed, Linus and the core team of developers did not make any claims that this would be the model that they would actually follow. In the end, the old model (which allowed for a greater depth of changes quicker in the long run) was the one actually used by the development team.
The traditional world of commercial software loves release dates and release announcements. Often, products are announced months (occasionally, years) before they are actually released with dates and feature lists that are occasionally wholly inaccurate. Open Source projects, as a general rule, don’t make these kinds of announcements. When Linux 2.4 development was started, no one was handing out a list of things that would be added, that would all be determined later. Some have said that this constitutes a lack of direction, still others see it as a sign that Linux responds to the needs of the community rather than a project manager. The “Wonderful World of Linux 2.4” document that I maintain (an unofficial list of the changes in new kernel releases) does tell you all about what the future, unreleased, kernel includes. But unlike pre-release announcements of commercial software, Linux 2.3 actually already contains all of the changes that I discuss. All of them. (And since Linux is an Open Source project, you are completely free to download this kernel– recommended for developers only– and try out these new features for yourself.) Unfortunately, many people are accustomed to looking for release announcements and release plans for the software that they are interested in. This tendency has led to some confusion as internal discussions have been misinterpreted in some cases as gospel.
Again, unlike commercial software, Linux is developed in a completely open manner. Anyone and everyone can subscribe to the master developers mailing list or one of the several more project-specific lists that abound. However, the posts that appear on these lists are no more official or set in stone than what you might hear during a conversation around a water-cooler at a more traditional place of employment. It’s sort of amazing, in a way, to watch the developers (who know a lot more than I do, believe me) discuss the internals of interrupt handling or how best to design an ethernet driver to work with buggy cards. But just because something is uttered by a developer on the mailing list doesn’t mean it constitutes an official word from the development team or even an idea that won’t be thrown out a week later because it proved impractical. And even posts from Linus, Alan, David, or another so-called “lieutenant” should be considered in the same light as a conversation between peers working on a common problem, rather than something to be analyzed word for word. (Or do you think we’re actually serious about World Domination, too?)
The bottom line is that every Open Source project that ever announced dates or feature sets have tended to be wrong. Commercial software seems to be bitten by the same bug. Release dates and feature lists are often born in the marketing department where the laws of reality are not the same as in normal space. Things that seem easy to implement are often complex. Things that seem useful often prove to be useless in the field. Because Linux is developed by programmers without pressure from marketing folks or a bottom-line, it is less prone to being rushed just to get it out the door. Linux 2.4 will be released when it is completed and not a day sooner. Or would you rather have a Linux kernel with almost as many bugs as its commercial counterparts?