Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I followed this article... http://support.apple.com/kb/HT3696 and found that

Processor name: IntelCore i7 

meaning it is 64 bit.

However, when I do "uname -a" in terminal the result seem to be contradictory.

MYMACHINE:~ himalay$ uname -a
Darwin MYMACHINE 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386 i386

Also thru perl its the same..

MYMACHINE:~ himalay$ perl -V:myarchname
myarchname='i386-darwin';

i386 is 32bit as far as I know. Can someone clarify on this. Thank you.

share|improve this question

migrated from stackoverflow.com Jul 24 '12 at 18:52

This question came from our site for professional and enthusiast programmers.

    
You can still build a perl with 64-bit integer supportby using -Duse64bits or something like it. Check the INSTALL file for the exact spelling. –  ikegami Jul 24 '12 at 18:55
    
What version of OS X? –  ioSamurai Jul 24 '12 at 19:34
add comment

4 Answers 4

up vote 13 down vote accepted

In short, modern versions of OS X are capable of running 32 and 64 bit executables (apps, command line tools, etc). These executables may be distributed as 'fat' executables which contain the executable to run as a 32 or 64 bit process. OS X offers a duality in this regard, where other OSs are more strict about the binaries they run, load, and build.

In OS X, you can have a Intel processor which is 64 bit compatible. Your kernel could run in 32 or 64 bit, and your programs could run in 32 or 64 bit. It depends on your configuration and how the programs/extensions/libraries have been built.

Basically, your confusion comes from the difference between hardware capabilities and the mode of the software you are running which you query. Your processor/hardware is capable of running 64 bit executables, but you have queried the state of an active 32 bit process.

share|improve this answer
    
Can I conclude that in my OSX, mode of kernel is 32bit, cpu is 64bit and it can run both 32/64 bit binaries/executables? Also, since OSX support both 32 and 64 bit binaries, meaning it doesn't matter if I am having a 32bit or 64bit kernel? Lastly, can I switch OSX kernel from 32bit to 64bit, is there any advantage doing that? Thank you! –  Himalay Jul 25 '12 at 14:34
    
1) not really. it depends on how it's built/configured (the version you are running, if you have not changed it) and whether the hw supports 64 bit. you are running snow leopard (10.6). the current public version is 12.0 (10.8.0). in 10.6, you could enable 64 bit kernel by a unsupported mod (which i had no problems with, although some kernel extensions may not exist for the hw you have). 2) i'd recommend sticking with the config supported by the os -- do you have a very good reason to change that config? (cont) –  justin Jul 25 '12 at 21:05
    
3) see answer#2. sure, there are advantages -- but there are also disadvantages. it configures itself well for typical uses and for supported hardware. do you need to change the default? why? the primary disadvantage in older systems is that 64 bit kernel extensions may not exist for the hardware you use. if they do exist, they may not be well tested or well supported (if you use the approach i mentioned). if you want to use a 64 bit kernel, the Apple supported (cont) –  justin Jul 25 '12 at 21:06
    
(cont) way is to use a more modern version of the OS. your hw supports this, and you can upgrade to 10.8. see also bahamat's comments (in other answers). –  justin Jul 25 '12 at 21:06
1  
1a) yes. 1b) i7 is 64 2) well, the kernel could be faster, consume more resources, or assume that it can consume more when 64 bit. it could be faster, however. it depends on what it needs to do. but that's the kernel. an app in 64 bit mode can still take advantage of 64 bit architectures, if run as 64 bit (without altering the kernel). –  justin Jul 26 '12 at 20:26
show 1 more comment

OS X, even 64 bit versions, boot with a 32 bit kernel by default; you have to explicitly switch to a 64 bit kernel.

See: Running OS X 10.6 in 64-bit mode

share|improve this answer
1  
This was only true for a transitionary period. Some Macs (even during SL) would ship with 64-bit kernels by default. As of 10.7 (Lion) all Macs ship with 64-bit kernels enabled by default. –  bahamat Jul 24 '12 at 21:12
add comment

You have a computer with a 64bit processor, but you are running a 32bit operating system, so you should install 32bit software, or reinstall a 64bit operating system, then you will be able to use 64bit software.

share|improve this answer
2  
OS X is both 32- and 64-bit as needed. A reinstall will not help, as there's no difference between a "32-bit" and "64-bit" version of the OS. –  CajunLuke Jul 24 '12 at 20:36
2  
Newer Macs will run 64-bit kernels. During the transition from 32 to 64-bit they often ran 32-bit kernels with everything else being 64-bit. Any Mac running 10.6 (Snow Leopard) or newer with a 64-bit capable processor can run 64-bit binaries just fine, regardless of the kernel. –  bahamat Jul 24 '12 at 21:10
    
This is an incorrect answer or at the very best an incomplete answer. Justin's answer is much better. –  Ramhound Jul 24 '12 at 22:05
add comment

look under apple-->about this mac

uname gives you info about the KERNEL you are running, not neccicarily the underlying hardware (amd64, aka 64-bit hardware supports IA32, aka 32-bit kernels)

http://osxbook.com/book/bonus/ancient/procfs/

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.