The ARM Arc Part 3
This week heralded the announcement of Red Hat Enterprise Linux Server for ARM Development Preview 7.1, the next milestone in Red Hat’s exploring the potential for ARM servers. There is a lot in a name, and this one is a mouthful.
The Linux kernel is famous – it is the namesake of the complete operating system, but it does not exist on its own. A complete OS runs on hardware, starts out in firmware, loads the kernel, which in turn loads a software and service initialization system, all of which require function libraries, all of which were built with compiler tools that do the magic conversion from human readable source code to machine readable binaries. When ARM designed the AArch64 architecture, they also had to provide ports and specifications for the firmware, the kernel, the libraries, the compiler, and so on. Hundreds of packages were affected. Not only did they need to provide ports, those ports needed to be designed, written correctly, in a style acceptable to each of the communities whose coding standards are frequently rigorous, distinct, and strictly enforced. To top it all off, this work needed to be done before the actual hardware existed, necessitating writing software simulators to check all the work and extensive documentation to empower community collaboration.
The Fedora Linux distribution starts where all these upstream communities leave off – Fedora is the culmination of thousands of communities writing Free and Open Source software, combined into a single cohesive operating system. Fedora 22, just released, contains the work of 16563 communities, each wrapped up in a package, synthesized into a powerful distribution. When the Fedora ARM team began working on introducing AArch64 into Fedora 17 the number was closer to a mere 12000. Builds on simulators took so long it wasn’t until Fedora 19 that the initial Fedora port was done, and not until Fedora 21 that there was a proper aarch64 secondary architecture release built entirely with real hardware. Just 2 weeks ago, Fedora 22 for AArch64 was released on the same day as x86_64, i686, and armhfp (32 bit ARM).
By the end of 2013 there was a reasonably functional AArch64 operating system composed of mostly stock RHEL packages. Every RHEL release is derived from one or more Fedora releases. Fedora 19 was the primary upstream for RHEL 7, and RHELSA DP itself is derived from RHEL 7. Had RHEL 7 been based on an earlier Fedora release, the ARM work would not be present and RHELSA DP 7.1 would not have been possible. Everything had to go right – from the design at ARM to the software ports being written to the successful upstream community collaboration to the Fedora upstream inheritance schedule to the bootstrap completion to the requirement of having some packages from RHEL 7 to be rebased. While the support for AArch64 was not a part of the RHEL schedule, the requisite development just kept making it under the wire.
It is often said that the last 10% takes 90% of the time. To this behold 2014 as proof. While the OS was booting, it used uboot, not UEFI; device tree, not ACPI. Hardware was difficult to obtain or unstable. Packages built, but frequently either did not work or were profoundly slow. In due course every problem was tackled, every critical flaw repaired, until it was good enough to share with partners through the ARM Partner Early Access Program – visit Red Hat Connect for Technology Partners site to participate. With the release of RHEL 7.1, almost all stock packages included AArch64 support. Final pieces such as ACPI, UEFI required more partner and upstream collaboration and these are now upstream technologies. Through a series of monthly snapshots delivered and tested by our PEAPs, we finally reached the point that RHELSA Development Preview was ready for release.
Red Hat Enterprise Linux Server for ARM Development Preview is an ecosystem building OS, containing the majority of the base RHEL7 feature set developers need: Programming languages, performance profiling and debugging tools. server daemons, plus a contemporary Linux kernel, harnessing the latest upstream developments. If you develop software for or on RHEL, you will feel right at home with RHELSA Development Preview 7.1. We have made RHELSA DP available to our semiconductor partners who may in turn share it with end users like you. Enjoy!