You hear a corporate executive say something in the midst of a stream of marketing fluff, and your adrenalin starts pumping… did I just hear right? Did other journalists in the room pick up on this? Are there any other journalists in the room? How can I get this story online right away?
That happened to me at the Intel Developer Conference in San Francisco yesterday. It was a small fact dropped by a Microsoft exec that was a red-hot poker: a blow for Intel, the PC hardware industry, the Mac community and PC end-users who were eagerly awaiting the release of Microsoft’s next-generation operating system, Windows Vista.
This story was going to be big. Its ramifications were:
- Microsoft was removing another key feature from the next generation generation Windows Vista before shipping
- Buyers of the new Intel-based Macs who had been hoping they could dual-boot Windows and OS X on the one PC would find out for the first time that they won’t be able to… ever.
- The whole PC industry would lose a major incentive to move on from the 20-year-old PC architecture onto a new modern platform
- Intel was getting a public slap in the face from Microsoft at its own worldwide Intel Developer Conference, with Microsoft saying it was putting the brakes on adopting one of Intel’s key technologies at a critical moment.
Before the bombshell
The conference had closed officially. The gigantic pressroom with network connections for hundreds of international journalists had been shut down. Intel was taking apart its Cisco Aironet wireless network piece by piece. Roadies were packing up tonnes of staging equipment and demo PCs and rolling up cables. The press agenda said “free time and transfer to airport.”
But there were two sessions late on the last day… one from Microsoft on its plans for Windows Vista and the new Extensible Firmware Interface (EFI), and another from Apple on how it had implemented EFI into the new Intel Macs.
I thought… “that’s odd. Why would these sessions from such major companies be run at the very end of the conference, after most people had left?”
I resolved to hang around and see what came out of the sessions.
But first, what is EFI and why should you care?
Unless you’ve been following this issue, EFI sounds like just another unimportant bit of motherboard technology. But it’s actually a tremendously important change in the architecture of the personal computer … it replaces the 20-year-old PC basic input output system (BIOS) and modernises the way the computer boots and device drivers are loaded.
To put it in perspective, instead of NVIDIA having to make video card drivers for Windows, Linux and Mac, it would only need to make a single device driver for the EFI firmware. When the computer is switched on, it would initialise all the devices in the PC, including the NVIDIA graphics card, using drivers stored in flash memory.
The Linux community wouldn’t have to reverse engineer drivers to get basic support; Mac users would have a hugely increased selection of hardware to use and Windows users would have a device driver system that wouldn’t be so deeply intertwined with the operating system and potential conflicts and incompatibilities.
Put simply, EFI takes device drivers out of the operating system and into the hardware. So much easier to debug, make stable, and the promise is that you’ll even be able to download and update drivers over your network connection -before- the PC boots, as network support is part of the EFI pre-boot environment.
UPDATE: I’ve since been informed that EFI doesn’t replace operating system drivers, but it does replace the way today’s BIOSes currently initialise hardware on boot. Apparently BIOSes are hard-coded to support specific hardware types, and each time someone releases a new category of hardware, the machine-code BIOS has to be hacked a bit more. Apparently it’s a patchy and unsustainable codebase. We now return you to your regular programming…
The PC industry has been very slow to move to EFI, because it is a dramatic change to the way PCs work. Realising this, Intel created a piece of overlay software called a “compatibility support module” that allows old operating systems that don’t support EFI booting to load — it essentially emulates a BIOS and translates those calls over to the EFI.
The idea is that motherboard makers could ship boards that had EFI inbuilt but would still boot legacy operating systems. Over time, as EFI gradually became dominant over BIOS-only systems, operating system makers could move to EFI booting exclusively, and take advantage of all the benefits.
Microsoft is an absolutely vital ingredient in the plan to move the whole industry over to EFI. It has been promising for years that Windows Vista would support booting on EFI, and this was expected to be the carrot that would entice hardware makers to make the switch.
Indeed, Intel had already started shipping boards with EFI support – all 945 chipset boards have EFI support, for example, though they came with BIOS code running.
The Apple connection
When Apple was designing its new Intel-based Macs, using EFI was a no-brainer.
It didn’t have a ‘legacy’ operating system to support (such as all the released versions of Windows to date, which are deeply reliant on PC architecture principles dating back to the early 80s.)
So it built its Intel Macs with full EFI implementation, choosing not to include Intel’s BIOS compatibility support module.
Nonetheless, most Mac users who could look beyond the fact that Apple had been deriding Intel for years were delighted that Macs were finally moving on to the Intel platform. The fact that Microsoft was including EFI booting in Vista soon became a hot topic of discussion.
The potential was for Macs to become the “ultimate compatibility boxes”. Some distributions of Linux could already boot on EFI, OS X for Intel was designed from the ground up for EFI, and Windows Vista could boot EFI. For the first time ever, the Mac had the potential to be the one machine that could legally run all the major OSes elegantly on one box.
More practically, though, a large number of Mac notebook users knew that they were never going to get away from Windows at work for one reason or another, but at least with a dual-boot Mac, they could boot and run Windows at work and reboot into OS X when they were at home.
Getting back to the conference…
i was sitting in the Microsoft presentation. As far as I could tell I was the only journalist who had come along. It did start out as a rather boring presentation.
But then Microsoft Development Manager Andrew Ritz dropped his bombshell … couched in the most positive and EFI-friendly terms possible: Microsoft was really excited about the potential of EFI and was committed to supporting it, but, um, they’re not going to ship support for it in any version of Windows Vista client on its initial release after all.
OK – that’s my paraphrasing of what Ritz said – but that’s the crux of it. Here’s the actual transcript of the beginning of the session. (Some less relevant bits excluded).
RITZ: Alright, let’s get started. My name is Andrew Ritz as has already been pointed out and I’m a Development Manager at Microsoft Corporation. My team is responsible for building a lot of the pre-OS componentry that gets a system up and booted, and I’m really glad to be here to talk about our plans for integrating EFI support into our future Windows releases.
So far so good… sounds like they’re really committed.
RITZ: So the plan for today if there’s one thing to get across is for you to get a really crisp understanding of our roadmap for Windows and EFI moving forward. I’m going to go over a little bit what support we’re taking advantage of for EFI and, er, dive into some details about how that installation can be packaged. I’m going to go over our usage models for the pre-boot environment and finally for those people that are implementing EFI we have a couple of gotchas that we’d like to go over with you.
Still sounds good.
RITZ: So, uh, the first thing I want to go over is our channel support strategy for EFI. On Itanium systems we’re continuing really unchanged. Server Longhorn release is going to include complete support for Itanium including all those EFI 1.10 systems out there. And that’s really the main place where we’ll have EFI 1.10 support. Everywhere else, we’re going to do it as UEFI 2.0 support. So we are planning on UEFI support for the x64 … 64 bit … release of Longhorn Server. And then subsequent 64 bit client releases will also include UEFI support.
Hmm.. what does he mean by “subsequent client releases”?
RITZ: I really want to point out here that UEFI is a really great chance for us to take EFI 64 bit at its big inflection point … it’s really going to change things. […] So, 64-bit yes, but we’re not planning 32 bit support. And I’m going to go into that a little bit. So we aren’t planning any plans to ship 32 bit EFI support, including 1.10 based 32-bit EFI systems…
Holy cow… did I just hear that right? No 32 bit EFI support, including 1.10 based EFI systems… that has just counted out ALL Intel-based Macs released to date. -adrenalin starts running-
RITZ: Really, um, during the UEFI specifying work, we decided that the firmware is going to match the bit-width of the operating system we’re booting. So you have a 64-bit EFI firmware, you have a 64-bit OS. 32 bit firmware, 32-bit OS. When you consider that most of the stuff in the Vista and Longhorn Server timeframe is going to be x64 capable, I think the one we’re really waiting is for Intel’s Merom processor to come out, and then we will be 64 bit across the board.
Then you would really be presenting people are building platforms with a choice. Do they want to do legacy support for existing operating systems that don’t support EFI native boot, or do they want to support x64 BIOS for the x64 EFI BIOS, do they want to support 32 bit EFI BIOS. Packaging all those together can be pretty expensive in terms of the flash cost, so we’d like to see most people take the leap to have a 64 bit EFI BIOS and legacy BIOS to support older systems if they choose to do so.
So as part of that we’re really focusing on the x64 plan and we’re not really bothering to support 32 bit. Since UEFI is new, there’s not really a whole lot of existing 32 bit UEFI systems out there that are really going to be compelling for us to support.
Um, OK… so Macs with EFI are absolutely definitely not going to be able to boot Vista.
RITZ: So in terms of this pre-boot environment we’re really enabling EFI support for Windows but we’re not turning our back on all the existing set of systems out there that boot using the legacy BIOS mechanism.
Er, no… really? You don’t say. That would be all desktop PCs right now.
RITZ: So if widespread adoption of widespread EFI occurs, then we can start to think about, you know, doing a gradual transition away from supporting legacy conventional BIOS.
Uh-oh… “if” widespread adoption of EFI occurs? This is starting to sound like Microsoft is not so confident in EFI as a platform after all…
RITZ: So again, we have EFI support planned for Windows Longhorn server and we have EFI support planned for subsequent client releases. In terms of its enablement we’re really not focused on server only, we’re working on enabling client systems as well, in subsequent 64-bit client releases.
So, to answer the gentleman’s question out there in the audience, we’re not planning on having UEFI support for Vista launch. It’s that subsequent client release that happens after Longhorn server that will have that support.
THUD. After promising EFI support in Vista, Microsoft has just admitted it is pulling another key feature from Vista before it ships. This is huge news.
RITZ: A combination of factors changed our plans. The big one, in my opinion was platform availability. With this huge move to 64-bit based platforms and for us to support it, we needed to see a large heterogeneous sample of 64 bit implementations out there for us to feel comfortable in supporting it.”
That’s fair enough, but why tell us now when Vista is just months away from shipping.
You can listen to the rest of the presentation in an audio recording (linked from the bottom of my APCMag.com article, Microsoft bombshell: no EFI support for Vista).
Spreading the news
The rest is history, as they say. I posted the news on APCMag.com thanks to some speedy work from the APC Chief Sub-Editor Mel Farr and acting Web Developer Lachlan Grant back in Sydney and the news ripped like wildfire around the world. Here are some of the reports:
The Unofficial Apple Weblog: Another Roadblock in Dual-Booting Mac OS X & Vista
Mary Jo Foley’s Microsoft Watch: Vista Sheds Another Anticipated Feature
Arstechnica: Vista looks to be a no go on Macs
Slashdot: Apple: no EFI support for Vista
Digg: Microsoft bombshell: no EFI support for Vista
Betanews: Microsoft: no Vista on Intel Macs (though their report was rather inaccurate unfortunately)
Engadget: Sorry, MacTel owners: Windows Vista won’t support EFI
MacDailyNews: Microsoft Windows Vista will not support EFI booting
Paul Thurrot’s Windows IT Pro: WinInfo Short Takes: Week of March 13