[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.3.39. It was a busy week in terms of kernel releases - three have come out since last week's LWN.
  • 2.3.37 included the relocation of a bunch of USB documentation, PCI changes, block device changes (see below), and an "inet peer" mechanism for keeping persistent information about remote systems on the net.

  • 2.3.38 added support for SMC ISA token ring adapters, the addition of a sound driver for Via motherboards, more block device changes, IRDA changes, continued SCSI tweaks, lots of USB changes, new network scheduling options, and a change of contact address for Jay Schulist, who appears to have gone to TurboLinux.

  • 2.3.39 includes the long-awaited beginning of 32-bit UID support, a number of PowerPC tweaks, i2o updates, USB updates, IPC tweaks, lots of DECnet changes, and a lot of little fixes.
Finally, there is currently a 2.3.40 prepatch available; it contains yet more USB changes, more PCI changes, and updates to the new "cramfs" compressed ROM filesystem.

The current stable kernel release remains 2.2.14. Evidently a few small glitches have turned up with this release; as a result, 2.2.15 will probably come out fairly soon, and will contain nothing but bug fixes. The first prepatch, 2.2.15pre1, is available now. Larger changes, such as new device drivers, will be held back to 2.2.16 at the earliest.

The current ancient kernel release remains 2.0.38, but work is in progress to produce a 2.0.39. Alan Cox has announced the release of the first 2.0.39 prepatch. The actual work for this release is being done by David Weinehall; he hsa sent out an announcement of his own, which lists the changes in this release. New 2.0 releases will only contain serious bug fixes, 2.0 users should not be expecting a whole lot of new features.

Changes to the block (disk) device interface were one of the bigger surprises this week. Alexander Viro sent out this note describing the new interface; it includes the creation of a new block_device structure. The new structure replaces the standard file_operations structure in a number of contexts; a couple of file_operations methods (revalidate and check_media_change) are disappearing from that structure altogether. The result, it is hoped, will be a cleaner and more capable interface to block devices.

Needless to say, this announcement got some reactions. Almost all device drivers, and certainly all block drivers, will be affected by this change. Some device writers have gotten a bit grumpy about yet another kernel API change that they will have to deal with. The kernel developers, however, strongly defend their right to change the API in development releases; the alternative is to slowly build up a crushing load of compatibility cruft. The right to change things creates ongoing pain for driver maintainers, but helps to maintain the quality of the Linux kernel code in the long term.

It is surprising, however, to see a major core API change come in this late in the development cycle. In theory, the kernel is in a feature freeze, and the interfaces should remain stable. The fact that this sort of change continues to make it into the 2.3 series reinforces the fact that the 2.4 release is still distant.

The 32-bit UID changes are also significant - they touch many parts of the kernel. An overview of the issues involved can be found in the highuid.txt file included in the Documentation directory. Among other things, disk quotas could have problems as a result of their use of the UID to index into the quota file, the accounting file format uses 16-bit UIDs, all the filesystems need to be checked over, the core dump format only supports 16-bit UIDs, and more. Cleaning up everything and making sure it all works is not going to be a small job. Nonetheless, this is a much-requested feature, and quite a few users will be happy to see it get into 2.4.

/proc and /proc/sys. Linus stirred up a bit of a storm by proclaiming that the sysctl interface (and, by extension, /proc/sys) is deprecated. Sysctl, of course, provides controlled access to internal kernel variables; for example, the file

	/proc/sys/net/ipv4/ip_forward
can be queried to see whether packet forwarding is enabled on the system, and writing a new value to that file will change that status. The sysctl() system call interface also provides access to sysctl variables.

Linus wants to move away from sysctl, and toward putting everything in /proc. His reasoning is essentially that sysctl is an inappropriate interface for the type of access needed. There is resistance to that approach, however, stemming from the fact that a number of people do not really like /proc. There appear to be two objections:

  • /proc makes all of its information available in ascii text form. As a result, applications need to get into text parsing to access the information. There are also very few standards for the formatting of this information; files in /proc tend to each have their own format. They also have been subject to changes that break applications.

  • There are a number of applications, such as embedded systems, where the overhead of /proc (about 70-80KB, according to Alan Cox) is not welcome.

The likely outcome appears to be "more of the same," with /proc and sysctl continuing to coexist.

Other patches and updates released this week include:

  • Jeff Garzik announced his new Via sound driver (which is now in the 2.3 series), along with a web site and mailing list.

  • Jeff Becker posted a kernel version of Pavel Machek's network block device server.

  • A new eepro100 driver was announced by Andrey Savochkin.

  • Those wishing that power-down on halt worked with SMP systems may want to have a look at this patch provided by Stephen Rothwell.

  • Keith Owens announced version 2.3 of the ksymoops utility.

  • Christoph Rohland announced a new implementation of SYSV shared memory using a pseudo filesystem. It brings a number of benefits, including the ability to clean up leftover shared memory segments with rm instead of ipcrm - a feature that many who have worked with SYSV shared memory will appreciate.

  • Saadia Khan of SGI announced a new NFSv3 and NLM4 (NFS Lock Manager) implementation. This announcement raised concerns that multiple NFS efforts were taking place in parallel, and that 2.4 would go out with (again) a second-rate NFS implementation. It appears, however, that the many parties working on NFS (including a couple of folks at VA Linux) are talking to each other and trying to work together toward the best possible release.

  • Paul Rusty Russell (and others) released netfilter 0.1.15, followed quickly by version 0.1.16 after version 0.1.15 showed an unwanted tendency toward crashing the system if less than 64MB of memory was available.

  • Thomas Sailer posted a devices file implementation for the Universal Serial Bus, leading to charges that he was trying to slip the controversial devfs system in via the back door. Thomas does not agree with the charge, he feels he's just providing a needed capability for the USB.

Section Editor: Jon Corbet


January 13, 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