The Linux Kernel’s Impact on the Desktop User Experience
It’s a cliché that most computer users care more about bells and whistles than how software performs “under the hood.” And while there may be some truth in such a view, it’s also clear that the backend affects users in important ways, whether they realize it or not. To illustrate this point, let’s take a look at some recently introduced features in the Linux kernel, and what they mean for the desktop user experience.
The overall experience for all but the geekiest of Linux users, of course, has a lot more to do with which distribution they choose and which desktop environment they run than with the kernel itself. The kernel mostly only provides a platform for everything else, and doesn’t define the way the computer is used.
But that doesn’t mean the kernel is irrelevant, not even on the desktop where graphical applications are much more important to most people than process tables and module interfaces. Indeed, consider the following recent developments in kernel code destined for release in the near future, and their impact on end-users:
One major change applied recently to the kernel code with desktop users in mind is a patch designed to increase application responsiveness by creating separate groups for certain processes. As Linus Torvalds wrote:
It’s an improvement for things like smooth scrolling around, but what I found more interesting was how it seems to really make web pages load a lot faster. Maybe it shouldn’t have been surprising, but I always associated that with network performance. But there’s clearly enough of a CPU load when loading a new web page that if you have a load average of 50+ at the same time, you _will_ be starved for CPU in the loading process, and probably won’t get all the http requests out quickly enough.
So I think this is firmly one of those “real improvement” patches. Good job. Group scheduling goes from “useful for some specific server loads” to “that’s a killer feature.”
The technical reasons behind the performance improvement may make sense only to computer scientists. All the same, however, the patch is a clear example of a change in the kernel which promises to exert a substantially positive influence on the experience of many desktop end users when it reaches them (which, however, probably won’t be for a little while, since the change has to wait for the 2.6.38 kernel release, according to developers).
The Linux graphics landscape has been redefined over the last few years as non-proprietary video drivers, such as nouveau, have become an increasingly viable solution for many users. That trend continues in current kernel development, with ever-expanding support for more GPUs and features.
Granted, many of the advances in video drivers are the work of projects that aren’t directly part of the kernel team. But their work, which is integrated into the kernel, represents an area where developments behind the scenes can have a major impact on the plans distributions make and, ultimately, the experience they ship out to users.
For example, improvements in nouveau, an open-source driver for Nvidia devices, are good news for Ubuntu developers, who are in the midst of major changes to Ubuntu Desktop Edition in the form of ditching X.org in favor of Wayland (not to mention replacing GNOME with Unity). Since Nvidia still appears to have no intention of supporting Wayland with its proprietary Unix driver, nouveau will be the only way for owners of Nvidia-based graphics cards to run Ubuntu at all, once the Wayland changes are applied. In this respect, Canonical’s fortunes are closely intertwined with kernel development over the next year or so.
Long-Term Support Kernels
Last, but not least, the announcement of a more consistent policy on providing “long-term” support for Linux kernel releases could play a major role in shaping the kernels distributions choose to push out to users. Currently, most major distributions choose whichever stable kernel version is the latest-and-greatest at the time of a new distribution development cycle.
The introduction of regular LTS kernels, however, could mean it would make more sense to choose an older kernel version with a longer life. For end users, that could mean a variety of different things, or nothing at all.
One positive that could come out of LTS kernels, however, is more reliable hardware support. Many are the Ubuntu forums posts where a user complains that upgrading to a new Ubuntu release (which implies a new kernel), or just updating the kernel package to the latest build, broke the graphics, wireless, suspend, etc. LTS kernels might help ameliorate such hardware-compatibility issues by allowing distributions to stick with a single kernel across multiple releases and focus on making sure it works very well, rather than pumping out a new version of the kernel every few months with less rigorous testing.