Following some initial concern earlier in the month about a large volume of small, last-minute pull requests that ultimately necessitated a seventh release candidate, Linux creator Linus Torvalds on Saturday published the final version 3.5 of the Linux kernel.
“Ok, not a lot happened since -rc7,” Torvalds admitted in his announcement email. “There's a number of MIPS commits (for some reason MIPS has had a horrible track record with the -rc time schedule, I suspect I should just stop pulling late in the game), but most of the rest is pretty small.”
In addition to bringing a raft of new drivers and fixes, this latest version of the Linux kernel is notable for new features including metadata checksums in the Ext4 filesystem, new probes to help find performance problems in user applications, and an Android-style opportunistic suspend feature.
Ready for a rundown of the highlights? Here are some of the best new features you'll find in Linux 3.5.
1. Metadata Checksums in Ext4
Playing a little bit of catch-up with filesystems such as ZFS and Btrfs, the Ext4 filesystem in Linux 3.5 has now gained the ability to store checksums for various metadata fields. So, “every time a metadata field is read, the checksum of the read data is compared with the stored checksums,” the Linux 3.5 changelog explains. “If they are different it means that the metadata is corrupted.” Because it's focused on internal metadata structures and not data, no significant performance cost is expected to be associated with this new feature under typical desktop and server workloads.
2. A User-Space Monitor
Uprobes, meanwhile, is a new performance monitor that's essentially equivalent to Kernel Dynamic Probes (Kprobes) but for the user-space side. Using it, performance probes can be placed in any user application memory address, where they will collect debugging and performance information nondisruptively and help identify any performance problems.
3. Better Android Compatibility
When Android code was merged into Linux earlier this year, there was some controversy over Android's "suspend blocker" functionality used for power management. The technology has been especially problematic because drivers in Android devices use the suspend blocker API, but the lack of such an API in Linux has made it impossible to merge them. Now, with Linux 3.5, similar functionality in the kernel called "autosleep and wake locks" should make it easier to merge drivers from Android devices.
4. A Weapon Against 'Bufferbloat'
Then there's the new queue management algorithm in Linux 3.5 called Codel (short for "controlled delay") that aims to battle “bufferbloat,” or the problem that arises when there's excessive buffering across an entire network path. With this new technology, in fact, bottleneck delays can be reduced “by several orders of magnitude,” according to the Codel project page.
5. Extended Seccomp Sandboxing
Back in 2005 Linux 2.6.12 gained support for seccomp, or "secure computing,” which is a sandboxing mechanism that enables a state in which only a very restricted set of system calls can be made. Now, with Linux 3.5, seccomp has been extended into “a filtering mechanism that allows processes to specify an arbitrary filter of system calls (expressed as a Berkeley Packet Filter program) that should be forbidden,” the changelog explains. “This can be used to implement different types of security mechanisms.” The Linux port of the Chromium Web browser, for example, supports this feature to run plugins in a sandbox.
This, of course, is only a very small selection of what's new in Linux 3.5 -- a wide variety of driver, graphics, performance and other improvements are also included. A much fuller account is available in the changelog on KernelNewbies.org.