KernelNewbies:

Linux 4.0 [https://lkml.org/lkml/2015/4/12/178 has been released] on Sun, 12 Apr 2015.

This page is not complete. It will be completed in the next few days. Meanwhile, you can read about Linux 4.0 in other sites:

1. Prominent features

1.1. Arbitrary version change

This release increases the version to 4.0. This switch from 3.x to 4.0 version numbers is, however, entirely meaningless and it should not be associated to any important changes in the kernel. This release could have been 3.20, but Linus Torvalds just got tired of the old number, [https://plus.google.com/+LinusTorvalds/posts/jmtzzLiiejc made a poll], and changed it. Yes, it is frivolous. The less you think about it, the better.

1.2. Live patching

This release introduces "livepatch", a feature for live patching the kernel code, aimed primarily at systems who want to get security updates without needing to reboot. This feature has been born as result of merging kgraft and kpatch, two attempts by SuSE and Red Hat that where started to replace the now propietary ksplice. It's relatively simple and minimalistic, as it's making use of existing kernel infrastructure (namely ftrace) as much as possible. It's also self-contained and it doesn't hook itself in any other kernel subsystems.

In this release livepatch is not feature complete, yet it provides a basic infrastructure for function "live patching" (i.e. code redirection), including API for kernel modules containing the actual patches, and API/ABI for userspace to be able to operate on the patches (look up what patches are applied, enable/disable them, etc). Most CVEs should be safe to apply this way. Only the x86 architecture is supported in this release, others will follow.

For more details see the [http://git.kernel.org/linus/1d9c5d79e6e4385aea6f69c23ba543717434ed70 merge commit]

Sample live patching module: [http://git.kernel.org/linus/13d1cf7e702596e0cd8ec62afa6bd49c431f2d0c commit]

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

1.3. DAX - Direct Access, for persistent memory storage

Before being read by programs, files are usually first copied from the disk to the kernel caches, kept in RAM. But the possible advent of persistent non-volatile memory that would be also be used as disk changes radically the way the kernel deals with this process: the kernel cache would become unnecesary overhead.

Linux has had, in fact, support for this kind of setups [http://kernelnewbies.org/Linux_2_6_13 since 2.6.13]. But the code wasn't maintaned and only supported ext2. In this release, Linux adds DAX (Direct Access, the X is for eXciting). DAX removes the extra copy incurred by the bugger by performing reads and writes directly to the persistent-memory storage device. For file mappings, the storage device is mapped directly into userspace. Support for ext4 has been added.

Recommended LWN article: [http://lwn.net/Articles/610174/ Supporting filesystems in persistent memory]

Code: [http://git.kernel.org/linus/283307c7607de2a06d3bfae4cfbf5a566d457090 commit], [http://git.kernel.org/linus/fbbbad4bc2101e452b24e6e65d3d5e11314a0b5f commit], [http://git.kernel.org/linus/d475c6346a38aef3058eba96867bfa726a3cc940 commit], [http://git.kernel.org/linus/289c6aedac981533331428bc933fff21ae332c9e commit], [http://git.kernel.org/linus/f7ca90b160307d63aaedab8bd451c24a182db20f commit], [http://git.kernel.org/linus/4c0ccfef2e9f7418a6eb0bf07a2fc8f216365b18 commit], [http://git.kernel.org/linus/95ec8daba310b44302d2977dd54b16886527b681 commit], [http://git.kernel.org/linus/6cd176a51e52e5218b1aa97e1ec916bac25a9b7e commit], [http://git.kernel.org/linus/9c3ce9ec58716733232b97771b10f31901caf62e commit], [http://git.kernel.org/linus/25726bc15731d42112b579cf73f30edbc43d3973 commit], [http://git.kernel.org/linus/a7a97fc9ff6c2fcec00feb34d9b87b94452b0b78 commit], [http://git.kernel.org/linus/d92576f1167cacf7844e5993f343eed4a6d8a147 commit], [http://git.kernel.org/linus/923ae0ff9250430133b3310fe62c47538cf1cbc1 commit]

2. File systems

3. Block

4. Core (various)

5. Memory management

6. Virtualization

7. Cryptography

8. Security

9. Networking

net: openvswitch: Support masked set actions. [https://git.kernel.org/linus/83d2b9ba1abca241df44a502b6da950a25856b5b commit]

net: sched: Introduce connmark action [https://git.kernel.org/linus/22a5dc0e5e3e8fef804230cd73ed7b0afd4c7bae commit]

netdev: introduce new NETIF_F_HW_SWITCH_OFFLOAD feature flag for switch device offloads [https://git.kernel.org/linus/aafb3e98b27977148c8c86499684f8f5c3decfbb commit]

KernelNewbies: Linux_4.0 (last edited 2015-04-26 18:10:03 by diegocalleja)