MacOS – In which version(s) did macOS transition from 32-bit to 64-bit

32-bit64-bitkernelmacos

From my research, it seems that macOS transitioned from 32-bit x86 to 64-bit x64 across the following versions:

                                Kernel  App Support
    10.4        Tiger           x86     x86
    10.5        Leopard         x86     x86/x64
    10.6        Snow Leopard    x86/x64 x86/x64
    10.7        Lion            x86/x64 x86/x64
    10.8        Mountain Lion   x64     x86/x64
10.9 - 10.12    ...             x64     x86/x64

That is:

  1. Support for x64 apps was added in 10.5.
  2. A 64-bit kernel was introduced in 10.6, and the 32-bit kernel was removed in 10.8.
  3. It is possible to run 32-bit apps with a 64-bit kernel and (unlike Linux and Windows) 64-bit apps with a 32-bit kernel.

Is this accurate?

Best Answer

You're pretty much on the money. In summary:

  • Mac OS X Panther actually included very basic support for the PowerPC G5 64-bit processor.
  • Mac OS X Tiger was actually the first to add some support for 64-bit applications, so long as these did not utilise any of the GUI libraries (and obviously only on machines with 64-bit processors).
  • Mac OS X Leopard extended support for 64-bit apps by providing native support via its libraries and frameworks (including GUI libraries) so that 64-bit Cocoa applications could be developed.
  • Mac OS X Snow Leopard and above could only be installed on Macs with Intel processors, and introduced a number of fully 64-bit Cocoa applications (e.g. QuickTime X), and most applications were recreated to use the 64-bit x86-64 architecture (although iTunes was a notable exception to this!) This meant these applications could run in 32-bit mode on machines with 32-bit processors, and in 64-bit mode on machines with 64-bit processors. And yes, the kernel was updated so that it could run in 64-bit mode on some limited hardware, and only by default on Mac Pros, while other newer Macs were capable of running the kernel bit did not do so by default. In a nutshell, Snow Leopard could run both 32-bit and 64-bit apps on Intel Macs.
  • Mac OS X Lion but supported both 32-bit and 64-bit apps. However, Mac OS X Lion was the last (actually, only the second along with Snow Leopard) that maintained both 32-bit and 64-bit kernels. However, unlike Snow Leopard, the OS X Lion only ran on 64-bit Intel processors.
  • Yes, it's possible to run 32-bit apps with a 64-bit kernel.
  • Yes, it's possible to run 64-bit apps with a 32-bit kernal, so long as you have a 64-bit CPU.
  • As for whether 64-bit apps can run on a 32-bit kernel on Linux and Windows, I am not 100% sure this is impossible with all versions/flavours of these operating systems (e.g. there are Home, Pro, Enterprise, and Education versions of Windows) and I am not intimately familiar with all their differences. However, I can say that running 64-bit apps on a 32-bit kernel is certainly rare for a consumer-level operating system.