Take the 2-minute tour ×
Ask Different is a question and answer site for power users of Apple hardware and software. It's 100% free, no registration required.

I am using a Mac for the first time and need to install Eclipse. How do I know if I am on a 32 bit or 64 bit computer? I am on a MacBook Pro.

share|improve this question
    
What version of the OS are you running? When was your MacBook Pro built? –  Daniel Lawson Aug 31 '11 at 13:42
    
It's quite simple. Go to the Apple logo and select "About this Mac." If it says Core Duo, then it is 32bit. If it says Core 2 Duo, then it is 64bit (ignore the 32bit kernel issue, it will run 64bit software just fine). Physically, if your MBP has a black keyboard, it is absolutely 64bit. The original MBPs had a silver keyboard and the 32bit units were all but replaced in early 2007. So if you purchased your model even in the later course of 2007, then it is a Mac capable of running 64bit. Also, if you are running Lion, then you are 64bit (as Lion does not run on 32bit Macs). –  cksum Aug 31 '11 at 18:15
    
add comment

7 Answers

up vote 14 down vote accepted

This knowledge base article from Apple should provide you with the correct answer as it depends on how old your MacBook Pro is.

Basically if you have anything newer than an 2008 MacBook you have a 64 bit processor and OS…

Here is the cheat table

Apple processors

share|improve this answer
    
This does't tell the full story but it's a start. I had a Macbook with a 64bit Core 2 Duo, but 32 bit firmware/EFI resulting in a stack that was never fully 64 bit. –  stuffe Aug 31 '11 at 12:46
    
That is true. The line is technically blurry because the kernel may only be running in 32 bit mode but everything else is 64 bit. I'm not sure exactly when but all the new Macs are now 100% 64 bit capable - although they can still run 32 bit apps. –  Nate Bird Sep 1 '11 at 13:15
    
According to another knowledge base article, MacBook Pro from early 2008 through mid 2010 support the 64-bit kernel, but do not use it by default. –  Cristian Ciupitu Apr 5 at 12:00
add comment

As you may have seen from all the answers - macs are different than other Operating Systems (OS) in that the 32 bit and 64 bit dividing line is all blurry. You can have 32 bit code run on a 64 bit CPU.

A nice overview of this subject is at Apple's 64-bit Transition Guide Keep in mind, this transition was started before Tiger was released on April 29, 2005 and is still happening.

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.

Beginning with version 10.4, Mac OS X supports command-line 64-bit executables on G5-based Macintosh computers and 64-bit-capable Intel Macintosh computers.

Beginning with version 10.5, Mac OS X supports full-featured 64-bit applications on G5-based and 64-bit-capable Intel Macintosh computers.

Beginning with Snow Leopard, Mac OS X uses a 64-bit kernel on some Intel computers.

Also - CPU that are "64-bit" still have parts that are only 32 bits wide. Similarly, CPU that are "32-bit" also have parts that are 128 bits (or more) wide. This is why most people focus on the address space for a specific program rather than whether the hardware is "64-bit" or how much of it is "64-bit"

It really doesn't matter until you get to a more specific question. Why are you asking about this? I hope this general overview helps your understanding of what people really mean when they are discussing their bits.

share|improve this answer
add comment

Run this on the command line:

getconf LONG_BIT
share|improve this answer
add comment

Just run Activity monitor and find the process named kernel_task . Then look at the column Kind. If it says Intel, then you are currently running 32bit mode. If it says Intel (64-bit), then as the text says, you are running 64 bit mode.

Note: You must show All processes, from te dropdown next to the search box (filter).

Then you can check @Nate Bird's answer on what processor you have and the supported modes for it.

share|improve this answer
    
The kernel's mode doesn't really matter to userland; OS X will happily run 64-bit processes under a 32-bit kernel or vice versa. –  Gordon Davisson Aug 31 '11 at 13:48
    
The original question was about if the OS is 32 or 64 bit, not the supported architectures of the processor :) –  bisko Sep 1 '11 at 7:51
    
The kernel is not the OS, and the kernel's mode is irrelevant to what the asker actually wants to know: which version of Eclipse is appropriate? –  Gordon Davisson Sep 1 '11 at 13:04
    
I like bisko's answer because it helped me to find a way to tell for sure what I am currently running - 32-bit or 64-bit. I have a version of VMWare that will only run in 32-bit, and since upgrading to Lion, it boots into 64-bit, so I need to reboot and hold the 3+2 keys down upon booting up to make it run in 32-bit mode. Without actually starting VMWare, it is nice to know which mode I'm currently running. It seems some of my other applications run better also in 32-bit mode. Thanks for all the different angles of answers to the main question. –  user13821 Nov 18 '11 at 2:56
add comment

OS X doesn't have an overall 32/64-bit mode; it simply runs each program in the "best" available mode, based on what the CPU's capable of and what the program supports. Many OS X programs come in universal binary format, meaning that they have multiple versions (some combination of PowerPC 32-bit, PowerPC 64-bit, Intel 32-bit, and Intel 64-bit) included in the same file.

Eclipse apparently doesn't come this way, so you have to decide which version to download. I'm not familiar enough with it to know if it has to run in the same mode as what you're trying to debug; if so, run your program, and look for it in Activity Monitor to see what mode it's running in. If Eclipse doesn't have to be in the same mode (or the Java code just runs inside Eclipse), then you can use either one (unless you're on a 32-bit-only CPU, i.e. Core Solo or Core Duo).

share|improve this answer
add comment

In a terminal window type uname -m. If you get x86_64 then you have 64bit OSx running.

share|improve this answer
1  
While this will work, there are several far simpler options that don't require a novice user to enter Terminal. –  jbharper2 Dec 12 '12 at 5:15
    
Also this only gives you the arch of the kernel. On a Core2Duo (a 64 bit CPU) you still only run a 32bit kernel if the bootrom of that machine is not 64bit clean. You can still (and should) use a 64bit Eclipse on that machine. –  MacLemon Dec 12 '12 at 14:45
add comment

On the command line you could run ...

(
printf '\n\n'
echo 'System Software Overview:'
system_profiler SPSoftwareDataType | sed -n '/64-bit/s/[[:space:]]*\(.*\)/\1/p'
ioreg -l -p IODeviceTree | sed -n '/firmware\-abi/s/.*"\([^"]*\)".*"\([^"]*\)".*/\1: \2/p'
printf '\n\n'
echo 'Java:'
#man java_home | cat
#/usr/libexec/java_home -h  
#/usr/libexec/java_home -V
#/usr/libexec/java_home -X
/usr/libexec/java_home -d 32
/usr/libexec/java_home -d 64
printf '\n\n'
)

# sample output:
#
# System Software Overview:
# 64-bit Kernel and Extensions: No 
# firmware-abi: EFI64
#
# Java:
# /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
# /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

As already stated by Gordon Davisson, fat binaries may include both 32-bit and 64-bit executables of a program (see also Multiple Architecture, Single Build).

file /mach_kernel /usr/lib/libSystem.dylib
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.