Editor’s Note: Our ongoing preview of the announced features in OS X 10.5 continues, with this profile of Leopard’s enhanced support for 64-bit computing.
Full 64-bit support got top billing in Steve Jobs’ Worldwide Developers Conference keynote —it was first on the list of Leopard enhancements he previewed, ahead even of Apple’s striking Time Machine backup-and-restore technology. Even at a developer conference, however, 64-bit support was an odd choice for the lead-off position, because it’s an option even Apple admits doesn’t yet make sense for most applications.
OS X v10.8 uses a 64-bit kernel and fully supports 64-bit applications. The 64-bit kernel was originally introduced in OS X v10.6 (on some models of Mac hardware), and 64-bit application support was introduced in v10.5. Command-line 64-bit support was introduced in v10.4. Who Should Read This Document?
If you’re writing an application that requires truly huge amounts of memory (more than 4GB) or needs random access within data sets larger than 2GB (as opposed to, for example, video-editing apps that read and write very large files but work with only a subset at any one time), it’s convenient to deal with 64 bits of data at time, rather than the 32-bit chunks that most of today’s Mac (and Windows) applications use. Apple has for years offered developers some ways to work with 64-bit data, but those involved working around the fact that the Mac OS and most of the hardware it ran on were basically a 32-bit environment
In recent years, however, the company has gradually added some direct 64-bit support to its products: the PowerPC G5 processor, for example, was designed to handle 64-as well as 32-bit code, and Mac OS X 10.4 (Tiger) allows developers to create fully 64-bit command-line or background applications, though not 64-bit programs with their own graphical interface.
Things will be different in Leopard: Developers can now build full-fledged Mac apps that are 64-bit-capable. But developers converting existing Mac programs will face a fair bit of work. Not only their own code, but every library, framework, and plug-in their programs use will have to be modified and recompiled.
Even then, there’s not always a clear-cut case to move to 64 bits. First, 64-bit code will work only on G5 or Core 2 processors—developers will still have to deliver 32-bit versions for users with Macs based on G3 and G4 PowerPCs or even with Intel’s first-generation Core Duo and Core Solo CPUs (in other words, the current MacBook, MacBook Pro, iMac and Mac mini product lines).
Second, some 64-bit programs will actually perform more slowly than 32-bit equivalents, particularly on G5 Macs. Although most applications are likely to pick up some performance by going 64-bit, the benefits are not likely to be overwhelming, even on the new Mac Pro and future models with Core 2 processors. The main problem is that going from 32- to 64-bits results in inflated code, which means less of it fits in the processor’s L1 and L2 caches, and more relatively slow calls to memory are required.
Developers of certain types of programs that work with huge amounts of data—some scientific computing applications, large database and data-mining systems, large-scale CAD/CAM apps, and specialized image processing programs, to name a few—will appreciate Leopard’s full, native support for 64-bit computing, especially if they are creating new applications from scratch and if they are targeting only future Core 2 CPUs, leaving PowerPC and first-generation Core users behind.
In a decade or two, 32-bit computing may only be a distant memory, and the Mac OS (or whatever succeeds it) and the hardware it runs on will be fully optimized for 64-bit operation. By then, in hindsight, the addition of 64-bit application support in Leopard will look like a milestone on an important evolutionary path. But in the near term, it’s mostly of interest to developers of specialized technical applications. For most Mac fans—even graphics professionals and other power users—this is one leap forward that’s not likely to produce much of a splash when Leopard is unleashed next spring.
[ Henry Norr is a former editor of MacWeek and a former technology columnist for the San Francisco Chronicle .]
Editor’s Note: Our ongoing preview of the announced features in OS X 10.5 continues, with this profile of Leopard’s enhanced support for 64-bit computing.
Full 64-bit support got top billing in Steve Jobs’ Worldwide Developers Conference keynote —it was first on the list of Leopard enhancements he previewed, ahead even of Apple’s striking Time Machine backup-and-restore technology. Even at a developer conference, however, 64-bit support was an odd choice for the lead-off position, because it’s an option even Apple admits doesn’t yet make sense for most applications.
If you’re writing an application that requires truly huge amounts of memory (more than 4GB) or needs random access within data sets larger than 2GB (as opposed to, for example, video-editing apps that read and write very large files but work with only a subset at any one time), it’s convenient to deal with 64 bits of data at time, rather than the 32-bit chunks that most of today’s Mac (and Windows) applications use. Apple has for years offered developers some ways to work with 64-bit data, but those involved working around the fact that the Mac OS and most of the hardware it ran on were basically a 32-bit environment
In recent years, however, the company has gradually added some direct 64-bit support to its products: the PowerPC G5 processor, for example, was designed to handle 64-as well as 32-bit code, and Mac OS X 10.4 (Tiger) allows developers to create fully 64-bit command-line or background applications, though not 64-bit programs with their own graphical interface.
Things will be different in Leopard: Developers can now build full-fledged Mac apps that are 64-bit-capable. But developers converting existing Mac programs will face a fair bit of work. Not only their own code, but every library, framework, and plug-in their programs use will have to be modified and recompiled.
Even then, there’s not always a clear-cut case to move to 64 bits. First, 64-bit code will work only on G5 or Core 2 processors—developers will still have to deliver 32-bit versions for users with Macs based on G3 and G4 PowerPCs or even with Intel’s first-generation Core Duo and Core Solo CPUs (in other words, the current MacBook, MacBook Pro, iMac and Mac mini product lines).
Second, some 64-bit programs will actually perform more slowly than 32-bit equivalents, particularly on G5 Macs. Although most applications are likely to pick up some performance by going 64-bit, the benefits are not likely to be overwhelming, even on the new Mac Pro and future models with Core 2 processors. The main problem is that going from 32- to 64-bits results in inflated code, which means less of it fits in the processor’s L1 and L2 caches, and more relatively slow calls to memory are required.
Developers of certain types of programs that work with huge amounts of data—some scientific computing applications, large database and data-mining systems, large-scale CAD/CAM apps, and specialized image processing programs, to name a few—will appreciate Leopard’s full, native support for 64-bit computing, especially if they are creating new applications from scratch and if they are targeting only future Core 2 CPUs, leaving PowerPC and first-generation Core users behind.
In a decade or two, 32-bit computing may only be a distant memory, and the Mac OS (or whatever succeeds it) and the hardware it runs on will be fully optimized for 64-bit operation. By then, in hindsight, the addition of 64-bit application support in Leopard will look like a milestone on an important evolutionary path. But in the near term, it’s mostly of interest to developers of specialized technical applications. For most Mac fans—even graphics professionals and other power users—this is one leap forward that’s not likely to produce much of a splash when Leopard is unleashed next spring.
[ Henry Norr is a former editor of MacWeek and a former technology columnist for the San Francisco Chronicle .]