The Notebook Review forums were hosted by TechTarget, who shut down them down on January 31, 2022. This static read-only archive was pulled by NBR forum users between January 20 and January 31, 2022, in an effort to make sure that the valuable technical information that had been posted on the forums is preserved. For current discussions, many NBR forum users moved over to NotebookTalk.net after the shutdown.
Problems? See this thread at archive.org.

    64bit osx?

    Discussion in 'Apple and Mac OS X' started by TomK, Jun 4, 2008.

  1. TomK

    TomK Notebook Guru

    Reputations:
    23
    Messages:
    64
    Likes Received:
    0
    Trophy Points:
    15
    Folks,

    New MBP, running 10.5.3...yet when I do a uname -a on the kernel, it reports it at i386.

    How do I install/load the 64bit kernel on the MBP and Mac Pro?

    Thanks!
     
  2. wave

    wave Notebook Virtuoso

    Reputations:
    813
    Messages:
    2,563
    Likes Received:
    0
    Trophy Points:
    55
    As far as I know the kernel of 10.5 is still 32bit. There is only one version. Apple kept the kernel 32bit so that old drivers still work and so that it can run on older PPCs. All the subsystems (Carbon, Cocoa, Core Foundation, QuickTime, Quartz, etc.) are 64bit.
     
  3. fan of laptop

    fan of laptop Notebook Evangelist

    Reputations:
    41
    Messages:
    336
    Likes Received:
    0
    Trophy Points:
    30
    As far as I can tell, apple is combined 32 bit and 64 bit in one disk, as Steve Jobs introduced on the WWDC07.
    I do not understand what is the difference between 32 bit and 64 bit, and i do not care.
     
  4. maceto

    maceto Notebook Evangelist

    Reputations:
    11
    Messages:
    483
    Likes Received:
    0
    Trophy Points:
    30
    64 bit- imagine a big fat bloke standing in the wind vs 32 bit a skinny woman.. the stability is in theory better
     
  5. saturnotaku

    saturnotaku Notebook Nobel Laureate

    Reputations:
    4,879
    Messages:
    8,926
    Likes Received:
    4,707
    Trophy Points:
    431
    Download and install any 64-bit Linux distro.
     
  6. TomK

    TomK Notebook Guru

    Reputations:
    23
    Messages:
    64
    Likes Received:
    0
    Trophy Points:
    15
    Hmm...

    http://www.apple.com/macosx/technology/64bit.html

    I know having a 64 bit kernel will allow you to run and load 32 bit apps, but how the heck do you run 64 bit apps / drivers on a 32 bit kernel?

    Any other suggestions, since the url above clearly states OSX is 64 bit, and I would think the OSX kernel would need to be 64 bit? (Save the Load linux on it!!11!! stuff pls...)

    Tom
     
  7. Modly

    Modly Warranty Voider

    Reputations:
    1,413
    Messages:
    1,890
    Likes Received:
    0
    Trophy Points:
    55
    I was under the impression that Mac OS X 10.5 is 64-bit completely.

    But hey, I'm not always right.
     
  8. ltcommander_data

    ltcommander_data Notebook Deity

    Reputations:
    408
    Messages:
    1,398
    Likes Received:
    0
    Trophy Points:
    55
    I'm hardly an OS X programmer, but from the bits and pieces I've picked up through various forums and other resources 64-bit support works as follows. Basically, unlike Windows where the address space is split between the user and the kernel, usually 2GB/2GB in 32-bit Windows, OS X always gives either the kernel or user access to the complete address space. So on a 32-bit system, when the kernel does it's tasks it gets the full 4GB, and when a user task is running, the address space is switched and the user gets the full 4GB. Windows loads the kernel into the address space all the time to avoid switching address spaces all the time between kernel and user tasks, but that artificially limits the memory available to applications. OS X maximizes the memory available to applications, but tries to minimize address space switches to the kernel, by mirroring some commonly used kernel operations to the user address space, but not as much as Windows.

    Now this approach to having exclusive kernel and user address spaces seems to be very helpful to Apple's 64-bit implementation. In 10.3 Panther, applications were still 32-bit, but multiple 32-bit 4GB address spaces can be kept on the 64-bit G5's >4GB of RAM to improve performance. In 10.4 and 10.5, the processor is actually run in 64-bit mode, and when a user address space is loaded it has access to all the features of a 64-bit processor such as >4GB address spaces, 64-bit registers, etc. Of course, both 64-bit PPC and x64 include a 32-bit compatibility mode, and that's what the 32-bit kernel address space runs in when it's loaded. Obviously, the 32-bit kernel can not directly manage a full 64-bit memory space, but it supposedly does it through mapping the 64-bit address space onto some type of structure within the kernel's 32-bit address space. There is no doubt a limit to how much memory the 32-bit kernel can manage through this method, which is less than full 64-bit but more than what 32-bit normally provides so it's a good stop-gap measure. Any 64-bit data from user address spaces that is directly accessed by the kernel will of course be broken up and stored in 32-bit registers due to the 32-bit compatibility mode. However, the commonly used kernel operations, usually dealing with copying, that I mentioned before that were loaded into user address spaces are 64-bit, so direct transfers between 64-bit user address spaces occur natively.

    That's my understanding on how the kernel deals with 64-bit support. I'm pretty sure most of this comes from a flip through a copy of Mac OS X Internals that passed through my hands a while ago, so you could try to get your hands on that book for a lot more on how Mac OS X works.
     
  9. Cryptonome

    Cryptonome Notebook Enthusiast

    Reputations:
    4
    Messages:
    31
    Likes Received:
    0
    Trophy Points:
    15
    Leopard is a single kernel image for 32/64 bits. Allways is loaded as a 32 bits process, if detect 64 bits hardware the kernel switches into long mode compability.

    For this reason we can not build KEXT that support the extended x86_64 register set yet.

    The kernel only support 64 bits on user mode, not in the kernel by itself.

    The kernel is 32 bits, that all.
     
  10. TomK

    TomK Notebook Guru

    Reputations:
    23
    Messages:
    64
    Likes Received:
    0
    Trophy Points:
    15
    Thank you for the detailed response, makes sense now!

    Tom