Linux 3.0 was released, featuring a storage backend for Xen virtualization and a scrubbed up antifrag version of the Btrfs filesystem. Meanwhile, Thomas Gleixner released a major new, real-time Linux patch to match Linux 3.0 for highly-deterministic applications.
Timed for release in conjunction with the 20th anniversary of Linux, which will officially be celebrated Aug 17-19 at the Linux Foundation’s LinuxCon event in Vancouver, BC, Linux 3.0 is just another Linux kernel update, according to Linux creator and gatekeeper Linus Torvalds. Back in May, he warned not to expect too much from the birthday release when he announced the major numbering shift – the first second-digit jump since Linux 2.6 arrived back in 2003.
“There are no special landmark features or incompatibilities related to the version number change,” writes Torvalds (pictured) in a blog announcing the release. “It’s simply a way to drop an inconvenient numbering system in honor of twenty years of Linux,” writes Torvalds, whose main job these days is to decide which updated code is ready to roll into each Linux kernel release.
The next release will be Linux 3.1, whose release data may wind up being determined by Torvalds’ vacation schedule, he explained. Torvalds, whose main job is to decide which updated code is ready to roll into each Linux kernel release, already had his vacation delayed by a last-minute bug that delayed Linux 3.0 by several days.
In what other major software project does the head honcho’s vacation plans change the release schedule? Well, perhaps more often than one would think, but only in the wonderful Oz-like open source reality of Linux does the wizard cop to it. You gotta love it.
Depending on one’s perspective, beyond the numbering change Linux 3.0 will be remembered either for the improvements to the Btrfs file-system, or for the new storage backend for the Xen hypervisor. If you’re a real-time Linux industrial developer, meanwhile, the big news occurred outside the mainline kernel earlier this week with a major new real-time Linux patch for Linux 3.0 from Thomas Gleixner (see farther below).
Btrfs fights fragmentation
Btrfs, which debuted in the Linux kernel in a preliminary version in the early 2009 Linux 2.6.29 release, has been steadily improved in subsequent releases including Linux 2.6.31 and 2.6.32. Btrfs is touted for offering better fault tolerance and offering easier administration than the Ext file-systems, among other benefits.
The first Btrfs enhancement is new anti-fragmentation code. Because Btrfs is a COW (copy-on-write) filesystem, it is plagued by even more data fragmentation problems than other filesystems, explainsKernelnewbiews.org, which offers its usual semi-official changelog on kernel releases. Btrfs already has several mechanisms for fighting fragmentation, but now offers an autofragmentation mounting option as well as an option to turn off COW to reduce fragmentation, according to the overview.
Btrfs also gains a “scrubbing” feature to check the integrity of the data in the filesystem. As Thorsten Leemhuis explains it in his typically lengthy kernel write-up on The H, the feature lets developers “instruct the kernel to read all data from the storage medium and run through all the checksums to ensure data integrity.” Among other enhancements, Btrfs is said to boost performance by about 15 per cent when creating files, and by about 20 per cent during deletions.
Other Linux filesystems have also been spruced up in various ways. The now mainstream Ext4, for example, gains a “punch hole” function that identifies areas that lack data so it can de-allocate them. This is said to be particular useful in virtualization environments.
Xen adds storage backend
As a result, explains Leemhuis, Linux “has finally acquired all the essential components for hosting guest systems as a Dom0 together with the Xen hypervisor.” He notes, however, that this is a “cut-down” version of Dom0 support and lacks extras found in commercial Xen products such as Xen Server, such as suspend-to-RAM and enhanced USB support.
Here’s a brief rundown on other features listed as “prominent” in the Kernelnewbies.org changelog:
- Sendmmsg() — syscall batching for send messages, said to offer speed improvements in light virtualization systems
- Cleancache — optional feature for improving page cache performance, said to be aimed primarily at virtualization environments
- Berkeley Packet Filter — just-in-time, memcached-like filtering technique, similar to FreeBSD feature, that can generate native code when filter is loaded in memory. (Writes, Leemhuis: “It generates assembler code at runtime that carries out some of the network packet filtering tasks set by sniffer tools.”)
- Wake on WLAN — similar to Wake-on-LAN, enables system to nap while Wi-Fi stays active
- unprivileged ICMP_ECHO messages — MAC OS X-like technique for pinging without special privileges, now offered as default, enabled at boot-up
- Setns() syscall — improved namespace handling for resources like filesystem directory structure, network resources, and IPC
- alarm-timers — improved, hybrid-style POSIX timers “inspired by the Android Alarm driver” and other high-resolution timers
- driver enhancements — Drivers include Radeon DRM/KMS driver with support for AMD Llanographics cores, and a i915-DRM/KMS driver for graphics in upcoming Intel “Ivy Bridge” Core processors. Other drivers include the Microsoft Kinect, Intel iwlwifi 105 and 135, Intel C600 serial-attached-scsi controller, Ralink RT5370 USB, several Realtek RTL81xx devices, and the Apple iSight webcam.
Gleixner releases real-time patch for Linux 3.0
If you’re in the real-time Linux community, looking to make embedded Linux on par with real-time operating systems (RTOSes) as a platform for highly deterministic, mission-critical applications, the big Linux 3.0 news was announced two days ago. That was when real-time Linux (RTL) project leader Thomas Gleixner (pictured) announced a major update of the PREEMPT_RT patch designed for the new 3.0 release.
This “long awaited” patch “is a major milestone of integrating it into mainline,” writes Carsten Emde at OSADL (Open Source Automation Development Lab). PREEMPT_RT provides guarantees for hard timing deadlines, as required by many mission-critical applications in industries like telecom, military, healthcare, music recording, and financial trading.
OSADL, which coordinates the development of open source projects in the areas of embedded and industrial design, including real-time and safety-critical Linux, has benchmarked the new patch and found it to offer very low latency. The latest patch, called by Emde “a major milestone of integrating it into mainline” Linux kernel, is said to be much smaller in size, in part due to upstreaming infrastructure patches. Other enhancements are said to include solving the “preemptible MMU gather problem” as well as various scheduler improvements.
Since its merger with the Real-Time Linux Foundation (RTLF), OSADL has regularly released “Latest Stable” industrial real-time Linux kernels based on the PREEMPT_RT patch series. In February, 2010, OSADL released Kernel 126.96.36.199-rt21, based on Linux 2.6.31, and in December, OSADL released Kernel 188.8.131.52.2-rt30, based on Linux 2.6.33. With the new patch, the RTL developers have finally caught up with the mainline kernel release.