Welcome to the Linux Weather Forecast
This page is an attempt to track ongoing developments in the Linux development community that have a good chance of appearing in a mainline kernel and/or major distributions sometime in the near future. Your "chief meteorologist" is Jonathan Corbet, Executive Editor at LWN.net. If you have suggestions on improving the forecast (and particularly if you have a project or patchset that you think should be tracked), please add your comments below.
Current conditions: the 4.6 kernel was released on May 15, 2016. There is quite a list of features for this release:
- Post-init read-only memory is a new hardening mechanism added to the kernel; it is the beginning of a renewed effort to make the kernel more resistant to exploitation.
- Memory protection keys are an Intel CPU feature allowing programs to divide their memory into zones and apply additional access restrictions to each zone. This, too, is a hardening technique; it can also be used, for example, to prevent sensitive data (cryptographic keys, for example) from being read when it is not in use. 4.6 will have the low-level support and will use this feature to set up execute-only memory; a set of associated system calls can be expected for 4.7.
- The new preadv2() and pwritev2() system calls add a "flags" argument allowing greater control over how I/O is done; the first use is to add a flag indicating a high-priority operation that should use polling for performance if possible.
- The kernel connection multiplexer will enable the implementation of higher-level network protocols in the kernel, for both performance and security.
- Compile-time stack validation is mostly of interest to kernel developers, but it will benefit all users by ensuring that stack tracebacks generated within the kernel (generally when something goes wrong) are accurate. This feature is also a necessary precondition to the full implementation of the live-patching feature, allowing more complex patches to be applied to a running kernel.
- The OrangeFS distributed filesystem has been merged after a long round of review and improvement.
A total of 13,517 non-merge changesets were pulled into the mainline repository during the 4.6 development cycle. It was thus not the busiest development cycle ever — that record is still held by 3.15, at 13,722 changesets — but it was close.
Short-term forecast: the 4.7 kernel can be expected sometime around July 17. The features that have been merged for this release include:
- The tracing histograms feature has been merged. Histograms allow certain kinds of event analysis in the kernel without the need to put together a BPF program to do the data accumulation.
- For those with more complicated tracing analysis needs, it is now possible to attach BPF programs to tracepoints. That allows the loading of (nearly) arbitrary analysis code into the kernel for the accumulation and analysis of tracepoint events.
- The LoadPin security module enables the configuration of systems that can only load kernel code from a specific device. This feature comes from the ChromeOS developers, who use it to improve the security of ChromeBook products.
- Out-of-memory detection has been improved, hopefully leading to more reliable, deterministic behavior when the system runs out of free memory.
- The schedutil CPU frequency governor heralds a new era where the various CPU power-management features work more closely with the scheduler. That should lead to more maintainable code and better power utilization.
Beyond this, of course, the 4.7 merge window brought in several dozen device drivers, countless fixes, and a wide range of kernel improvements.
As with the weather, there are no certainties about what may be merged into the Linux kernel going forward; every change is evaluated on both its merits and its long-term maintenance costs. Here are a few things on the horizon that are worth watching, though.
Kdbus is an implementation of the D-Bus interprocess communication mechanism in the kernel. This work has run into trouble in the developent community and is currently being redesigned. Chances are that kdbus will eventually find its way into the kernel in some form, though.
The Btrfs filesystem is taking longer than anybody might have liked to reach production readiness, but things are getting closer. Important features, like RAID5/6 support have been merged, and bugs are being squashed. We may well see at least one major distribution adopt Btrfs by default in 2014.
Control groups are the mechanism by which the kernel gathers processes into hierarchical groups; it can then apply policies and resource usage limits to those groups. This feature remains under intensive development, and a lot of changes can be expected over the course of the next year. See this article for a description of some of the ongoing issues in this area.
Power-aware scheduling. On systems with multiple cores (and even cellphones are multi-core these days), quite a bit of power savings can be had by shutting down CPUs when they are not needed. Overly aggressive powering down can make things worse, though, so care is needed. There are several patch sets out there, but there are stillsignificant disagreements over how this problem should be solved. That said, expect significant progress in this area in the 2014 time frame.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.