GARETH HALFACREE CATCHES UP WITH UEFI FORUM PRESIDENT MARK DORAN, TO FIND OUT WHAT WAS INVOLVED.
Replacing a widely deployed, decades-old lump of legacy code with a system suitable for the modern era is no small task, but it’s the mission Mark Doran, president of the UEFI Forum, chose. A former OS developer – ‘a poacher turned gamekeeper,’ he jokes – Doran heads the group responsible for the biggest development in the fundamental operation of computers since the IBM PC: the Unified Extensible Firmware Interface.
A replacement for the Basic Input Output System (BIOS), which has been a mainstay of personal computers since the 1970s, UEFI is a compatible standard that supplants the confusing spaghetti code [chaotic code with many unstructured branches, complications, threads and exceptions] with a system that programmers can actually understand and use.
‘When I first started working on this back in the late 1990s, I had the interesting experience of going to IBM and talking to them about the need to change the way firmware is constructed for Intel Architecture machines, based on limitations we were running into with conventional BIOS technology,’ Doran recalls. ‘A couple of the guys in the audience, which is perhaps no big surprise, were part of the original team from Boca Raton that was building the PC AT and the conventional BIOS with it.
‘They said, “You know, the mission we were handed originally was to build code that would support a product that was meant to be used in 250,000 machines to end-of-life; we had no idea that this code would still be kicking around 20-25 years later”.’ It may have been a surprise, but the BIOS became the de facto standard for the PC industry. Until very recently, even the most high-end modern systems relied on legacy BIOS firmware, the core of which stood largely unchanged since its inception.
Replacing it after so many years seemed impossible, until Intel developed the Extensible Firmware Interface specification, which would grow into the vendor-agnostic UEFI specification.
‘People became very “creative” about how support was built into the conventional BIOS for new developments in the platform, and the result was like a house-of-cards of coding in the conventional legacy BIOS, which mainly worked because of ancestral knowledge in the community that supports it, rather than precepts that were designed to be robust in the long haul, and in the face of the need for extensibility,’ Doran explains. The decision was taken: create an entirely new system. ‘It’s much easier to start again with a clean sheet designed for extensibility and robustness in the first place,’ claims Doran.
The path hasn’t been entirely smooth: the UEFI Forum simply publishes specifications, allowing members to develop their own implementations – although Doran’s employer, Intel, publishes an open- source reference implementation on http://tianocore.org. ‘Conversations about quality of implementation tend to be discursive, rather than prescriptive – they’re more about information sharing,’ Doran admits, which can lead to issues such as Samsung’s early implementation, which would brick laptops if too many variables were written to its non- volatile memory.
‘There are certainly documented instances where implementations are not in as good shape as I would wish to see them,’ Doran candidly admits.
‘Happily, they’re relatively isolated – this isn’t widespread. Clearly, it would be better if implementations were sound, robust and well screwed together, and if the policies they implemented were well thought out ahead of time. We’re in a transition; it will take us a while before we have the same history and experience among the broad set of vendors that are participating in the ecosystem with this quote-unquote “new technology”.
And, you know, bugs do happen in that kind of environment.’ Security, too, is a concern at the forefront of Doran’s mind. ‘Some of the downsides about demystifying some of what was historically spaghetti code, which was obscure by nature in the conventional BIOS, was that we put a lot of extra light between the firmware and the operating system in a way that explained how the system all worked to pretty much anyone willing to sit down and read the public, open documentation.’ ‘Lots of flexibility ensued,’ he explains with a mixture of pride and a hint of regret. ’We recognised that there was the potential, in creating this relatively open environment that was well explained and well documented, that we’d also made a playground for malware writers front and centre on all of these machines.’ The solution was Secure Boot, which Doran animatedly describes as ‘a defence against malware inserting itself into the boot flow. It’s not about DRM; it’s very strictly scoped to prevent the insertion of malware in this pre-OS space.’ While there were initial concerns that Secure Boot, which requires the host operating system to be signed with keys held in the UEFI’s storage, would lock third-party operating systems out of the market, that thankfully hasn’t happened beyond Microsoft’s insistence that ARM hardware licensed to Windows RT is restricted to that OS.
Doran’s work is far from finished.
The UEFI specification is undergoing change, much driven by its former critics. ‘A number of makers of Linux distributions are member companies – including, but not limited to, Red Hat, SUSE and Ubuntu,’ Doran explains ‘They’re all member companies now, and they have reps who participate in our interoperability plugfest events, and oft-times they’re sending representatives to our workgroup meetings.’ With manufacturers looking increasingly towards the merging of the tablet, smartphone and traditional PC spheres, one factor is certain: Doran and his fellow UEFI Forum members have finally succeeded in supplanting the BIOS.
1975 Gary Kildall coins the term BIOS to describe the portion of his CP/M operating system that’s loaded by the ROM-resident boot loader and used to interface with the machine’s hardware.
1981 IBM releases its Personal Computer, which includes a BIOS in read-only memory. Software developers are instructed to write calls to the BIOS, rather than directly to hardware, for performance reasons.
1982 The IBM BIOS is copied or ‘clean room’ reverse-engineered by competitors to create ‘IBM compatibles’, starting with the Compaq Portable.
1988 IBM-compatible PCs based on reverse-engineered BIOSes surpass the originals in the personal computer market, with Gartner estimating 1.5 clones are sold for every genuine IBM.
1993 Microsoft launches Windows NT, which moves away from using BIOS calls for every hardware interaction, in favour of its own abstraction layer.
1998 Intel launches the Intel Boot Initiative to address limitations from using the legacy BIOS with its new Itanium architecture hardware.
2000 Intel releases the first Extensible Firmware Interface specification, the result of the Intel Boot Initiative programme.
2006 Apple begins shipping its first Intel- powered machines, which use EFI in place of the non-x86 Open Firmware used on previous models.
2007 Intel donates the EFI standard to the newly-formed UEFI Forum for vendor- agnostic development, where it’s renamed to the Unified Extensible Firmware Interface.
2008 Consumer motherboard makers begin adopting UEFI, using its ability to run a GUI – even games and web browsers – as a selling point for early adopters.
TODAY The majority of x86 systems shipped use the UEFI standard, while Microsoft’s requirements for Windows RT on ARM mandate a UEFI implementation with locked-down Secure Boot. The legacy BIOS is all but forgotten.