Linux in 2013: 'Freakishly awesome' – and who needs a fork?
Features, performance, security, stability: pick, er, four
Enterprise or mobile? There's no easy answer
How you answer the question of which processes to run where depends largely on what problem you're trying to solve.
For example, for some kinds of workloads, the NUMA (non-uniform memory access) problem is all-important. This is particularly true of distributed application clusters. A long as a CPU in a cluster node is working on data that exists locally, within the node's own memory or storage, processing is fast. But as soon as that CPU needs to access data that exists on some other node in the cluster – data that must pulled across some slow type of transport, like an Ethernet link – performance can degrade rapidly. Some Linux kernel developers would like to improve the CPU scheduler to handle such situations better.
Still other developers see power consumption as the primary concern. Here the scheduler might be able to help by switching off CPU cores that aren't strictly needed, for example. Instead of running four cores at half utilisation, the scheduler could power down two cores and run the remaining two flat-out, saving considerable energy – given a few code changes, that is.
But actually getting these and other proposed changes to the CPU scheduler code accepted by the kernel maintainers is extremely difficult, mainly because these portions of the kernel are so central to so many customers' needs.
"This code is the embodiment of heuristics that have taken years and years to develop – a bunch of ways of managing the system that we know work well across a very wide range of workloads," Corbet said. "As soon as you start to perturb those heuristics, you run a very real risk of creating performance regressions on workloads that you can't even possibly know about."
It can be especially problematic when code that causes regressions actually makes it into the kernel, Corbet explained, because it might be years before enterprise Linux distributors start shipping that version of the code to their customers. By that time, kernel development will have already moved on, and any performance regressions will be very difficult to fix.
This situation creates an interesting conflict within the Linux community, with opinions drawn along almost factional lines. Many of the proposed changes to the scheduler, for example, have been submitted by developers from the likes of Linaro, Samsung, or Texas Instruments – companies working on the mobile and embedded side of Linux.
By comparison, the companies in control of the core components of the mainline kernel have names like Google, IBM, Oracle, and Red Hat – companies that are either enterprise vendors or that manage large, enterprise data centres themselves. The two groups tend to view the world from very different perspectives.
Blazing a trail forward, together
So is it time to fork Linux? Do we really need two different kernels – one for mobile devices and one for the data center? Corbet says no, particularly in light of how platform fragmentation hurt and ultimately undermined the commercial Unix market.
For one thing, he observes, in days past mobile developers have griped about such enterprise-oriented kernel "bloat" as support for symmetric multiprocessing, support for large amounts of memory, file systems that can handle large volumes, and a sophisticated networking stack. But while all of these features would have been completely unnecessary on a mobile phone just a few years ago, for today's smartphones they're essential.
Jonathan Corbet: "We're now completely in the dark."
Similarly, while much of the work on power conservation in the Linux kernel has been driven by the mobile and embedded world, today's enterprises are waking up to the fact that their data centre power bills are expensive, and that reduced power consumption can benefit them, too.
"In fact, I would make the point that the insistence that we can make one kernel that works for everybody – for everything from your telephone through to the biggest supercomputers on the planet, and everything in between – is one of the biggest strengths of the entire Linux operating system," Corbet said.
But what's really interesting, he said, is how the nature of the squabbles that emerge within the Linux community have changed. Long gone are the days when the entire community was focused purely on catching up with what the commercial Unix systems had already done.
"There was a time when people would say that open source or free software wasn't capable of innovating. All we could do was follow taillights," Corbet said.
These days, he said, the Linux community has already surpassed the commercial Unix vendors, in terms of both features and user base. We're now at a point when a lot of the innovative work happens on Linux first and trickles out to other operating systems later – and that has interesting implications for Corbet's metaphor.
"If we were once following those taillights through the dark, well, those taillights have kind of faded away, and we're now navigating completely in the dark," Corbet said. "So we have to figure out where it is that we're going to go."
"And that's fine," he added. "We can do this." ®