Linux Weather Forecast

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 to the Discussion page. There's a blog that reports on the main changes to the forecast. You can view it directly or use a feed reader to subscribe to the blog feed. You can also subscribe directly to the changes feed for this page to see feed all forecast edits.

Forecast Summaries

Current conditions:  the 2.6.32 kernel was released on December 2, 2009.  The 2.6.32 development cycle  saw the addition of almost exactly 11,000 individual changes from over 1200 developers representing almost 200 different companies.  2.6.32 has 559,000 more lines of code than 2.6.31.  See this article for more details on where the contributions to 2.6.32 came from.

Some of the more interesting changes in 2.6.32 include:

  • devtmpfs - an automatic device filesystem designed to improve boot times and reliability.  This addition is controversial, so there is a small possibility that it could be reverted.
  • Quite a few scheduler changes aimed at improving performance and interactivity.
  • new power management core, which will eventually support finer-grained runtime power management (and more efficient power use) on a wide range of systems.
  • The HWPOISON subsystem, which makes use of hardware support to add fault tolerance in the face of memory errors.
  • Intel graphics chipsets can now perform framebuffer compression.  If the contents of the frame buffer compress well, compression can significantly reduce the amount of memory scanning required to keep the display current.  That, in turn, can lead to up to 0.5W of saved power.
  • Support for a number of new diagnostic tools, including timechart and scheduler latency tracing.
  • The kernel shared memory (KSM) subsystem; KSM scans memory for pages with identical content. Duplicate pages are replaced with copy-on-write links, resulting in significant reductions in memory use.

Near-term forecast: the 2.6.33 kernel can be expected sometime around late February or early March, 2010.  The merge window for this development cycle was closed with the release of 2.6.33-rc1 on December 17.  Some of the more significant new features in 2.6.33 will include:

  • A number of tracing improvements, including dynamic tracing, allowing the placement of arbitrary trace points (for use with ftrace or perf events) at run time.
  • There is a new block I/O bandwidth controller, giving the system administrator a great deal of control over how the bandwidth of block devices is divided up among competing processes.  This controller is a work in progress, with significant chunks to be added in future development cycles.
  • The DRBD distributed block device implementation has been merged.
  • The Nouveau driver - a reverse-engineered driver for NVIDIA chipsets - has been merged.  See this article for more information on the merging of Nouveau.
  • There is a new compressed cache mechanism; it enables better use of memory (especially for hosts carrying a number of virtualized guests) by compressing memory contents and eliminating pages with duplicate contents.
  • The device mapper has a new "snapshot merge" target.  It's purpose is to allow a filesystem to be rolled back to a previous, snapshotted state.  It can be used, for example, to undo an operating system upgrade which did not go well.
  • A low-level spinlock renaming patch was merged.  This change will not be visible to Linux users; indeed, even most kernel developers are unlikely to notice it.  But this change is an important step toward the eventual merging of the remainder of the realtime preemption tree, bringing full, deterministic realtime performance to the Linux kernel.

Beyond that, of course, the kernel has seen the addition of dozens of new drivers, as usual, and many other fixes and improvements.

The current development prepatch is 2.6.33-rc6, released on January 29, 2010.

Specific Areas of Interest

The forecast has been divided into a number of specific subject areas.

  • Core Kernel Developments: schedulers, real-time support, event management, and memory management.
  • Virtualization and containers: Xen, KVM, control groups, etc.
  • Filesystems: ext4, btrfs, and other ways of storing data.
  • Security: technologies and enhancements for keeping Linux systems secure.
  • Networking: Network channels and other technologies for connecting systems together.
  • Hardware Support: Topics of interest in hardware support.
  • Miscellaneous: Topics which do not fit under any other heading.
  • User Space: user-space code which forms an important part of the low-level platform.

88x31.png

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License.

Core Kernel

By "core kernel," I mean code which affects the kernel as a whole and which isn't tightly associated with a single subsystem.  The core of the Linux kernel is quite small, and it has also been surprisingly stable in recent times.  The CPU scheduler has seen mostly incremental changes, and the core memory management code has seen few fundamental changes for years.  On the other hand, there is still interest in a number of areas, including real time, asynchronous I/O, fast booting, and more.

Virtualization

Virtualization and containers are complimentary efforts which seek to allow different tasks to be isolated from each other on the same host system. In virtualization, the guest systems appear to be running on their own hardware; each guest system runs its own kernel. The container approach runs all guests under the same kernel in a way that isolates them from each other. Virtualization gives more complete isolation and allows guests to be running a different operating system than the host; containers, however, tend to be far more efficient.

Filesystems

Filesystems, of course, are a crucial part of any operating system; they are the code which maintains our persistent data. Reliability is of especially high importance in filesystems, since any mistakes can lead to lost data or (even worse) subtly corrupted data which is not discovered for a long time. But filesystems are also a performance-critical part of the system; a poorly-written filesystem will result in substandard performance for almost any kind of workload.

Security

Security is a difficult and complicated problem, which must be addressed at several levels. The technologies discussed in this page are mainly concerned with mandatory access control - the hardening of the system so that no component of that system may go beyond its permitted capabilities. The largest value of MAC schemes is often seen when a system component is compromised as a result of an internal bug. If the MAC system has been set up properly, the compromised application should not enable the attacker to take control of the system as a whole.

Networking

Hardware Support

Miscellaneous Topics

User Space

Contents