Bucking standard conventions in software versioning, Linux 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.
[ Check out Microsoft's 'happy birthday' video to Linux: Cynical or sincere? | Track the latest trends in open source with InfoWorld's Open Sources blog and Technology: Open Source newsletter. ]
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 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 as well as 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 ever-more unweldy 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 3.0).
This new release features improvements in virtualization and file system support, in addition to the usual round of bug fixes and performance tuning.
Four years in the making, this version of the kernel is the first able to 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 speed performance of these guests. Previous versions of Xen offered this capability only by applying patches 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 on improving support for Btrfs (B-tree file system), a new storage system-friendly file system 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 due to the fact the implementation must be perfect, or users will lose data.
Improvements have also been made to 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 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 been made on the networking front. The kernel features a new just-in-time compiler for network packets, one that allows applications only to receive those network packets relevant to their operation. This can save up to 50 nanoseconds per packet, when enabled. For wireless users, the kernel now 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.