Sunday, September 13, 2009

Mac OS X's 64-bit modes

There is actually three modes that the Snow Leopard kernel can run, some of which are often confused:
  • The first Intel Macs shipped with 32-bit only processors that do not support long mode. Thus the first version of Intel Mac OS X 10.4 ran in legacy mode with PAE enabled. All later versions, including Snow Leopard, can run in this mode. In this mode only 32-bit applications can be run, the kernel is fully 32-bit (thus 32-bit kexts are needed), V86 mode is available, but since PAE was enabled, full physical address width (at least 36-bit) is available and NX is enabled.
  • Later Intel Macs shipped with 64-bit processors that support long mode. These Macs shipped with the second version of Intel Mac OS X 10.4. This version can run in long mode, but most of the kernel ran in compatiblity mode, thus old 32-bit kexts still can run, but not all the kernel can run in compatiblity mode. For example, interrupt, trap, and call gates have to point to code that runs in 64-bit mode. 64-bit applications can however run in full 64-bit mode, and V86 mode is NOT available. And of course full physical address width is available and NX is enabled.
  • Snow Leopard, which introduced the 64-bit kernel, added a third so called 64-bit kernel mode that is the same as the previous mode, except that the kernel run in in full 64-bit mode and thus new 64-bit kexts are needed. 64-bit EFI is required too for this mode to run.

Friday, June 12, 2009

I switched blog software from Live Spaces to Blogger

I just switched blog software from Live Spaces to Blogger, here is the old blog link if you want to see my old articles:

Thursday, June 11, 2009

The history of Apple's 64-bit transition and how it got disturbed by the Intel transition

Apple started the transition to 64-bit with the release of the G5 in 2003. Unfortunately it got disturbed by the Intel transition. Here is a timeline:
  • June 2003: Apple releases the 64-bit Power Mac G5, shipping it with the first G5-capable version of Mac OS X that supported only 64-bit physical addressing.
  • September 2004: Apple releases the 64-bit iMac G5.
  • April 2005: Apple released Tiger, adding support for 64-bit command-line apps.
  • June 2005: Apple announces the Intel transition.
  • January 2006: Apple releases the first Intel Macs with a 32-bit-only Core Duo processor (of course shipping them with the first 32-bit-only Intel version of Mac OS X 10.4), downgrading the iMac to 32-bit.
  • June 2006: Apple announces the Mac Pro with 64-bit Xeon processors (of course shipping them with the later 64-bit capable Intel version of Mac OS X 10.4).
  • September 2006: Apple releases the Core 2 Duo based iMac, upgrading it to 64-bit again.
  • October 2007: Apple releases Leopard with 64-bit GUI application support.
  • June 2009: Apple announces the Intel-only Snow Leopard with a 64-bit kernel.