It's been a "calm" release cycle, according to Linus Torvalds, but the 3.4 Linux kernel released on Sunday still has plenty of interesting new features. Top of the bill? A X32 application binary interface (ABI) that will help provide better performance for applications that don't really need huge chunks of memory or 64-bit variables.
The 3.4 release doesn't have a lot of major new features, but it does have several pieces worth mentioning. The first and foremost is the X32 ABI.
The gist of the X32 ABI is that it allows programs to take advantage of 64-bit features that are useful, but without actually claiming 64-bit memory addressing. The 64-bit memory features actually slow some applications down, when they have no need of that kind of memory space. But running in old-fashioned 32-bit mode means that programs lose a lot of other features that newer 64-bit CPUs offer. As the Kernel Newbies page points out, "when a program runs in 32-bit mode, it loses all the other features of the 64-bit mode: larger number of CPU registers, better floating-point performance, faster PIC (position-independent code) shared libraries, function parameters passed via registers, faster syscall instruction..."
So the X32 ABI should help boost performance for a number of programs, over time. Don't expect it to show up overnight, though. It will be a while before a kernel with X32 ABI support shows up in stable Linux distros and programs are compiled to take advantage of it. But it's good to know it's on the way!
Btrfs Tools and Improvements
If you want to get the full scoop on Btrfs improvements and features, you'll want to check out this video from the 2012 Linux Foundation Collaboration Summit. Chris Mason, the driver behind Btrfs, talks about new goodies in Btrfs and much more.
The 3.4 kernel includes a restore tool for trying to recover data from an unmountable filesystem. The Btrfs filesystem checker (fsck) is also making progress, though not completely finished.
Another major jump, Btrfs now has better error handling. When Btrfs has an error, it now handles errors gracefully instead of having a system panic. Errors that would typically have generated a system panic now cause the filesystem to enter read-only mode. Not wonderful, but better.
Verifying Boot Paths
The 3.4 release includes a new target for the device-mapper (called "verity") that lets the system store a cryptographic hash to check the filesystem, to ensure it wasn't tampered with.
This can be a handy security feature, but it also looks like it's destined to help the entertainment industry with DRM on Linux-based devices. As Jonathan Corbet points out in a summary of the feature on LWN, "dm-verity will make it easier to create locked-down Linux-based systems that will enforce whatever DRM requirements the movie studios may see fit to impose. Thanks to dm-verity, there will no longer be pirated films circulating on the Internet; or, perhaps, that's the sort of outcome that only happens in the movies. Whether or not the effort is futile, it shows that tools like dm-verity can be used to harden Linux-based systems in ways that are hostile to their users."
It's worth noting, though, that DRM and user-hostile features are not the only use for verity.
The Usual Device Drivers
Naturally, it wouldn't be a kernel release without a slew of new and improved device drivers. This release includes support for new GPUs like the Nvidia GeForce 600, AMD Radeon 7xxx series, and Intel's Medfield graphics.
There's also several features for USB 3 in this release, mostly around suspend/resume features.
See the Kernel Newbies driver page for a list of new drivers and changes there.
The 3.4 kernel release is a pretty standard update. Several new features, and a list of continual improvements. Stay tuned, the next kernel will be around before you know it!