Mac OS X 10.3, aka Panther, will not be a 64-bit operating system, despite running on a 64-bit processor, the PowerPC 970 aka the G5.
Instead, the next major release of the Mac operating system will be a hybrid, much like version 10.2.7, codenamed 'Smeagol', which Apple has running on its pre-production Power Mac G5 machines and with which it will almost certainly ship production units.
Smeagol is a 32-bit operating system, though certain libraries and other elements have been recoded to allow applications - and the OS itself - to make use of the 64-bit addressing and datapaths, sources close to Apple said. For example, that's how the Power Mac G5 is able to support at least 8GB of memory, double the 32-bit limit of 4GB. Panther will adopt the same approach, said the source.
The PowerPC architecture was always defined as a 64-bit environment - 32-bit operation was defined as a sub-set of that environment. According to IBM, the PowerPC ISA contains an "optional" 64-bit bridge to "facilitate the migration of operating systems from 32-bit processor designs to 64-bit processors" and to "reduce the amount of software change" necessitated by that migration. "This bridge allows 64-bit implementations to retain certain aspects of the 32-bit architecture that otherwise are not supported, and in some cases not permitted, by the 64-bit architecture," says IBM PowerPC documentation seen by The Register. It's this bridge that enables the 970 to offer native 32-bit support and in turn saves Apple and its developers from having to rebuild their apps.
When it runs 32-bit code, the 970 reconfigures the table it uses to map its 64-bit effective address space onto the 42-bit address space it can actually access to cope with 32-bit addresses. Two new instructions, which are part of the bridge spec., allow the first 16 entries of the table to point to any segment of memory within the effective address space.
The upshot that a 32-bit app can gain access to a much larger address space than it by rights is able to, though it has to be optimised for the 970 first.
Indeed, that probably explains why Adobe is so readily able to provide G5 support in Photoshop with a plug-in which presumably replaces the app's main memory management code.
This approach is clearly the one Apple favours, and the inclusion of the "temporary" bridge technology in the 970 may well have been made at Apple's behest. This way Apple and its developers can take advantage of the 970's 64-bit addressing and datapaths without having to maintain a new codebase for the G5 alongside code intended to be run on older processors. "All applications written for 32-bit implementations will run without modification on 64-bit processors running in 32-bit mode," says IBM's documentation.
Apple's approach with Smeagol and Panther allows developers to continue working on 32-bit apps, but access to 64-bit features when their code detects it's running on a G5. As previously reported, coding for the G5 requires programmers adopt the GCC 3.3 compiler. GCC 3.3 supports flags which allow developers to generate 970-only code, and to access 64-bit datapaths.
As we say, IBM describes the bridge as temporary: "These resources are not to be considered a permanent part of the PowerPC architecture," it sternly warns.
How temporary 'temporary' turns out to be will depend on Apple's G5 adoption rate, and the necessity of providing a smooth migration path for developers. And, indeed, the extent to which the bridge delivers the benefits of 64-bit computing without the need to re-compile everything. Apple may well feel that for now it's gaining enough extra performance by stepping up to the 970 in 32-bit mode and that it doesn't feel that there's much more to gained by going to 64-bit mode. Particularly if the chip can do one mode or the other, and neither simultaneously.
It's a classic industry conundrum: balancing the need to pull users forward to gain the benefit of new or more advanced technology with the damage that can be done by forcing an unwilling migration.
The bottom line is that it may be some time before Mac OS X goes truly 64-bit, and if it happens anywhere in the product line, it's most likely to be within the Xserve server line. It is not yet known whether the Server version of Panther will be offered in a 64-bit form. ®