What's new in Linux 3.8
by Thorsten Leemhuis
Improved graphics drivers and a new filesystem for flash disks are two of the most important changes in Linux 3.8. Kernel developers have also made improvements to btrfs and ext4 and merged a number of new drivers.
"Unicycling Gorilla" is the code name for Linux 3.8, released today by Linus Torvalds after ten weeks of development. The name is once more derived from an event in Torvald's life and an anecdote without significance, but many Linux users will benefit from the many enhancements in the latest kernel version.
This article provides an overview of the most important changes in Linux version 3.8 and a look ahead to what is coming in Linux 3.9. More information on 3.8 can be found in the "Coming in 3.8" mini-series:
In these articles, you will find the more detailed source articles that cover all the important changes in each particular area. There is also the "Minor gems" section in each which lists the many other changes not mentioned in the main article but which, for many users, are still of great significance.
In Linux 3.8, the Nouveau kernel driver will include everything that the OpenGL driver – which is part of current versions of Mesa 3D and is also called Nouveau – needs to use the 3D acceleration of all GeForce graphics chips available so far, without further configuration. This is the first time that the Nouveau developers, who use reverse engineering to get the information they need to program their drivers, have managed this feat; before this, they were still lacking standard 3D support for some newer Fermi GPUs and the Kepler graphics chips, which have been on the market since March 2012 (1, 2, 3). For many computers, however, NVIDIA's proprietary graphics driver will still be a better choice, since Nouveau can't activate the faster operation modes for many of the newer GeForce chips, resulting in 3D performance that leaves something to be desired. There are also other issues, particularly when it comes to video acceleration and fan management support.
The i915 graphics driver now supports by default the graphics cores of the Haswell processors that Intel will introduce under the name Core i4000 in a few months. The developers have also included a workaround for a bug in the Intel 830 and 845 chipsets so the graphics drivers are supposed to be stable on these chipsets.
Linux now supports F2FS (Flash-Friendly File System), a filesystem that was introduced by Samsung developers in October. It is designed for flash storage media that uses a more basic Flash Translation Layer (FTL) than SSDs for desktop PCs and servers – for example USB flash drives, memory cards and the storage media that is used in cameras, tablets and smartphones.
F2FS is a Log-structured File System (LFS) and progressively fills up storage media from the beginning; only once it has reached the end will it return to the beginning and use any areas that may have been deallocated in the meantime. Like Btrfs, F2FS uses Copy-on-Write (COW) to sequentially fill storage devices; this provides a certain robustness. Unlike Btrfs and Ext4, F2FS does not attempt to prevent data fragmentation; very short access times mean that fragmentation is not an issue with flash storage media. The userspace tools for formatting F2FS drives are available at kernel.org.
Btrfs and Ext4
Btrfs, which continues to be classified as experimental, now includes a "replace" feature that can transfer data from one drive to another faster than before – for example, before replacing a disk (1, 2). Other Btrfs changes include some that are designed to reduce latencies and CPU loads when calling fsync or writing data via O_DIRECT; further patches allow Btrfs to better distribute loads across multiple CPUs, which is said to improve performance (1, 2).
The new Inline Data Support feature allows Ext4 to store files that only consist of a few bytes together with the inode to save storage space and accelerate access (1, 2). Ext4 now also supports the SEEK_DATA and SEEK_HOLE lseek options that were introduced in Linux 3.1 and allow programs such as backup or copy tools to detect, and omit, empty areas in sparse files. Tmpfs now implements these lseek options as well.