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 (
).
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
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.
Networking
The Berkeley packet filter (BPF), used by sniffer tools such as tcpdump, can now be used to filter VLAN tags. The
rtl8723ae driver for the Realtek RTL8723AE PCIe WLAN chip is new (
1,
2 and others). The brcmsmac WLAN driver
now supports the BCM43224 Broadcom chip, while the rt2800usb RaLink driver supports the Sweex LW323 USB WLAN adapter. The cdc-mbim driver, which supports broadband modems that implement Mobile Broadband Interface Model (
MBIM) 1.0,
specified by the USB Implementers Forum, is also new (
1,
2).
MBIM is a USB protocol for connecting modems for laptops, tablets and
desktop computers that provide an internet connection using GSM and
CDMA-based 3G and 4G (including LTE).
Drivers
The kernel's audio drivers now support the Philips PSC724 Ultimate Edge sound card. The kernel can also handle VIA's VT1705CF HD audio codec now. Another addition
is the mpt3sas "LSI MPT Fusion SAS 3.0 Device Driver" that supports
12GB SAS chips by LSI; it shares some features with the mpt2sas driver
that has been put into maintenance mode. The hptiop driver can now address
HighPoint RR4520 and RR4522 controllers. The kernel developers have
marked the uas driver, which handles the USB Attached SCSI protocol, as broken because it causes problems and is not yet ready for the major distributions.
Infrastructure
Following a lengthy, sometimes heated dispute between various kernel developers, a number of enhancements developed under the "balancenuma" umbrella have been merged into Linux 3.8 (
1,
2,
3,
4,
5
and others). In the ideal case, these improvements will enable the
kernel to automatically maintain coherence between the processor and
memory for a single process. This kind of setup is important for
optimising performance on multiprocessor systems which utilise the now
widely used NUMA (non-uniform memory access),
as processes on NUMA systems can access memory allocated to the
processor on which they are running faster than they can access memory
allocated to other processors.
Architecture
To simplify maintenance and ongoing development, the kernel
developers have removed support for Intel 386 CPUs and other CPUs that
make use of the architecture which was extremely widespread more than 20
years ago. 486 and newer x86-32 processors will continue to be supported. It was on a 386 that Torvalds first started developing Linux, but he will not be shedding any tears for the code, commenting: "I'm not sentimental. Good riddance."
Virtualisation
A balloon driver for Hyper-V has been merged
into the kernel. The Microsoft hypervisor can, at runtime, temporarily
transfer memory from Linux guests running this driver to the host and
subsequently return it.
Linux 3.8 more or less completes the major restructuring around user namespaces, driven forward over the last few months
by Eric W. Biederman. These changes will enable non-privileged users to
create an isolated space within which they will have root privileges.
Within this space, however users will not be able to do anything which
would require privileged actions to be taken outside of the namespace.
Resource controls
The kmem extension has been added to the memory cgroup controller (
1,
2 and others,
documentation). It can be used to limit the amount of memory
required by the kernel for managing processes. Using appropriately
configured limits, this should enable the kernel to keep the lid on fork bombs even within containers.