Daniel Eran Dilger in San Francisco
Random header image... Refresh for more!

Myths of Snow Leopard 2: 32-bit Support

200806161041
Daniel Eran Dilger
Apple’s limited comments on Snow Leopard, the next version of Mac OS X due in about a year, have opened the playing field for rampant speculation. Here’s a look at a series of myths that have developed around the upcoming release. The second myth of Snow Leopard:

Apple is dropping support for 32-bit Intel Macs because Snow Leopard is 64-bit.


This myth is rather silly, but has lit up Apple discussion boards and even been reported by a few sources that take themselves somewhat seriously. The idea may be based upon the Windows 32/64-bit Conundrum, a problem Apple does not face. Microsoft has to ship multiple architectures of Windows XP, Vista, and Server:

  • IA-32, for the 32-bit Intel x86 architecture of most PCs (the same as that of the early Intel Macs).
  • IA-64, for the 64-bit Intel EPIC architecture developed for Itanium and largely unused by anyone (now Windows Server only).
  • x64 (aka AMD64), the 64-bit x86 architecture developed by AMD and copied by Intel after the humiliation of IA-64′s failure. It is the mainstream 64-bit PC architecture, and is used in the latest Core 2 Duo Intel Macs.

The state of Microsoft’s art has led Windows Enthusiasts into confusion, as they tend to think that if Microsoft is doing something, it is probably the only way to do it. As Mary Jo Foley wrote, “Leopard is the first 64-bit only version of a desktop client. Vista comes in 32-bit and 64-bit varieties. And most expect Windows Seven will still be available in 32-bit flavors. Until 32-bit machines go away, it seems like a good idea to offer 32-bit operating systems.” She was apparently being serious, and wrote that in the context of an article insisting that Leopard looked like Vista.

Ten Myths of Leopard: 10 Leopard is a Vista Knockoff!

The Windows 32/64-bit Conundrum.
The problem for Microsoft is that its IA-64 and x64 versions of Windows actually run from different code bases and offer poor compatibility with a lot of existing 32-bit software. That problem is exacerbated by the fact that the 64-bit versions of Windows don’t run on 32-bit PCs. That means the market for developing 64-bit drivers and apps for Windows is artificially small, and can’t get bigger because there are software barriers to adopting 64-bit PCs that are of Microsoft’s own doing. That chicken and egg problem has no solution outside of Microsoft figuring out how to merge its code versions together, which it doesn’t have the time, inclination, or expertise to do.

Microsoft is betting that users will upgrade their PCs to 64-bit machines and continue to buy and run the old 32-bit version of Windows until it can manage to clean up the sticky bits and deliver a 64-bit, EFI savvy version of Windows for the mass market. That looks unlikely to happen by Windows 7 in 2010. Perhaps Windows 8 in 2013 will deliver what Mac OS X Leopard did in 2007.

Apple’s rather elegant solution is to run whatever binary is appropriate to the existing hardware. That’s also why Apple has been able to support both PowerPC and Intel hardware across a user base of roughly 20 to 27 million Mac OS X users since 2006. Microsoft couldn’t support PowerPC and Intel in Windows NT 4.0 despite having a far larger user base, greater resources, and a monopolistic lock on the market.

In addition to being able to support entirely different processor architectures, Apple also supports the conventions of running either 32 or 64-bit code. If Leopard runs on a 32-bit Mac such as the first generation Core Duo machines, it runs the 32-bit binary. If it runs on 64-bit hardware such as the latest Core 2 Duos, it executes the 64-bit binary. There is no advantage to being unable to run 64-bit software; Mary Jo Foley was just talking past her core competency of praising Microsoft.

Windows Vista, 7, and Singularity: The New Copland, Gershwin, Taligent
How Apple’s Firmware Leapfrogs BIOS PCs

32 + 64 = Universal Binary.
Rather than shipping separate editions that only work on one type of hardware and can only run one type of binary, Apple’s Universal Binary approach allowed it to ship one edition of Leopard and will similarly enable one edition of Snow Leopard. In order to take advantage of 64-bit processor features, apps need to package a 64-bit version of their executable into their Universal Binary.

So far, the majority of Leopard system apps delivered by Apple are 32-bit. In fact, there are only two 64-bit apps that ship with the OS: Xcode and Chess. The advantages of moving to 64-bit apps apply mainly to those that need to access large memory spaces, such as apps working with large files or data sets. For some apps, moving to a 64-bit binary actually causes them to run slower, because they have more memory to manage. Overall however, Apple found that moving the entire OS to 64-bits created an system wide performance gain of 15%. That’s a nice jump for just doing a recompile.

For that reason, all system apps in Snow Leopard will be 32+64 Universal Binaries, unlocking more of the latent performance available in modern 64-bit Macs. Tuning these apps to perform as well on 64-bit G5 PowerPC Macs would be a large investment for little upside, benefiting a relatively small number of G5 owners at the expense of diverting resources from optimizing the performance of today’s much faster 64-bit Intel processors. That helps to explain why Snow Leopard is dropping PowerPC support.

At the same time, Snow Leopard is also moving to a 64-bit kernel, an essential step in supporting more than 32GB of RAM. That means developers will need to deliver 32+64 bit versions of all their kernel extensions and device drivers. All plugins will also need to provide 64-bit support as well, including printer drivers.

In a year, Apple will have sold another roughly 8 million Macs, most of which will benefit from 64-bit software support in Snow Leopard. Another 15 million Intel Macs have already been sold, resulting in a roughly 23 million Intel Mac installed base at the debut of Snow Leopard.

At the release of Tiger, there were only about 16 million Macs in the entire installed base. At the release of Leopard, there was a 22 million Mac installed base. Today there is a 27 million Mac installed base, 12 million of which are PowerPC. The proportion of 64-bit Macs is quickly outnumbering the active number of PowerPC models that warrant buying a new operating system for.

Omni Software reports that 83.5% of its customers are actively updating their software from Intel Macs, compared to just 16.5% on PowerPC Macs. That makes it quite a no brainer why Apple is dropping PowerPC support and throwing its resources behind 64-bit optimization. Apple is looking at where the puck will be next summer, not preparing to hit it where it currently lies.

Apple – Mac OS X Leopard – Snow Leopard
WWDC 2008: Is Mac OS X 10.6 the Death of PowerPC?
Myths of Snow Leopard 1: PowerPC Support
Omni Software Update Statistics

Getting it Right the First Time Around: LLP64 vs LP64.
Apple not only developed a smooth transition plan to 64-bits, but also chose a 64-bit model that is not only more broadly compatible but is also more powerful than the stopgap, limited 64-bit model Microsoft chose. Windows’ 64-bit development model is based on LLP64, which is really a 32-bit model that uses 64-bit addresses. Microsoft explained why it chose this model in The Old New Thing : Why did the Win64 team choose the LLP64 model?

Essentially, Microsoft hoped to add 64-bit pointers to allow apps to access more RAM while retaining 32-bit integral types for compatibility with all of the legacy operating system constructs in Windows that made assumptions about 32-bit code. However, Microsoft should have been fully aware that 64-bit computing was coming a decade ago when it was doing its work on porting NT to the 64-bit Alpha and again in its efforts to port Windows to the Itanium IA-64. Why the great compromise of tacking on partial 64-bit support as an afterthought today?

Some have accused Microsoft of using an oddball, legacy-limited version of 64-bit computing as a way to maliciously break interoperability with 64-bit Linux. Whether Microsoft’s intent was actually the result of malice or just plain incompetence, Apple chose the opposite path for its 64-bit strategy: Leopard and Snow Leopard use the same LP64 model as the 64-bit versions of Linux, SGI IRIX, and other commercial distributions of Unix. That ensures broad compatibility with the 64-bit applications and libraries already available.

Representatives of groups with expertise in 64-bit computing, including Digital, Hewlett-Packard, IBM, Intel, Novell, NCR, the original Santa Cruz Operation, Sunsoft, and X/Open delivered a joint explanation of why LP64 is a better model for the future of computing than the model Microsoft chose in 64-BIT PROGRAMMING MODELS. The short answer: LP64 supports easier porting of existing code, interoperability between 32 and 64-bit computing environments, industry standard compliance for cross-platform interoperability, better performance, and a smoother transition from existing systems.

And so while Microsoft struggles with the transition to 64-bits, Apple will be furthering its lead in deploying 64-bit computing to mainstream consumers in a highly interoperable, no compromise strategy that can backwardly support existing 32-bit hardware. For end users, Snow Leopard will simply make everything faster when running on the latest 64-bit hardware.

With all the effort Apple is pouring into the future of desktop computing, the idea that Apple is dropping focus on the Mac for the iPhone makes the third myth of Snow Leopard easy to unravel, as the next article will do.

Myths of Snow Leopard 3: Mac Sidelined for iPhone
[Update: Warren Gish forwarded the following comment on PowerPC and 64-bit computing in Snow Leopard:

PowerPC is being dropped from Snow Leopard because there is no similar performance advantage with the PowerPC architecture in going 64-bit as there is in moving from x86 to x64. X64/AMD64 offers twice as many general purpose registers as x86, and that's where virtually all of the performance boost derives. The performance gain usually offsets any performance loss associated with using larger data items by ~15% but not uncommonly by as much as 25%.

Not the case with PowerPC. The number of general purpose registers is unchanged between 32-bit and 64-bit PPC, so applications are left with the performance loss of using larger datums in 64-bit mode. As a result, PowerPC apps typically run a little slower in 64-bit mode than in 32-bit mode.]

WWDC 2008: New in Mac OS X Snow Leopard
Myths of Snow Leopard 1: PowerPC Support — RoughlyDrafted Magazine
Myths of Snow Leopard 2: 32-bit Support
Myths of Snow Leopard 3: Mac Sidelined for iPhone
Myths of Snow Leopard 4: Exchange is the Only New Feature!
Myths of Snow Leopard 5: No Carbon!

Cocoa for Windows + Flash Killer = SproutCore
Apple’s other open secret: the LLVM Complier

Ten Big New Features in Mac OS X Snow Leopard

I really like to hear from readers. Comment in the Forum or email me with your ideas.

Like reading RoughlyDrafted? Share articles with your friends, link from your blog, and subscribe to my podcast! Submit to Reddit or Slashdot, or consider making a small donation supporting this site. Thanks!

Technorati Tags: , , , , ,

26 comments

1 Myths of Snow Leopard 2: 32-bit Support — Biography. writers and their biography { 06.17.08 at 2:17 am }

[...] has to ship multiple architectures of Windows XP and Vista:… source: Myths of Snow Leopard 2: 32-bit Support, RoughlyDrafted [...]

2 ericdano { 06.17.08 at 2:56 am }

As much as I loved my PPC macs, my new Intel Macs are light years more stable, and faster. I just wish I hadn’t fried my G4 cube……..I was gonna use it as a web/file server……..oh well.

3 StrictNon-Conformist { 06.17.08 at 3:00 am }

“Rather than shipping separate editions that only work on one type of hardware and can only run one type of binary, Apple’s Universal Binary approach allowed it to ship one edition of Leopard and will similarly enable one edition of Snow Leopard.”

The way you write this, you seem to believe that Microsoft can’t execute 32 bit binaries under their 64 bit Windows mutations (Windows XP 64 bit, and Vista, as well as any server variants). Well, if that’s what you meant, you just fell flat on your face: that’s simply NOT true! Now, sure, 32 bit drivers won’t work in the 64 bit version of the OS, but that’s a different issue altogether, and between XP and Vista, if you go from a 32 bit XP driver to then using 64 bit Vista, you’re facing a double whammy: first, the Vista kernel is running strictly 64 bit, where drivers live in that address space (in theory, you could run 32 bit kernel drivers in a 64 bit kernel, but why bother? That’s what was done in Windows 95: running older DOS drivers (16 bit) in something that was quasi-32 bit kernel) but the Vista 64 bit version has the capability to run 32 bit userspace applications just fine, thank you very much…

Without running in 64 bit mode with 64 bit drivers, you need to use PAE to do some fun stuff and integrate that into the driver model as well, just to get past the reality that the 32 bit address space is filled with such annoying things as video card RAM somewhere often around the 3 GB mark, or a little after. PCI (32 bit) has no method to work with any addresses outside of that 32 bit lower memory area (lowest 4 GB) and it is memory-mapped, so it (by necessity) needs to shadow some of the system RAM in order to be reached properly within a 32 bit OS kernel. The result: a 4 GB machine running with a 32 bit kernel (doesn’t matter if it’s Windows, Linux, OS X or other) may show notably less than 4 GB RAM available to the OS as a result. If only because of that, there’s no new hardware I will buy (minus portable cell phone/iPod hardware which currently doesn’t have CPU’s that are capable of having that much RAM) that isn’t meant to run 64 bit OS’s, because I like to do as much as I can do with all the RAM that’s physically available, and having anything above about 3.2 GB “missing” is a frustrating experience.

And yes, I’ve run Vista 64 bit on this iMac: it runs it better than most cheap laptops that are available, and having 4 GB RAM definitely helps ;) (OS X doesn’t run all that nicely with only 1 GB RAM on this machine, either, with my usage patterns)

4 Berend Schotanus { 06.17.08 at 3:39 am }

The Apple and Microsoft engineering approaches are clearly very different, the difference is also very consistent through the different subjects covered. So here with 64-bit computing we see a new intriguing example of the same old theme.

So I’m trying to understand: what makes the difference. It might be:
Microsoft = one-step-engineering
Apple = optimization

Microsoft seems to have a kind of “logical positivist” attitude believing there is one truth that can be known by mankind. Like 1+1=2 When there is one truth, there is no need to optimize because you’ve got it right the first time. In this vision complexity is frightening and should be avoided because it destroys the benefits of human ratio.

Apple seems to have a kind of “holistic” attitude, believing that truth will reveal itself when time is ready. Today 0.95 + 1.04 = 1.99 but tomorrow 1.985 might be a better answer. In this vision complexity is not something to be afraid of but a quest that can hide a big treasure.

5 danieleran { 06.17.08 at 5:51 am }

@ StrictNon-Conformist: “you seem to believe that Microsoft can’t execute 32 bit binaries under their 64 bit Windows mutations”

No, there was no hint of that in the article. The problem isn’t that 64-bit Windows can’t run 32-bit apps at all, but that it can’t run them well.

The larger problem is that its 64-bit OS can’t run on 32-bit hardware. That means few people can run 64-bit Windows, and those that can don’t benefit so much because Windows development panders to the lowest common denominator. So there are fewer 64-bit drivers and little motivation for developers to release 64-bit versions of their apps. They’d also need to package and deploy them separately because there is no analog to Universal Binaries.

6 philipmach { 06.17.08 at 7:10 am }

“Snow Leopard is going to be the first version of Mac OS X that only runs on Intel Macs.” I wonder how the version on other devices like iPhone and Apple TV is labeled. Presumably the kernel if not all the outer layers will be kept up to date with the latest desktop / server OS and not all these devices use Intel (Apple TV does but iPhone uses ARM). So there is still some cross-platform development required even if some features aren’t used. Of course a generation or 2 down the track an iPhone might be multicore …

7 lmasanti { 06.17.08 at 7:24 am }

quote:
“However, Microsoft should have been fully aware that 64-bit computing was coming a decade ago when it was doing its work on porting NT to the 64-bit Alpha and again in its efforts to port Windows to the Itanium IA-64.”

Hey, man, they weren’t aware about the coming of “Year 2000″ either!

8 Murrquan { 06.17.08 at 11:12 am }

I’m actually a fan of Mary Jo Foley’s column … she’s said she will always remain skeptical of Microsoft’s intentions, and doesn’t seem to be a fan of theirs. Often she reports of negative happenings at Microsoft, and the discussion questions she asks seem to be carefully phrased so as to remain neutral.

Of course, I’ve only been reading her column for about half a year, and she may have ignorantly bashed Leopard or something when I wasn’t reading it.

9 neoanderthal { 06.17.08 at 1:12 pm }

I hate to sound like a Windows apologist, but the x64 versions of Vista and server 2003 run 32-bit applications just fine. I’ve used Server 2003 x64 as a workstation, and it runs MS Office 2003 / Office 2007, Adobe CS3 suite, etc. as well as XP x86 or Vista x86. I’m using Vista x64 at work now, and the same is true – 32-bit applications run just fine on it. On a system that was horrible to use under Windows XP (a dual-core Pentium D 950), this machine is actually useable with an x64 OS.
Itanium is a different story, of course – not only is it 64-bit, but it’s not even an x86 processor; the compatibility and performance issues may be what you’re thinking of when you mention poor 32-bit application compatibility under 64-bit Windows.

10 geoffrobinson { 06.17.08 at 2:49 pm }

“Those who don’t understand UNIX are doomed to reimplement it. Poorly.”

11 worker201 { 06.17.08 at 3:03 pm }

“industry standard compliance for cross-platform interoperability”

aka Posix?

12 danieleran { 06.17.08 at 6:14 pm }

@ neoanderthal: Being able to run some or even most 32-bit apps on x64 Windows Server is not the same as being able to seamlessly run 32-bit apps on 64-bit Windows.

This article explains in part why running standard apps on 64-bit Windows is frustrating and problematic:

“The x64 version of Windows is not capable of natively running 32-bit code. Because most applications are 32-bit, the x64 version of Windows makes use of an emulator known as WOW64 to allow 32-bit applications to run.”

“One of the problems with running 32-bit code on a 64-bit operating system is that the OS must maintain complete code separation. Microsoft has created a new folder named \Windows\SysWOW64 that is used to store the 32-bit DLLs. In the 32-bit version of Windows, DLL files are normally stored in the \windows\system32 folder. However, the x64 version of Windows uses the \windows\system32 folder for 64-bit DLLs.”

I dare you to rename your System32 folder on a regular PC. 64-bit Windows does just that. Boom. You just never know exactly when its going to flip out.

http://searchwincomputing.techtarget.com/tip/0,289483,sid68_gci1218185,00.html

13 Myths of Snow Leopard 2: 32-bit Support | Stan's List { 06.18.08 at 12:38 am }

[...] RoughlyDrafted has an excellent article on whether Snow Leopard will support PPC Macs or early 32-bit Intel Macs. In laying out the arguments, the magazine starts from what may seem an unrelated quote from Mary Jo Foley: [...]

14 neoanderthal { 06.18.08 at 10:39 am }

I understand what you’re saying – and there’s no arguing with the technical details of the 32-bit & 64-bit implementation on windows. I will say, however, that I’ve not yet run into any application or game that would not run on Windows 64-bit. It doesn’t do this in any way that is reminiscent of the ‘classic’ mode on PPC Mac OS X – you just run the program. From a standpoint of simply running applications, it *seems* seamless, regardless of what sort of chicanery is going on in the background.
It’s all good and well to read someone else’s theories as to the problems that may crop up, but i’m relating my personal, empirical day-to-day experience with CS3, Office, games like Quake Wars, Hellgate:London, DDO:Stormreach, Diablo 2, Psychonauts, KOTOR/KOTOR 2, etc.
It’s not an elegant solution, to be sure. There’s no way Windows could have a seamless 32/64 library, as too many installers mess around with DLLS, and that would definitely be a problem. This points to a superiority in design of OS X, certainly.
I am no fan of Windows, but I am a fan of real experience versus theoretical discussion.

15 Ephilei { 06.18.08 at 5:38 pm }

Chess?!

I thought 32bit only supported 4GB RAM, not the 32GB in the article

16 Felix { 06.23.08 at 5:29 pm }

Actually, there’s at least a third app running on 64 bits on Leopard: httpd (Apache’s daemon).

17 Myths of Snow Leopard 5: No Carbon! — RoughlyDrafted Magazine { 06.24.08 at 9:26 am }

[...] Myths of Snow Leopard 2: 32-bit Support [...]

18 Myths of Snow Leopard 1: PowerPC Support — RoughlyDrafted Magazine { 06.24.08 at 9:39 am }

[...] have panicked that Snow Leopard will kill support for even 32-bit Intel Macs. That is addressed in Myths of Snow Leopard 2: 32-bit Support. [Update: Warren Gish forwarded the following comment on PowerPC and 64-bit computing in Snow [...]

19 ulric { 06.27.08 at 6:14 pm }

@danieleran
That article on techtarget.com is poorly worded: Wow64 is not an “emulator”. It is a 32-bit sub-system that forwards the Win32 API calls to the 64-bit API. The instructions are not emulated and run-time performance is not affected as the word suggests.

There is no mesurable lost in applications speed, whether games or business, which makes sense, since most common applications will be 32-bit for a long time.

Why did Microsoft make a separate 64-bit version Window SKU? It was to make a clean break with the old driver models and some obsolete API, old shell extensions, etc. The 64-bit version is more secure and fixes some holes. It was to do exactly what people are asking them to do: make a clean break with some of the oldest things. They also dropped all support for DOS and 16-bit windows application in Windows 64-bit.

It is precisly part of the plan that people will be gradually buying new machines with Vista 64-bit. That’s how you deal with a very large user base.

If windows 64-bit still ran all the 32-bit old drivers and old DOS apps, then you’d complain that Windows is held back by all the backward compatibility it needs to do. If they breaks it, then you complain it isn’t as backward compatible..

Leopard is not a true 64-bit operating system, the kernel is still 32-bit, that’s how they “remain compatible”.

I’d also point out that Apple makes no 64-bit applications, none at all, including their FCP suite. I’m only aware of Houdini for OS X being 64-bit. On Windows, all the majors CAD, multimedia, and video (Autodesk, Avid, Avid, Softimage, Maxxon Cinema 64, NewTek) are 64-bit. Pretty much all the drivers you need including graphics drivers are there in 64-bit form. 64-bit was really made for these markets, and server-side. It’s ok if the consumer doesn’t jump on 64-bit immediately.

20 metromacs blog » Blog Archive » Road to Mac OS X 10.6 Snow Leopard: 64-Bits { 08.28.08 at 8:59 am }

[...] a 64-bit version of libsystem, the system library handling most of its Unix APIs. This followed the LP64 model to allow broad compatibility with 64-bit versions of Linux and commercial Unix. It also [...]

21 Road to Mac OS X 10.6 Snow Leopard: 64-Bits — RoughlyDrafted Magazine { 08.31.08 at 5:46 pm }

[...] supplied a 64-bit version of libsystem, the system library handling most of its Unix APIs. This followed the LP64 model to allow broad compatibility with 64-bit versions of Linux and commercial Unix. It also delivered a [...]

22 Mac Pro - Performance vs PC - Mac-Forums.com { 12.22.08 at 6:22 pm }

[...] All plugins will also need to provide 64-bit support as well, including printer drivers." Myths of Snow Leopard 2: 32-bit Support — RoughlyDrafted Magazine Is leopard a real 64bit OS? – InsanelyMac Forum Mac OS X for Intel Macs supports PAE and the NX [...]

23 OS 10.5 - Third party applications in Snow Leopard - Mac-Forums.com { 06.10.09 at 8:56 pm }

[...] Myths of Snow Leopard 2: 32-bit Support — RoughlyDrafted Magazine __________________ It’s a "Mac", not a "MAC". There is no such thing as a "MACintosh" computer. [...]

24 OS 10.5 - Snow Leopard and G5s - Page 2 - Mac-Forums.com { 06.10.09 at 9:02 pm }

[...] As a result, PowerPC apps typically run a little slower in 64-bit mode than in 32-bit mode. Myths of Snow Leopard 2: 32-bit Support

25 OS 10.5 - Snow Leopard and G5s - Page 2 - Mac-Forums.com { 06.11.09 at 10:12 am }

[...] As a result, PowerPC apps typically run a little slower in 64-bit mode than in 32-bit mode. Myths of Snow Leopard 2: 32-bit Support

26 OS 10.5 - OS 10.6. Will Snow Leopard Support EVERY Intel Mac? - Mac-Forums.com { 08.03.09 at 3:39 pm }

[...] will be used as much as possible but when needed, the OS will use 32bit binaries. As stated in this article, "For that reason, all system apps in Snow Leopard will be 32+64 Universal Binaries, [...]

You must log in to post a comment.