| Linux releases a cleaner, tighter kernel 2.6.22 |
Jul. 09, 2007
Analysis--Master Linux developer, Linus Torvalds, announced on July 8 that the new Linux kernel 2.6.22 is now available. While this new kernel has many new features, it's really more of a bug-fix release.
At the Linux Foundation Collaboration Summit a few weeks ago, Jon Corbett, a Linux developer, asked a panel of Linux kernel developers, "Is the quality of the current kernel Linux 2.6.21 horrific?" Andrew Morton, leading Linux kernel programmer and coordinator, replied that some people felt that 2.6.21 contained "not ready for prime time" features and so "2.6.21 was perhaps a bit more buggy than it should be."
So it is that the just released 2.6.22, as Linux kernel developer James Bottomley put it, is dealing with the "tension between new features and stabilizing those features." In practice this means that 2.6.22 has made improvements in Linux's new and somewhat troubled tickless timer system and many minor bug fixes.
The new Linux kernel is far from just a collection of patches to cranky new features. The full changelog reveals a host of new and improved features. These include new and much better wireless and FireWire stacks, LVM (Logical Volume Management) for flash storage devices, improvements to TCP/IP networking congestion, IPV6 Optimistic Duplicate Address Detection, relocatable x86-64 kernel support, various new drivers and many other improvements.
The biggest change for most users will be the new software stack. As Torvalds writes in the changelog, "For too many years, Linux wireless support has worked, but not very well. 2.6.22 has a completely new, better wireless stack included. This new wireless stack has been donated by the known Wi-Fi specialist company Devicescape.
This new wireless stack includes a complete software MAC (Media Access Control ) implementation, WEP (Wired Equivalent Privacy), WPA (Wi-Fi Protected Access), a 'link-layer' bridging module, hostapd, QoS (Quality of Service) support to prioritize things like VOIP (voice over IP), 802.11g support and full debug capabilities.
"All of this comes in a single implementation that drivers can use without rewriting those features themselves, which sadly has been done multiple times in the Linux Wi-Fi world," Torvalds wrote.
This new stack also has a completely new user interface. "The old stacks have an ugly ioctl-based interface, which was standardized under the name of "wireless extensions" (wext). The new interface uses a netlink-based interface, suited for the needs of desktop-based configuration interfaces, but retaining at the same time userspace compatibility with the old interface," wrote Torvalds .
The problem with all this is that there's a lack of older Wi-Fi device drivers that aren't compatible with this stack. The good news is that Torvalds thinks it shouldn't be much trouble porting older device drivers "since the new stack is actually a much better ground to build drivers upon than the current mess. There are quite a lot of new and ported drivers that are already using the new stack which have not been merged in this release, but will get merged in future releases, like the RT2x00 drivers, the bcm43xx driver, zd1211rw, adm8211, rtl818x, Intel iwlwifi (ipw3945 and ipw4965). Distributions like Ubuntu and Fedora already are using them."
In the long run, of course, the big advantage is that it will be much easier to port Wi-Fi devices to Linux, and they'll be much full-featured since the new stack already has so much functionality already built into it.
FireWire support is also getting reworked. The main reason for this is to get a small, maintainable and supportable stack, which also maintains backwards compatibility.
Torvalds wrote: "This stack has many advantages: Considerably leaner codebase (less than 8k lines of code compared to 30k lines of code in the old stack, and a similar size reduction in the sizes of the binary files); cleaned up and improved in-stack APIs (with the side effect of getting rid of a bunch of old bugs) and design (no kernel threads, compared to one subsystem thread and one thread per FireWire controller in the old stack); and consolidation of the currently four userspace ABIs (application binary interface) into one improved ABI.
The userspace ABI is changed, but compatibility is kept stable at library level (libraw1394 and libdc1394) and per-device device files, letting userspace set up more fine-grained access control, such as preventing direct access to FireWire storage devices."
2.6.22 includes an optional, more SMP (symmetric multiprocessing)-friendly SLUB allocator. As Corbett explains in his article on SLUB, Linux has long used slab allocator as the heart of its kernel's memory management. This allocator, which sits on top of the low-level page allocator, manages caches of objects of a specific size, allowing for fast and memory space-efficient allocations.
Linux developer Christoph Lameter, however, has been pointing out for some time that on very large computer systems with multiple CPUs, or simply CPUs with multiple cores, the "number of objects that may be caught in [slab] queues grows exponentially." Thus he "fears that the whole memory of the machine could one day be consumed by those queues."
Lameter's answer is SLUB, which does a far better job of trash collecting thus freeing up more memory. It is also claimed that it will improve memory allocation performance by 5 to 10 percent. For users, this means systems with multiple core processors—such as Intel's late 2008-generation Itanium, code-named Tukwila, a quad-core processor—will run efficiently with the next generation of Linux.
Also with this release, Linux is adding support for Intel and ADI's (Analog Devices Inc) Blackfin DSP (digital signal processor) architecture. While Blackfin has had its own uClinux Linux port since 2004, this is the first official port of a Linux 2.6 kernel added to this embedded system architecture.
With bug fixes galore, and major Wi-Fi, FireWire and memory management improvements, Linux 2.6.22 looks like it has every chance of becoming the foundation of many commercial Linux distributions. In the meantime, developers and early adopters are already putting this new kernel to the test.
--Steven J. Vaughan Nichols
Do you have comments on this story?
Talkback here NOTE: Please post your comments regarding our articles using the above link. Be sure to use this article's title as the "Subject" in your posts. Before you create a new thread, please check to see if a discussion thread is already running on the article you plan to comment on. Thanks!
Related Stories:
(Click here for further information)
|
|
|