The ARM Arc
ARM. When used in a sentence it may refer to the company (ARM Holdings), one of its numerous CPU versions, or even a way of life. But we just call it ARM. ARM (the company) creates low power processor designs which they license to other companies to implement; Licensees enhance ARM’s design and manufacture the actual chips. The resulting processors are the defacto standard in the fiercely competitive consumer mobile space of tablets and cell phones. Of course, the thing that makes ARM interesting to Red Hat isn’t consumer mobile, it is evaluating their potential in servers. In theory if they perform well, their low-wattage designs might be quite compelling.
Beginning in 2011, Red Hat began providing assistance to the fledgling Fedora ARM distribution. I was Red Hat’s project manager for this initiative. Back then it was a humble secondary architecture under the stewardship of Seneca College. Seneca was working on an OS distribution for the Raspberry Pi, a promising educational tool. Red Hat partnered with Seneca, provided resources to advance development and helped build a community, the open source way. Though Linux had been used on ARM for many years, kernel ports tended to exist in different source trees. Likewise, many userspace packages had been written without multi-core, thread-safe ARM code, so there was a lot of work to be done.
Fedora development got serious in 2012. We completed development an OS bootstrap system to accommodate new architectures. The first order of business was to optimize the upstream code that goes into Fedora for the next generation of 32 bit ARM CPUs, ARMv7. These chips featured multiple cores, floating point units, atomic instructions and other features that had never been consistently available on ARMv6 or earlier. All development was done upstream and no special vendor-specific forks were used. Even the koji build system infrastructure moved from Seneca to Fedora Project hosting, to keep pace with the rapid development.
In late 2013, Fedora celebrated its 10 year anniversary and the Fedora ARM community celebrated a second event: after nearly 3 years of work and 5 major releases, Fedora 20 for 32 bit ARM processors was made a mainstream (“Primary”) architecture in the Fedora Linux distribution, the first architecture promotion ever. The years of development took considerable time and serious effort, but the result was worth it to us – what started as an embedded quagmire of incompatible kernel ports was replaced with single kernel source tree, then a single kernel binary. An incomplete patchwork of packages was replaced with the complete Fedora package set. Even with this monumental sense of accomplishment, there was still more to be done.
Fast forward to today: 64 bit ARM designs (aka AArch64, ARM64, ARMv8) are being announced by companies such as AMD, Applied Micro, and Cavium. Red Hat is continuing to invest in Fedora to support these new AArch64 designs. Fedora 21 alpha is scheduled to be released in less than 3 weeks and will be the first Fedora release with AArch64 as a full secondary architecture. As we continue AArch64 development and work toward its promotion to primary, all of us on the Fedora ARM team are excited about what the future holds.
[Part 2 is now available.]