Linus Torvalds has just announced the release of the 3.4 version of the Linux kernel. While Linus notes that there have been no majorly exciting changes since the last release candidate, it’s worth taking a look at some of the things that have made their way into this release of the Linux kernel and what it means to the Linux community as a whole.
Perhaps some of the most prominent features and changes that appear in the kernel, are centered on updates to btrfs, a new filesystem that offers much better fault tolerance and easy repair. Btrfs is largely developed by Oracle, with many contributions from RedHat and Intel. Although still under heavy development, btrfs has already been adopted by both SuSE and Oracle as fully supported filesystems within their own Linux distributions.
Other distributions, such as Ubuntu, are also starting to add btrfs to their armoury. One of the most exciting things about btrfs, is the ability to perform file snapshots and cloning, allowing you to view and work with the filesystem at various points within its history. But btrfs also brings other capabilities that will be invaluable within the enterprise, such as online resizing, built-in RAID, and subvolumes which may be interesting to use in conjunction with things like LXC. While btrfs has been around for a while, some performance and error-handling issues were holding many users back from experimenting with the new filesystem. The improvements that have made their way into this release of the kernel should go a long way toward encouraging adoption of this technology.
The new kernel also includes a good collection of supported GPU drivers, so that most of the major graphics cards will be supported right out of the box. There is also a new feature for auto probing CPU drivers. That’s because an increasing number of drivers support a specific x86 feature or CPU, and current methods of enabling support often require complicated hacks in order to get them to work. Auto-probing uses x86 CPUID information to determine what options are supported by a specific CPU.
One area where Linux has struggled for a number of years is dealing with compatibility problems across 32-bit and 64-bit architectures. While many 32-bit applications have been successfully ported to run natively within a 64-bit environment, the way in which memory is utilized by many applications leaves a lot to be desired. For one thing, 64-bit applications work with 64-bit variables and pointers, that means that they have a much bigger memory footprint.
At the same time, more memory is supported under a 64-bit architecture (usually a 32-bit architecture can only support up to 4GB). The problem here is that many 32-bit applications that have been ported to the 64-bit architecture, simply don’t need to make use of 64-bit variables. The new kernel brings with it a new X32 ABI (Application Binary Interface), that allows programs with a 32-bit architecture to be compiled as 64-bit applications and take advantage of all of the features provided by the architecture, but can continue to make use of 32-bit variables and pointers. That means that we’re likely to see many more applications being properly ported and behaving themselves in a 64-bit environment.
On the security side of things, the kernel now supports a ‘verity’ target within the device-mapper. This can be used to store cryptographic hashes of the blocks of the filesystem. What that means is that you can use hashes to determine whether or not blocks within the filesystem have been changed.
This feature was largely pushed forward by Chrome OS and Netflix in an effort to ensure that the underlying operating system was not modified, but it could also be used to watch out for rootkits and for intrusion detection, particularly in devices that use an embedded form of the OS. There’s also a new security module called Yama which can sit alongside selinux and apparmor in order to prevent any process from accessing the memory and running state of any other process running under the same user.
Overall, many of the updates in this kernel release look more oriented toward enterprise computing, with a stronger focus on scalability and security. That said, the X32 ABI will bring some relief to many who use Linux on the desktop, as we will see vastly improved memory management for 64-bit applications that only have 32-bit memory requirements. Processing for these applications will also be noticeably improved as the CPU cache requirements will also be diminished.
With every new kernel release, Linux pushes at the frontiers of technology, and it’s good to hear Linus found that this release went through so calmly. A full list of new features and changes in the 3.4 kernel is available at Kernel Newbies.