
Even though Apple has been hyping up the 64bit nature of its ucpoming Snow Leopard operating system, stating it will be the first Mac OS X release to be 64bit top-to-bottom, reality turns out to be a little bit different so far. With the current Snow Leopard seed, only Xserve users get the 64bit kernel and drivers - all other Macs default to 32bit. By holding down the '6' and '4' keys during boot, you can to boot into full 64bit mode - that is, if your Mac supports it. As it turns out, some Macs with 64bit processors cannot use the 64bit kernel because the EFI is 32bit.
Note: I should have included in the article that 64bit applications will run just fine (including benefits) on a 32bit kernel in Mac OS X. Since this was already possible in Leopard, I assumed people were well aware of that. Turns out some were not, so my apologies for that.
Member since:
2005-07-06
Ah, as the chief Mac zealot here, I read the article 4 times and I don't see anything negative in it. Thom opened up the article, talked about what Apple claimed they would deliver, talked about what was delivered, and the reason for it. I don't see anything negative in it.
With that being said, however, I do think that Thom should have made two points:
1) Emphasise that the 32 bit kernel can access more than 4GB of memory due to the fact that the machine boots directly into long mode and the kernel can then access more than 4GB due to the way in which memory is handled by the kernel - Mac OS X Internals: A Systems Approach by Amit Singh explains how Mac OS X does it thing; I'm having to read some parts several times. All I have to say is, what you think you know about operating systems, throw part of that knowledge out the window.
2) 64bit applications can run on a 32bit kernel, utilise features provided by the 64bit processor, access more than 4GB of memory, NX stack and heap; W^X protection and I'm sure many more features. Just because it defaults to 32bit kernel, you don't lose the benefits which the average user will get from going 64bit.
The summary at the bottom of his article is correct - the kernel is 32bit for compatibility reasons. The 64bit kernel extension API has been stable since, if I remember correctly, 10A380 - but it wouldn't be enough time to get out stable 64bit drivers.
I think people need to remember that Microsoft has been shipping a consumer focused 64bit operating system since Windows Vista (although there were 64bit versions of Windows prior, they weren't pushed hard to consumers via their OEM channels) - and the requirement for Windows Vista certification was the requirement to provide 64bit and 32bit drivers. Windows 7 will be their second 64bit operating system that'll be pushed towards end users via their OEM channels. I'd say that by the time Mac OS X 10.7 is released, 64bit kernel will be the default on all EFI64 shipping laptops, desktops and workstations - by that time all kernel extensions will be universal (32bit and 64bit).