David Mandala of Canonical talked last week at Linux.Conf.Au 2012 about the history of Ubuntu Linux supporting the ARM architecture, what's coming up for Ubuntu ARM in the 12.04 LTS release, and even what's expected from Ubuntu on ARM as far out as 2015.
In terms of ARM support under Ubuntu 12.04 LTS "Precise Pangolin", Mandala didn't unleash any surprises. Ubuntu ARM will continue to be supported for netbooks as well as their quickly-developing Ubuntu ARM Server edition. On the client/netbook side, the OMAP3 Beagle Board and OMAP4 Panda Boards will continue to serve as prime development targets. There will also hopefully be initial support for the first round of ARM server SoCs from Marvell and Calxeda by April, assuming there's hardware available in time. These first-generation ARM server parts will be quad-core 1.0+GHz SoCs, as was detailed last year.
With Ubuntu 12.04 on ARM there is also hard-float support (ARMhf), as previously talked about on Phoronix, and this will mean a huge performance boost for many workloads. Mandala said the performance boost they are seeing is between 5% and 30% improvement for floating-point operations. Also benefiting greatly for end-users is improved font-rendering, web-page scrolling, and other operations from this ARM hardfp support. Other code is also benefiting due to better use of the stack calling convention.
(Soon I should have out some ARM hard floating-point benchmark results from Ubuntu 12.04 on the Cortex-A9 PandaBoard ES.)
In terms of how the ARM performance is evolving, when Canonical began playing around with ARM support it would take two to three months to build out their "ARMel" archive from scratch with around 25,000 ARM binary packages from the main and universe repositories. Now with modern ARMv7 hardware and the latest Ubuntu Linux release, the "ARMhf" archive is building in about three weeks. The package building from scratch in the three week period is also up to over 36,000 packages. ARM hardware itself has improved and there's also been critical Linux bug-fixes for improving ARM throughput, etc.
Like Ubuntu x86, the multiarch support for ARM is also coming to fruition within Ubuntu and Debian. This is good for developers wishing to have some ARM libraries installed along side their x86/x86_64 packages. Additionally, down the road this will make it easier for supporting an ARM 64-bit Linux kernel while sticking to a 32-bit ARM user-land for systems lacking sufficient RAM.
A 64-bit ARM package archive is one of the items on the agenda for the Ubuntu 12.10 development cycle with ARMv8 support. Ubuntu 12.04 will deliver greater ARM server support, but this really will be building up over several releases. Canonical is betting big on ARM becoming huge in the server-space due to multi-core 2+ GHz performance coming while still having a miniscule power footprint compared to traditional x86 server hardware.
On a per-Watt basis, ARM for server can easily beat the latest Intel and AMD hardware with the power being cut by three or four times for the first-generation server SoCs. With ARMv8 there will also be the 64-bit hardware support as well as virtualization. ARM Linux virtualization will be exposed via KVM and Xen.
Ubuntu 12.10 for ARM servers will be focused around the Calxeda and Marvell server-class SoCs plus the usual spectrum of client SoCs. There will be continued work on optimizing for best power performance per Watt (side note: the Ubuntu ARM server team are among the users of the Phoronix Test Suite). Canonical wants Ubuntu 12.10 to be the first operating system to support the ARM Cortex A15, for being Linux-based or any platform. With hopefully beating Microsoft and their Windows Server 8 for ARM, Canonical also wants to make sure that Ubuntu 12.10 will fully support the virtualization capabilities found on the ARM Cortex A15 quad-core that should be out later in the year. There will also be 40-bit Large Physical Address Extensions (LPAE) support for having up to one terabyte of addressable RAM.
With Ubuntu 12.04.1 LTS, which will be the first point release for the Long-Term Support Precise Pangolin, they hope to add in some of the quad-core A9 and A15 SoC support from Ubuntu 12.10. Canonical also hopes to bootstrap the ARM 64-bit archive from Ubuntu 12.10 for this point release. However, David Mandala mentioned that it will take about a full six-month cycle to begin getting the ARM 64-bit archive support ready, since lots of the ARM Linux code simply isn't in shape, just as was the case when multi-core ARM SoCs emerged and the ARM Linux SMP code not being fit.
Next year, Ubuntu ARM for the 13.04 and 13.10 releases will continue to have greater client support and Ubuntu 32-bit server continuing to support enterprise-level ARM across the Cortex A8/A9/A15 SoCs. ARM Cortex A7 support is also expected for 2013 in supporting ARM's "Big Little" concept of dynamically switching between fast-ARM and slow-but-even-lower-power cores depending upon the workload.
In 2013, Canonical also hopes to do another ARM first: be the first operating system to fully support ARMv8 true 64-bit SoCs along with the UEFI boot method and theoretically handling up to 16 Exabytes of addressable memory.
Trying to predict further out, the Ubuntu Linux releases in 2014 and 2015 (Ubuntu 14.04 LTS, 14.10, 15.04, 15.10) will have new client and server support but ideally by then the ARM support will be conditioned in a state where there might be a single, unified ARM Linux kernel to support all ARM SoCs. Eventually they hope to get to that point for ARM support where one ARM Linux kernel build can work most anywhere, or at least for a large majority of the ARM platforms at the time. Additionally, they would like to see a single install image that could work with all available ARM hardware just as Ubuntu x86 is today.
Below is the full Ubuntu ARM presentation by Caonical's David Mandala from Linux.Conf.Au 2012 in Ballarat, Australia.