Zack's Kernel News



The Linux kernel mailing list comprises the core of Linux development activities. Traffic volumes are immense, often reaching ten thousand messages in a given week, and keeping up to date with the entire scope of development is a virtually impossible task for one person. One of the few brave souls to take on this task is Zack Brown.

Our regular monthly column keeps you abreast of the latest discussions and decisions, selected and summarized by Zack. Zack has been publishing a weekly online digest, the Kernel Traffic newsletter for over five years now. Even reading Kernel Traffic alone can be a time consuming task.

Linux Magazine now provides you with the quintessence of Linux Kernel activities, straight from the horse's mouth.

Removing Obsolete Sound Drivers

Adrian Bunk has presented a patch to remove obsolete OSS sound drivers from the kernel if they have working ALSA equivalents. Exactly which drivers this includes has been a subject of some debate, in part because the hardware itself is sometimes hard to come by.

Whether this patch or a variant is accepted, the quest to simplify sound support continues. Adrian has made it his business to clean out ugly parts of the kernel. Whether it is whitespace cleanup, driver cleanup, or maintainership cleanup, Adrian routinely posts patches that many other kernel hackers would find too tedious to produce.

Not all of Adrian's contributions are welcome, however. Sometimes he overreaches and tries to change or remove something that is still in active use. Sometimes the code he plans to modify is still undergoing significant development and should not be cleaned up until later. Other times his contributions take code in a direction some developers just don't agree with. Over the years, some of his patches have been violently disputed, and Adrian has from time to time said he wanted to quit making this sort of low-profile but very useful patch just to avoid the hostile repercussions.

But here he is, still plugging away, working with OSS driver maintainers and former maintainers, current users, and folks with old sound cards lying around the house, trying to identify which OSS drivers work, and which are redundant with ALSA.

This is really an example of one of the best aspects of open source development, and the breakthrough Linus Torvalds had in 1991 when he first started soliciting contributions from the world. Adrian's contributions are not central to any part of the kernel, and few if any of his fixes are absolutely needed. If he had submitted these sorts of patches to any GNU project of the early 1990's, they would simply have been ignored, as were virtually all bug reports and patches submitted to the GNU project from outsiders at that time. It took H. J. Lu forking libc away from GNU entirely, to drive home the `release early, release often, anyone can help, or we'll do it instead of you' philosophy.

Nowadays, there is a whole class of developers who just enjoy producing small fixes, either all over the kernel as Adrian does, or just in a specific area. Sometimes folks hop from one area to another, like Rolf Eike Beer. Rolf has contributed over a hundred kernel patches over the years, starting with the SCSI code, where he updated documentation, fixed typos, and made the occassional more substantial contribution. Then he moved over to the PCI code, where he submitted many small fixes and code reorganizations, eventually becoming one of the most prolific PCI contributors.

Drivers

Several new drivers have risen up in recent days. Pavel Machek has submitted a driver to support the touchscreen capabilities of the Sharp Zaurus SL-5500 Linux-based PDA. This driver is essentially a port of the Sharp code to the ARM section of the mainline kernel. Unfortunately, it looks as though several other folks, including the original author Russell King, have been working on this port as well, trying to shoe-horn it into the kernel's driver infrastructure. Most issues of code location, and how generic the code should be, appear to have been resolved.

Brian Schau recently submitted his first Linux driver, called the Wireless Security Lock driver, WSL or "Weasel." The purpose of this newly available device and its driver is to allow the system to identify when it has moved too far away from a physical location, at which time some security measure could be taken, such as locking the screen. The overall reaction to Brian's contribution has been encouraging.

Stelian Pop has submitted a USB touchpad driver for recent Apple PowerBooks. Johannes Berg did the original reverse-engineering on the touchpad protocol, Alex Harper contributed details of the inner workings of the touchpad sensors, and Frank Arnold contributed various code improvements. Stelian feels the driver has been thoroughly tested and is ready for inclusion right away.

GIT

Linus Torvalds has migrated the entire BitKeeper kernel tree to git via the CVS archive. The transition through CVS has lost some of the patch history, reducing everything to a stream of individual patches. Still, the final result does have every patch in a manageable archive, proving git's ability to handle large repositories.

Linus has officially handed off maintainership of git to Junio C. Hamano, always one of the main contributors. Whether this will turn out to be similar to his handoff of the 2.6 kernel to Andrew Morton, which only partially materialized, remains to be seen. Junio is taking his role sseriously, and has been talking about putting out a git 1.0 release.

While Linus begins to turn his attention back to kernel development, he seems happy with the direction of git. As he remarked in late July, "this thing ended up being a bit bigger and more professional than I originally even envisioned." Clearly what began as a stop-gap, a short-term hack against a larger problem, has in a few short months become a very powerful, earth-shaking development. Serverless version control is here.

Swap Files and Swap Partition

Through the years, support for swap files and partitions in Linux has varied greatly, and from time to time someone asks about the optimal size for a swap area relative to RAM size, or whether a swap partition would be better than a swap file. Mike Richards asked this recently, and Andrew Morton said that under the 2.6 kernel, reliability is the same regardless of whether a swap file or partition is used. Performance should also be the same, according to Andrew, unless the swap file was highly fragmented when it was created, in which case the swap partition would perform better. The good news for fragmentation is that the swap file does not become more fragmented over time. If it is created unfragmented, it will stay unfragmented.

On the 2.4 kernel, Andrew says swap files are "weaker" than partitions, because swapouts require memory allocations from the main page allocator that the 2.6 kernel avoids. This is apparently enough to swing the difference.

DevFS

In the ongoing DevFS saga, Richard Gooch, the original author, has finally reemerged after a very sudden disappearance in November 2002. In his brief post to the Linux kernel mailing list, Richard defended the quality of the DevFS code, but then disappeared again without answering any further questions. Certainly there must be something to the DevFS code if it has lasted since 2002 with no maintainer. And as Jan Engelhardt pointed out, FreeBSD has also introduced DevFS into its own infrastructure. Greg Kroah-Hartman has certainly met resistance so far in his attempts to remove DevFS from Linux.