---
title: Introduction to 64-Bit Transition Guide
framework: darwin
role: article
path: apple-archive/documentation/Darwin/Conceptual/64bitPorting/intro
---

# Introduction to 64-Bit Transition Guide

Describes the 64-bit features available in OS X.

## What Is 64-Bit Computing?

For the purposes of this document, 64-bit computing is defined as support for a 64-bit address space—that is, support for concurrent use of more than 4 GB of memory by a single executable program—no more, no less.

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?

Mac app developers should, at a minimum, read the chapter [Should You Recompile Your Software as a 64-Bit Executable?](../indications/indications.html#//apple_ref/doc/uid/TP40001064-CH206-TPXREF101) . That chapter will help you determine whether it makes sense for your application to take advantage of 64-bit application support in OS X v10.5 and later.

Developers of device drivers and kernel extensions should also read this document. Beginning with v10.6, device drivers and kernel extensions must be compiled with a 64-bit slice to be loadable into a 64-bit kernel. Beginning with v10.8, all kernel device drivers and other extensions must be compiled with a 64-bit slice.

## Organization of This Document

This document is organized into the following chapters:

- [Should You Recompile Your Software as a 64-Bit Executable?](../indications/indications.html#//apple_ref/doc/uid/TP40001064-CH206-TPXREF101)—provides helpful guidance about whether you should recompile your application as a 64-bit executable. - [Major 64-Bit Changes](../transition/transition.html#//apple_ref/doc/uid/TP40001064-CH207-TPXREF101)—describes the high-level architectural changes between a 32-bit and 64-bit environment. - [Making Code 64-Bit Clean](../MakingCode64-BitClean/MakingCode64-BitClean.html#//apple_ref/doc/uid/TP40001064-CH226-SW2)—explains the general changes needed to make an application 64-bit clean. - [Compiling 64-Bit Code](../building/building.html#//apple_ref/doc/uid/TP40001064-CH208-TPXREF101)—explains how to compile your application as a 64-bit executable. - [High-Level 64-Bit API Support](../HighLevelAPIs/HighLevelAPIs.html#//apple_ref/doc/uid/TP40001064-CH224-SW6)—summarizes changes to higher level APIs such as Carbon, Cocoa, and QuickTime and includes pointers to more detailed documentation on these changes. - [Cross-Architecture Plug-in Support](../Cross-ArchitecturePluginSupport/Cross-ArchitecturePluginSupport.html#//apple_ref/doc/uid/TP40001064-CH225-SW7)—describes ways to support legacy plug-ins across architecture boundaries using helper hosts. - [Performance Optimization](../PerformanceOptimization/PerformanceOptimization.html#//apple_ref/doc/uid/TP40001064-CH228-SW1)—gives tips for spotting common performance regressions caused by transitioning your code to 64-bit. - [Kernel Extensions and Drivers](../KernelExtensionsandDrivers/KernelExtensionsandDrivers.html#//apple_ref/doc/uid/TP40001064-CH227-SW1)—tells how to transition your drivers and other kernel extensions to 64-bit executables.

## See Also

For additional information, see the following documents:

- *[Tools & Languages Starting Point](../../../../../referencelibrary/GettingStarted/GS_Tools/index.html#//apple_ref/doc/uid/TP30001102)* includes pointers to documentation that may help you solve 64-bit-related tools issues. - *[64-Bit Transition Guide for Cocoa](../../../../Cocoa/Conceptual/Cocoa64BitGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004247)* and *[64-Bit Guide for Carbon Developers](../../../../Carbon/Conceptual/Carbon64BitGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004381)* provide information about Apple’s 64-bit application APIs. - *[Universal Binary Programming Guidelines, Second Edition](../../../../MacOSX/Conceptual/universal_binary/universal_binary_intro/universal_binary_intro.html#//apple_ref/doc/uid/TP40002217)* provides information about the Intel transition. You should read this document and add native Intel support to your application first, since many of the Intel changes also apply to a 64-bit port. - *OS X ABI Mach-O File Format Reference* provides 64-bit ABI information that is useful if you are writing assembly language code. - *Xcode 4 Help* provides information about using Xcode. You should be familiar with Xcode before you port your application or driver to 64-bit.

The `gcc`, `ld`, and `lipo` man pages may also be relevant to you.

[Next](../indications/indications.html)

Copyright © 2004, 2012 Apple Inc. All Rights Reserved. [Terms of Use](http://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](http://www.apple.com/privacy/) | Updated: 2012-12-13
