LCA: The past, present, and future of Ubuntu on ARM

Please consider subscribing to LWN Subscriptions are the lifeblood of LWN.net. If you appreciate this content and would like to see more of it, your subscription will help to ensure that LWN continues to thrive. Please visit this page to join up and keep LWN on the net.

The ARM architecture has traditionally been served by source-based distributions that are hand-built for specific systems; it has not seen much in the way of generic distributions like x86 has. As the ARM architecture grows in capability, adoption, and importance, though, distributors are looking more seriously about providing support for it. Ubuntu has been working on its ARM support for a few years now; in a 2012 linux.conf.au talk, Canonical developer David Mandala reviewed the history of Ubuntu's ARM distribution and gave some thoughts on where he thought things might go.

Ubuntu started making a distribution for ARM in 2008. This distribution was not based directly on Debian's effort for a simple reason: Debian was built around the ARMv4 architecture, but Ubuntu wanted to target the newer ARMv7. After some work, the first ARM-based release came out in April, 2009; it was targeted at the Freescale iMX51 development board.

Thereafter, ARM releases followed the same six-month schedule as the x86-based Ubuntu releases. The 9.10 release got them up to the ARMv6 instruction set and added support for a Marvell Armada board. 10.04 added support for an OMAP3 development board, could build on ARMv7, and was able to use the Thumb-2 instruction set. The Ubuntu ARM release also rebased itself onto the Netbook Edition at that time. 10.10 added initial device tree support; at this point, Ubuntu had started working with Linaro to improve ARM support in general. With the 11.04 release things started to get a little easier; in particular, TI had pushed support for the OMAP3 processor entirely upstream, so mainline kernels would just work on that architecture. The distribution was also targeting OMAP4 by this point; that support is arriving in the mainline but is not yet entirely there. Finally, 11.04 moved to using Qt for its desktop.

The current release, 11.10, supports the Beagleboard and Pandaboard systems, along with the iMX53 QuickStart board. There is a community-supported build for Toshiba's ARM-based AC-100 netbook system which, David said, is a lot nicer to work with than a development board. Ubuntu has also produced the first technical preview of the upcoming ARM server release.

The team is now working on the 12.04 release, due in April, which should include support for ARM server system-on-chip (SoC) processors from Marvell and Calxeda. The distribution is moving over to the ARMhf architecture, which offers hardware floating support (among other things), leading to a faster system overall. Ubuntu 12.04 will be fully multiarch-clean, which will make it much easier to do cross-development and testing on x86-based systems.

Life has been getting easier over time as the team gains experience and many of the software problems are hunted down and fixed. Creating the first ARMel archive, with 25,000 packages, took about three months; the ARMhf archive, instead, with 37,000 packages, was done in about three weeks. Lots of build issues have been overcome, and problematic assumptions in the code (such as "ARM systems will never be SMP") have been fixed.

Looking forward, David clearly sees a bright future for the ARM server architecture. That may be surprising to some; ARM has not generally been known as an architecture for servers, but that may be about to change. Power consumption is an increasingly important issue for data centers; many of them, at this point, have reached a point where no more power can be brought in and, thus, cannot accommodate any more systems. The industry spends some $45 billion per year on data center power and cooling. Anything that can reduce power consumption in this setting is welcome.

ARM is known for low power consumption, an attribute that makes it attractive in this situation. The architecture is adding a number of other features of interest to the server use case; we will be seeing 64-bit, multi-core processors with 2GHz clocks and support for virtualization. It will be possible to buy a quad-core SoC that can run flat-out with 5W of power, far less than any x86 chip. ARM servers, thus, have the potential to handle the server role while being much cheaper to buy and run.

So ARM servers may well find considerable success. Part of David's job, naturally, was to convince us that we would want to run Ubuntu Server on those ARM systems. It makes sense, he said, because Ubuntu has that experience with ARM going back to 2008; they have run into all the issues and know how things work. They have a distribution built natively for the Cortex A9 multi-core processor, ready to handle SMP workloads. And a lot of these systems will be running workloads like web serving - the sort of thing that Ubuntu has traditionally been good at.

Additionally, ARM-based server systems are going to bring some interesting system administration challenges. The density of these systems will be impressive, allowing the installation of thousands of servers into a single rack. Managing all of those systems - even at the level of ensuring they all get IP address when they boot - is not going to be straightforward. David thinks that Ubuntu's Juju configuration management system, originally developed for cloud deployments, will be well suited to the ARM server environment.

Looking forward, David anticipates that the first actual server release, targeting the Calxeda and Marvell SoCs, will happen in October. That will make Ubuntu the first operating system to support the ARM Cortex A15 processor. 12.10 will include support for virtualization with KVM or Xen. It will be a 32-bit release (64-bit work is getting started but is not ready yet), but it will support large amounts of physical memory using the (just merged for the 3.3 kernel) large physical address extension feature. Some of this support may also go into the 12.04 LTS release in later updates.

In 2013, the range of supported hardware will grow; there will also be support for the Cortex A7 processor and its interesting power management technologies. In 2013, he said, Ubuntu will be the first system to support the 64-bit ARMv8 architecture. UEFI boot will also be supported. Looking forward to 2014 and beyond, there will be a serious effort to create a unified kernel; running a single kernel on any ARM processor is a challenging goal, but it should be able to run on a wider range of processors than any kernel available today.

All told, it is an ambitious undertaking; ARM is not an architecture that has been congenial to general-purpose distributions in the past. But, if the ARM folks have their way, we may be about to see a significant change in the server market; Ubuntu clearly plans to be there if and when that happens.

[Your editor would like to thank the LCA organizers for assisting with his travel to Ballarat.]

