Linux 3.0 a Steady Step Forward
Bucking standard conventions in software versioning, Linus Torvalds has designated the new release of the Linux operating system kernel, posted Friday, as version 3.0, even while maintaining that the release is only a routine update.
"Sure, we have the usual two thirds driver changes, and a lot of random fixes, but the point is that 3.0 is *just* about renumbering ... No breakage, no special scary new features, nothing at all like that," Torvalds wrote on the Linux Kernel mailing list.
The new kernel was almost released on July 19, but the last-minute discovery of a subtle bug, and testing of a patch for it, delayed the release.
For the past eight years, the volunteer developers behind Linux have been laboring on version 2.6. This new release was bumped up to version 3.0 in honor of Linux's 20th anniversary--which takes place this year--as well as to streamline the increasingly cumbersome version numbering--the previous stable version of the Linux kernel was 184.108.40.206.
"It really is just another release along the lines of those we have been making since the beginning 2.6 days," said Jonathan Corbet, a kernel contributor and the editor of kernel watchdog site Linux Weekly News. "People read a lot into version numbers, but that really shouldn't be done here."
"The problem was that the numbers were just getting too high, and the '2.6' prefix didn't mean anything anymore," Corbet added. The developers agreed to jump to 2.7 should they need to fix a problem that would take longer than the 8- to 12-week release cycle, but no such problem ever emerged, and the minor updates spawned increasingly unwieldy version numbers.
As an example, under the old numbering scheme, this version of the kernel would be 2.6.40, and the first update would be 220.127.116.11. In the new scheme, the first bug fix update will be 3.0.1. (For compatibility with older programs, the kernel will identify itself as 3.0.0 instead of as 3.0).
This new release provides improvements in virtualization and file system support, along with the usual round of bug fixes and performance tuning.
Four years in the making, this version of the kernel is the first that can grant Xen hypervisor Dom0 (Domain 0) privileges. By having Dom0 privileges, the Xen hypervisor can run as the primary, or most privileged, layer for the computer. It can then parcel out access to other guest operating systems, which should accelerate the guests' performance. Previous versions of Xen offered this capability only in the form of patches applied to the kernel.
The Xen update has been a long time in coming, Corbet said.
"Xen is a classic example of what happens when you don't try to get your code upstream from the outset," Corbet said. Xen developers fell behind the work on mainline kernel, and expended considerable effort to "upstream the code," he said. A newer virtualization hypervisor, KVM (Kernel-based Virtual Machine) bypassed Xen and got embedded in the kernel first.
Much work has also been done to improve support for Btrfs (B-tree file system), a new storage system-friendly file system that is still under development.
"Btrfs has picked up an active development community and is moving along nicely; the only real gap at this point is a working filesystem checker," Corbet said. He noted that file systems can take a long time to finish because if the implementation isn't perfect, users will lose data.
Linux engineers also improved the way the kernel works with the EXT4 file system, which is currently the default file system in many Linux distributions.
The new kernel fixes some of the troubled interfaces that it has had with UEFI (Unified Extensible Firmware Interface), a next-generation BIOS replacement whose specifications have been vague and hence difficult to implement.
Several significant advances have occurred on the networking front, too. The kernel features a new just-in-time compiler for network packets--one that allows applications to receive only the network packets relevant to their operation. This arrangement, when enabled, can save up to 50 nanoseconds per packet. For wireless users, the kernel includes "Wake on Wireless LAN" (WoWLAN) capabilities for wireless networks.
Other additions address specific uses. The sendmmsg() system call could speed operations for high-rate messaging applications, such as financial exchanges. Work on the namespace file descriptor paves the way for implementing containers, a high-security way of securing workloads long available in Sun/Oracle's Solaris.