[LWN Logo]
[LWN.net]

Sections:
 Main page
 Security
 Kernel
 Distributions
 Development
 Commerce
 Linux in the news
 Announcements
 Back page
All in one big page

See also: last week's Kernel page.

Kernel development


The current development kernel release is 2.4.0-test4. See the diffstat listing for the full list of changed files; in summary, the patch includes the addition of support for Orion boards as another MIPS sub-architecture, a big update to the Microgate SyncLink ISA and PCI serial adapter driver, more ACPI code work, some PowerPC tweaks, a sizeable update to the memory technology device driver, and a number of other small tweaks.

There are already three 2.4.0-test5 prepatches out there, with the latest version being 712K in size. The majority of that patch seems to be codepage updates, though a large update to the bttv driver also accounts for some of it.

The current stable kernel release is 2.2.16. The 2.2.17 prepatch is up to 2.2.17pre13, released without announcement on July 16th. Here is Alan's announcement for 2.2.17pre12, which came out just a couple of days before that. Comparing the two, pre13 appears to mostly hold S390 changes.

Meanwhile, for those still working in the older world, David Weinehall has released the sixth prepatch to the 2.0.39 stable kernel release.

The Wonderful World of Linux 2.4. Joe Pranevich has put out the "final draft" version of his Wonderful World of Linux 2.4 document, which describes the changes to be found in the upcoming 2.4 kernel. Check it out for a comprehensive discussion of what's coming.

RTAI releases real-time Linux add-on for kernel 2.4.xx (LinuxDevices). RTAI, the "Real Time Application Interface", is a real-time extension for Linux. It is also now available for the 2.4 kernel series. "Paolo Mantegazza, RTAI project leader, says the new release 'is a relatively advanced porting of RTAI to the approaching Linux [kernel] 2.4.xx, both for [Intel-x86] and PowerPC architectures'. The current RTAI version supports kernel 2.3.99-pre6 and 2.4.0-test1".

API changes, 2.4, and the release cycle. It all started with this message from Alexander Viro, describing a change in the way a number of functions in the kernel are called. A number of methods that used to be called with the "big kernel lock" held, such as revalidate, readlink, follow_link, open, and release, will now be called without that lock. If they need the big kernel lock, it will be their responsibility to obtain it themselves.

The big kernel lock is a historical remnant from the early days of Linux symmetric multiprocessing (SMP). Back in 2.0, this lock was used to insure that only one processor was running kernel code at any given time. Organizing things that way made SMP easier to implement, but leads to contention problems even with two processors. Thus, later versions of the kernel have been slowly eliminating the big kernel lock in favor of more fine-grained schemes. The change under discussion here is another step in that direction.

The problem, of course, is that the kernel developers are supposed to be stabilizing things in hope of actually getting 2.4.0 out someday. Thus Alan Cox, among other developers, has asked that Linus refuse these changes in the interest of kernel stability. Linus has, however, listed his reasons for accepting the patch, and it is going in.

Hans Reiser, not one to miss an opportunity, has pointed out that adding ReiserFS is not a very big change compared to some others that are still going in.

The kernel developers will cope with this change, of course, and 2.4.0 will come out at some point. But the explicit goal of a shorter development cycle for 2.4 is clearly not coming to be. Linus seems to have a hard time making feature freezes stick; as he puts it himself, he's "a push-over and a wimp." So the new stuff keeps going in. There is little doubt that 2.4 will be a better kernel for all of the additional work, but it's also a much later kernel.

Some ideas have gone around on how to avoid these delays the next time. They include:

  • Start off a new development series "pre-frozen," with a complete list of the changes that will be accepted that time around. The problem, of course, is that free software development often doesn't work that way; a lot of good code happens because somebody sees something that needs doing and just does it. Having that sort of code rejected because it's not on the pre-approved list would be demoralizing at best.

  • Split the kernel into a number of separate pieces which could be released independently. Just as Linux distributions are managed independently of the kernel now, the core kernel could be released separately from, say, the networking code.

    The problem with this approach is that many kernel changes impact many areas of the code. The "big kernel lock" change, for example, requires that numerous drivers be updated, along with filesystem and networking code. Having all that code in one place makes the changes relatively straightforward; life would be harder if things got split apart. Linus did mention that "someday" the internal kernel interfaces may stabilize enough to enable such a split, but that day has not arrived.

Then, there is the simple idea of imposing feature freezes earlier, and, importantly, sticking to them. Linus has made it clear that he means business with the 2.4 freeze at this point:

I want you guys to look at your computer screen, imagining the worst monster you can (the cacodeamon from Quake will do, just make him hairier and bigger and more MEAN), and think of me. Think of me like I am when I see a patch which isn't a pure bug-fix.

If you're whimpering just _thinking_ about sending me a new feature, you're in the right mindframe. Keep that mindframe.

Alan Cox then took the opportunity to point out that Linus needs to grow a beard if he's going to pull off the "hairier" part...

Other patches and updates released this week include:

  • IBM has released drop nine of its Journaled File System for Linux. JFS is still very much in an alpha state.

  • iptables 1.1.1, part of the netfilter package, has been released by Rusty Russell and company.

  • usb-robot 0.1.4 has been released by John Fremlin. This package provides generic, scriptable control for USB devices. "It comes with a program (usb-robot-master) that translates traces of MS-Windows driver actions from the output of sniffusb version 0.1 into usb-robot-slave commands, so you can get your device to do whatever MS-Windows told it to."

  • Eric Raymond released cml2-0.7.0, the latest version of his kernel configuration and build system. Immediately thereafter Linus shipped 2.4.0-test4, so Eric followed up with cml2-0.7.1.

  • Stephen Tweedie released sard 0.6, a kernel patch and utility to perform disk profiling.

  • Lilo 21.5 was released, with new support for booting disks with greater than 1024 cylinders.

  • Jeff Dike has released 0.27-2.4.0-test4 of his user-mode Linux kernel.

Section Editor: Jonathan Corbet


July 20, 2000

For other kernel news, see:

Other resources:

 

Next: Distributions

 
Eklektix, Inc. Linux powered! Copyright © 2000 Eklektix, Inc., all rights reserved
Linux ® is a registered trademark of Linus Torvalds