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.7 kernel was released on July 24. Some of the more prominent changes in 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. All told, 12,283 non-merge changesets were merged for this release; see this article for details on where those changes came from, and the KernelNewbies 4.7 page for lots of details about what was merged.
Short-term forecast: the 4.8 kernel can be expected around September 25. The merge window for this release is closed; some of the more interesting features which were pulled in this time around include:
- Transparent hugepage support for filesystems. The short-term impact of this change will be small, but, as this support moves beyond the memory-based tmpfs filesystem, hugepage support should lead to significantly improved performance.
- Kernel documentation is moving over to the Sphinx documentation system; over time this should lead to much more readable and maintainable documentation.
- The timer wheel reimplementation is a huge internal change that should be invisible to most users, but realtime users should be pleased with the elimination of the latency spikes it occasionally caused.
- "Express data path" is a plan to allow low-level packet-processing code to be loaded into the networking subsystem from user space. The beginnings of this work were merged for 4.8; now an eBPF program can be loaded to perform blindingly fast packet-drop and forwarding decisions.
- The GCC plugin infrastructure allows special modules to be loaded into the compiler while the kernel is being built; these modules can instrument the kernel for various types of testing or add kernel-hardening features. The only modules available in 4.8 can be thought of as demonstrations; more serious modules are already lined up for 4.9. Much of this work was funded by the Linux Foundation's Core Infrastructure Initiative.
- Architecture emulation containers allow containers to run code built for an architecture different from the host. Thus, for example, containers built for ARM systems can be run on a suitably configured x86 host.
- The hardened usercopy patches are the latest example of the sort of kernel-hardening technology that is slowly finding its way into the mainline; much of this work is based on code long found in the grsecurity project.
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.