By Jonathan Corbet
January 18, 2012
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.]
(
Log in to post comments)