Wednesday, June 08, 2005

More like twenty steps backward.

Mac card vendor finds indications x86 Macs likely to use BIOS rather than EFI.

Fuck.

Mac controller card vendor George Rath isn't spelling out his argument clearly enough, so I will. Disclaimer: I'm not a developer, I'm just putting two and two together.

So far Apple's being real tight-lipped on what firmware the x86 Macs will use. Try googling 'BIOS' site:apple.com and after you've sifted through tons of Biography pages, what you'll mostly find is ancient articles referring to the difference between PowerMac and Intel architecture. Google 'EFI' site:apple.com and you'll get references to a color proofing system that uses the same acronym, and a handful of references to OpenDarwin libraries for Extensible Firmware Interface. Good, right?

Wrong. For one thing if you google 'extensible firmware' site:apple.com you get zero hits. Nada. Zilch.

Where the shit hits the fan is here. I'll skip repeating the part in the Apple Universal Binary Specifications which baldly states x86 Macs aren't using Open Firmware (but avoids saying what they are using):

Apple Univ. Binary Tips Ch. 5, Section 7 - "Disk Partitions"

"The partition format of the disk on a Macintosh using an Intel microprocessor differs from that using a PowerPC microprocessor. If your application depends on the partitioning details of the disk, it may not behave as expected. Partitioning details can affect tools that examine the hard disk at a low level."
Let's compare this with Amit Singh's older article explaining the difference between OF and BIOS for kernelthread.com, More Power to Firmware (emphasis mine):
The PC partitioning scheme is tied to the BIOS, and is rather inadequate, particularly when it comes to multibooting, or having a large number of partitions. PC partitions may be primary, extended, or logical, with at most 4 primary partitions allowed on a disk. The first (512-byte) sector of a PC disk, the Master Boot Record (MBR), has its 512 bytes divided as follows: 446 bytes for bootstrap code, 64 bytes for four partition table entries of 16 bytes each, and 2 bytes for a signature. Thus, the size of a PC partition table is rather limited, hence the limit on the number of primary partitions. However, one of the primary partitions may be an extended partition, and an arbitrary number of logical partitions could be defined within it. Note that Apple's partitioning scheme is much better in this regard.
Or rather, it used to be. About the only sunny side to this is Intel's EFI specification (PDF) which indirectly mentions backwards compatibility to "PC-AT" partitioning schemes.

We're left with the following possibilities.

Hopeful: Rushes have led to developer boxes using BIOS, but consumer Macs will use EFI.
Taking a long view: Developer boxes are using EFI but even EFI's advances still require Apple to spell out non-OF partitioning differences.
Pessimistic: Developer boxes are using BIOS, consumer boxes are using BIOS and ultimately we're fucked.

To some extent the die's already cast. A PPC Mac is two things at the same time: GUI Unix and hot iron. An x86 Mac is a pretty OS in a sea of pretty x86 OSes struggling with legacy hardware issues -- except for the other two, most of their apps aren't also spending the next 2 years running at 70% under software emulation. Longhorn can afford to hamstring its performance until IA64 is the norm. Linux sells itself on local compiles and generous variety of readymade builds.