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.

This entry was posted in ARM, Hyperscale and tagged , , by bconoboy. Bookmark the permalink.

About bconoboy

Brendan Conoboy is an engineering project manager at Red Hat. During his 15 years in engineering he has focused on bespoke Free and Open Source software ports to new and exotic CPU architectures. Today Brendan shepherds emerging technologies into the mainstream Enterprise world.

3 thoughts on “The ARM Arc

  1. Nice article. Gives a good insight on what happened and what it took to support ARM in fedora. Is this gonna be a series of articles ( I see part1 in the URL ;-)) ?

  2. Pingback: Links 24/7/2014: Oracle Linux 7; Fedora Delays | Techrights

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s