A mash up of a series of ongoing articles by Daniel Eran Dilger at roughlydrafted.com
Myths of Snow Leopard 1: PowerPC Support June 16th, 2008
Snow Leopard is going to be the first version of Mac OS X that only runs on Intel Macs. PowerPC Mac users will still be able to use Leopard, which will get updates. The new features in SL are primarily going to impact on
multicore, multiprocessor machines. (OpenCL, Grand Central, and the new 64-bit kernel)
Universal Binaries of the new Mail, Address Book, and iCal could be made, if Exchange support is wanted. Will 3rd party developers keep making Universal Binaries? If it's in their interest - yes (e.g. if they already have their PowerPC code, and it's easy to update the UB).
Of the 27 odd million Mac OS C installed user base, Leopard is on over a third, Tiger over a third, and the rest on an earlier version, so there is still a user base to sell Universal Binaries to, if that user base buys enough software.
The article purports that with the Universal Binary architecture, developers can target both Intel & PowerPC Macs with minimal extra effort. (Adobe being an exception)
Will SL definitely be Intel only? We await to find out - but signs are it will likely be.
Myths of Snow Leopard 2: 32-bit Support June 17th, 2008
Myth 2 - Apple is dropping support for 32-bit Intel Macs because Snow Leopard is 64-bit.
Apple doesn't have a problem, but Windows does have a 32/64-bit conundrum, as 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
- 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.
Windows' 32/64-bit Conundrum:
Its IA-64 & x64 versions of Windows run from different code bases, and offer poor compatibility with a lot of existing 32-bit software. Also, 64-bit versions of Windows don’t run on 32-bit PCs, meaning that 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 users will upgrade to 64-bit PCs and yet 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. (Daniel noting it's unlikely to happen by Windows 7 in 2010, but perhaps Windows 8 in 2013 will deliver what Mac OS X Leopard did in 2007.)
Apple’s solution? [list][*]Run whatever binary is appropriate to the existing hardware (processor architecture). This has allowed Apple to support both PowerPC & Intel hardware across a user base of ~20-27 million Mac OS X users since 2006. [*]Support the the conventions of running either 32 or 64-bit code.
- If Leopard runs on a 32-bit Mac (e.g. 1st generation Core Duo machines) it runs the 32-bit binary.
- If Leopard runs on a 64-bit Mac (e.g. the latest Core 2 Duos) it runs the 64-bit binary. [*] Universal Binary approach allows 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.
The majority of Leopard system apps delivered by Apple are 32-bit. (64-bit apps shipping with Leopard being Xcode & Chess only apparently (and httpd (Apache’s daemon)). A move to 64-bit apps helps with apps that need to access large memory spaces e.g. apps working with large files or data sets. Moving to a 64-bit binary can make some apps run slower, as they have more memory to manage. Overall, shifting the entire OS to 64-bits has created an system wide performance. So, 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.)
Snow Leopard is also moving to a 64-bit kernel (from Leopard's 32-bit kernel), an essential step in supporting more than 32GB of RAM. Developers will therefore 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. It'll be interesting to compare how the creation and introduction of these new drivers are managed in comparison to Vista...
By Mid 2009, when Snow Leopard is estimated to come out, Apple will have sold ~8 million more Macs, most of which will benefit from 64-bit software support in Snow Leopard. With 15 million Intel Macs already sold, that would create a ~23 million Intel Mac installed base for which Snow Leopard would be most relevant.
In comparison:
- At the release of Tiger, there was a 16 million Mas in the entire installed base.
- At the release of Leopard, there was a 22 million Mac installed base.
- Currently there is a 27 million Mac installed base, 12 million of which are PowerPC.
Thus the proportion of 64-bit Macs is quickly outnumbering the active number of PowerPC models. 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. A hint as to why Apple can drop PowerPC support in Snow Leopard. Snow Leopard is for where the state of play is in Mid 2009, and where the puck will be after then.
64-bit models - Apple's LP64 vs Window's LLP64
Windows’ 64-bit development model is based on LLP64, which is really a 32-bit model that uses 64-bit addresses.
Apple's 64-bit LP64 model is not only more broadly compatible but is also more powerful.
Why did Microsoft chose the LLP64 model? Microsoft essentially 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?
Whatever the reasons, Microsoft's choice of using "an oddball, legacy-limited version of 64-bit computing" whether the "result of malice or just plain incompetence" is opposite to Apple's choice.
Apple's 64-bit model LP64 seen in Leopard and Snow Leopard use the same 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. Kinda useful.
In "64-Bit Programming Models" (
here, representatives of groups with expertise in 64-bit computing (including Digital, Hewlett-Packard, IBM, Intel, Novell, NCR, the original Santa Cruz Operation, Sunsoft, & X/Open) delivered a joint explanation of why LP64 is a better model for the future of computing than the LLP64 model Microsoft chose.
The short answer Daniel gives: LP64
- Supports easier porting of existing code
- Supports interoperability between 32 and 64-bit computing environments
- Has industry standard compliance for cross-platform interoperability
- Has better performance
- Gives a smoother transition from existing systems.
The upshot? Microsoft and also developers trying to work with Vista, & Windows 7 will struggle 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. Apple is hiding a lot of planning and work under the guide that Snow Leopard is just about taking stock and refining Mac OS X.
With this in mind, the 3rd myth is easier to unravel.
A message seems to be that Apple has a superior design for 64-bit. However, they have yet to create 64-bit apps.