A single Linux kernel build that can run on various ARM-powered kit from competing manufacturers has come closer to reality, much to Linus Torvalds' relief.
Unlike the world of x86 PCs, which has standardised and well-documented hardware, there is little consistency across ARM-compatible systems beyond the basic processor instruction set. Just about every chip and device is custom designed, as this chart of cheap development systems illustrates. This fragmentation forces programmers to create new kernel ports for individual devices and system-on-chips (SoC).
But now Linux chieftain Torvalds has committed source code into the kernel to provide multi-platform support on ARM. The brains behind the update Olof Johansson commented: “This is a pretty significant branch.”
“It is now possible to build one kernel that contains support for highbank, vexpress, mvebu, socfpga, and picoxcell. More platforms will be converged over in the next few releases,” he said.
Version 3.7 of the Linux kernel promises to back ARM in a big way, tapping its immense popularity as the processor family of choice for anything battery powered, including smartphones and tablets. The low-power architecture is also moving into servers thanks to work by, among many others, Linux distro Ubuntu, PC manufacturer Hewlett-Packard, and chip makers Applied Micro, Marvell and Calxeda.
Planned features for version 3.7 also include support for 64-bit ARM and ARM Xen virtualization.
A multi-platform ARM kernel comes after Torvalds last year took ARM manufacturers to task for fragmenting the market and making his precious open-source kernel fatter in order to work on so many platforms.
“Gah. Guys, this whole ARM thing is a f*cking pain in the ass,” he railed.
In a typically Torvaldian rant, he attacked ARM manufacturers’ “masturbatory” device naming, changing file names for “fun” and altering human-readable names in board-specific source code “just to annoy whoever needs to merge the crap”.
David Rusling, chief technology officer for open-source ARM coalition Linaro that represents ARM companies, reckoned the ARM world's fragmentation causes each new Linux kernel release to gain about 70,000 new lines of ARM code versus 5,000 for x86. Linaro’s members include ARM, Freescale, Samsung and Texas Instruments.
According to Torvalds: “When I then get these 'independent' [Git] pull requests from four different people, and they touch the same files, that indicates that something is wrong. And stop the crazy renaming already! Just leave it off. Don't rename boards and drivers just because, at least not when there clearly are clashes. There's no point.
“Somebody in the ARM community really needs to step up and tell people to stop dicking around."
Based on Johansson’s source code changes, one Linux kernel build could supports devices of all kinds. He said electronics capable of running the new kernel include system-on-a-chip machines, storage devices, cameras, medical devices and Calexda's efforts to put ARM-powered chips in HP ProLiant SL6500 servers. ®