KernelNewbies:

Linux 4.1 [https://lkml.org/lkml/2015/6/22/8 has been released] on Sun, 21 Jun 2015

Summary: This release adds support for Ext4 encryption, experimental support for managing clustered raid arrays, a new device mapper target that logs all writes to the devices and allows to replay them, a driver to turn the memory in persistent memory systems in a block device, support for disabling multi-user support, support for the Multiprotocol Label Switching which routes packets based on path labels rather than long network addresses, allow to attach BPF programs to kprobes for better probing, ACPI support for the ARM64 architecture, and a virtual GEM driver that allows improved software rasterizers. There are also new drivers and many other small improvements.

TableOfContents()

1. Prominent features

1.1. Ext4 encryption support

Linux already has support for data encryption facilities such as dm-crypt or ecryptfs, but they have performance and memory consumption costs. The Ext4 filesystem now supports encryption support: both data and file names can be encrypted with a key provided by the user. The key is used for the files of a directory and all the subdirectories. When reading, if a valid key is not provided, only the encrypted file names can be read, but not the decrypted ones, and the encrypted data can not be read.

To use this feature, you need e2fsprogs version 1.43, the keyutils software. A small howto can be found [http://askubuntu.com/questions/643577/how-to-create-ext4-encrypted-partition-on-ubuntu-15-04-with-new-4-1-kernel here].

For details about the internal design of this feature, see [https://docs.google.com/document/d/1ft26lUQyuSpiu6VleP70_npaWdRfXFoNnB8JYnykNTg here]

Recommended LWN article: [http://lwn.net/Articles/639427/ Ext4 encryption]

Code: [https://git.kernel.org/linus/6162e4b0bedeb3dac2ba0a5e1b1f56db107d97ec (merge)]

1.2. Experimental cluster support for MD

This release adds clustering support for [http://linux.die.net/man/4/md MD] (Linux software RAID). Cluster MD is a shared-device RAID for a cluster. It enables locking and synchronization across multiple systems on the cluster, so all nodes in the cluster can access the MD devices simultaneously, bringing the redundancy (and uptime) of RAID levels across the nodes of the cluster. Currently, the implementation is limited to RAID1 but with further work (and some positive feedback), it could be extend to other RAID levels. The code in this version is is high experimental and not recommended to use except for experimentation.

Small howto: [http://marc.info/?l=linux-raid&m=141935561418770&w=2 howto] Design Documentation: [http://git.kernel.org/linus/b8d834488fd7c0c5a79cd2bab112c37a3d3292b9 commit]

Code: [http://git.kernel.org/linus/d51e4fe6d68098d4361a6b6d41d8da727b1f1af4 merge]

1.3. Device mapper: new target that logs writes

The device mapper layer introduces a new target that log all write operations to a separate device, for later replay. The motivation behind this is to give file system developers a tool to verify that the file system is always consistent at particular points in the life of a file system by allowing them to replay the log in a variety of ways

Code: [http://git.kernel.org/linus/0e9cebe724597a76ab1b0ebc0a21e16f7db11b47 commit]

1.4. Single user support

It may be strange that a multi-user system such as Linux would consider a return to the past, such a single-user opearting mode, a feature. But it turns out that embedded targets that want to make Linux as small as possible and don't care about multi-user separation. In this release, it's possible to configure the kernel without multi-user support, under this option UID and GID are zero in any possible case and processes always have all capabilities

Code: [http://git.kernel.org/linus/2813893f8b197a14f1e1ddb04d99bce46817c84a commit]

Recommended LWN article: [http://lwn.net/Articles/631853/ Linux as a single-user system]

1.5. Virtual GEM driver for improved software rasterizers

The vGEM (virtual graphics memory manager) DRM driver allows to import a GEM object from other graphic drivers and mmap them to user-space, which can use it as a GEM shared memory handler. This makes it a lot easier to do certain things when you have no GPU but still have to deal with DRI expectations. It's used by Mesa's software renderer for enhanced performance.

Code: [http://git.kernel.org/linus/502e95c6678505474f1056480310cd9382bacbac commit]

1.6. Block device for persistent memory

There are new types of memory that can be accessed almost as fast as RAM, but don't lose data after powering off the system. This kind of memory is called persistent memory. In this release Linux includes PMEM, a driver that presents a reserved range of memory as a block device, which can be used by file systems. This is useful for developing with non-volatile DIMMs, and can be used with volatile memory as a development platform.

Recommended LWN article: [http://lwn.net/Articles/640113/ Persistent memory support progress]

Code: [http://git.kernel.org/linus/9e853f2313e5eb163cb1ea461b23c2332cf6438a commit]

1.7. Multiprotocol Label Switching

This release adds support for [https://en.wikipedia.org/wiki/Multiprotocol_Label_Switching#Deployment Multiprotocol Label Switching (MPLS)]. MPLS is a scalable, protocol-independent networking transport that directs data from one network node to the next based on short path labels rather than long network addresses, avoiding complex lookups in a routing table, because packet-forwarding decisions are made solely on the contents of the label, without the need to examine the packet itself. The labels identify virtual links (paths) between distant nodes rather than endpoints. MPLS can encapsulate packets of various network protocols.

Code: [https://git.kernel.org/linus/ee23393b40062362feb220b32629624c1d3c402c (merge)], [https://git.kernel.org/linus/27db730c4f5ed524235b06523f2dae4961d3aa98 (merge)]

1.8. BPF programs can be attached to kprobes

In this release, Linux allow to attach small BPF programs to kprobes, providing a safe way to execute user-defined BPF byte-code programs without being able to crash or hang the kernel in any way. The BPF engine makes sure that such programs have a finite execution time and that they cannot break out of their sandbox. This allows user-defined instrumentation on a live kernel image that can never crash, hang or interfere with the kernel negatively. In this release, it's limited to root only

Code: [http://git.kernel.org/linus/2541517c32be2531e0da59dfd7efc1ce844644f5 commit]

1.9. ACPI support for the ARM64 architecture

For a long time, ACPI has mostly been a x86 feature. Despite the controversies, some parts of the ARM world have been pushing for ACPI support. In this release, Linux adds preliminary ACPI 5.1 support to the arm64 architecture.

Documentation: [http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/Documentation/arm64/arm-acpi.txt?id=dc81f2cfaa7f536e9900080cdc63e403440b670b Documentation/arm64/arm-acpi.txt]

Recommended LWN article: [http://lwn.net/Articles/574439/ ACPI for ARM?]

Merge: [http://git.kernel.org/linus/836ee4874e201a5907f9658fb2bf3527dd952d30 commit]

2. Drivers and architectures

3. Core (various)

4. File systems

5. Block

6. Cryptography

7. Memory management

8. Security

9. Tracing & perf

10. Virtualization

11. Networking

12. List of merges

13. Other news sites

KernelNewbies: Linux_4.1 (last edited 2016-01-11 17:44:37 by diegocalleja)