Leopard IS 32-bit! No 64-bit kernel, nor apps in Leopard :(

Posted:
in macOS edited January 2014
So, Steve Jobs was boasting how cool the Leopard is, and how it is 64bit all through... So I spent about 30 minutes today, trying to find A SINGLE APPLICATION that has anything more than just i386 + PPC code in it. None. Nada. Nill. Everything, and I mean Everything - /bin, /sbin, /usr/bin, /usr/sbin, /Applications - everything is i386+PPC.



Even the kernel is 32-bit.



WTF???



P.S. To verify what kind of executable the application has, you can use "file" command in Terminal - it shows all executable types in the app:



$ file /mach_kernel

/mach_kernel: Mach-O universal binary with 2 architectures

/mach_kernel (for architecture i386)tMach-O executable i386

/mach_kernel (for architecture ppc)tMach-O executable ppc

Comments

  • Reply 1 of 9
    MarvinMarvin Posts: 15,310moderator
    "64-bit is enabled at the Unix layer through selected libs/interfaces via a standard programming model. The 32-bit kernel enables large address for those processes, and is fully compatible with drivers/kexts.



    Leopard moves us to full 64 bit application support. Support is provided for all core frameworks including Carbon and Cocoa. This enables applications using those frameworks to get full 64 bit benefits."



    "Going 64-bit is considered part of going Universal, so application developers should start thinking about migrating to 64-bit. In Leopard, the full API stack is mostly available to 64 bit binaries. The Leopard kernel will still be 32 bit."



    http://macguild.org/wwdc/wwdc06.html#Kernel



    So yes, 32-bit kernel that can run 32-bit drivers etc -> no driver issues like you see in Vista.



    The apps that you have found are most likely ones that won't benefit from being 64-bit. If an app only addresses 100-200MB Ram, why make it 64-bit?
  • Reply 2 of 9
    dfilerdfiler Posts: 3,420member
    Moving 64bits around is slower than moving 32bits. Twice the data is being moved.



    Hence, it is more efficient to make apps 32bit unless they fundamentally need 64bit addressing or incredibly precise calculations. No bundled apps fit this criteria. (except for perhaps iMovie, and even that is questionable)



    Keep in mind that in windows, 64bit APIs have been optimized such that they are quicker than their 32bit counterparts. The speed isn't from the extra bits though. Rather, it is from the extra optimization.
  • Reply 3 of 9
    Quote:
    Originally Posted by farlander View Post


    So, Steve Jobs was boasting how cool the Leopard is, and how it is 64bit all through... So I spent about 30 minutes today, trying to find A SINGLE APPLICATION that has anything more than just i386 + PPC code in it. None. Nada. Nill. Everything, and I mean Everything - /bin, /sbin, /usr/bin, /usr/sbin, /Applications - everything is i386+PPC.



    Even the kernel is 32-bit.



    WTF???



    P.S. To verify what kind of executable the application has, you can use "file" command in Terminal - it shows all executable types in the app:



    $ file /mach_kernel

    /mach_kernel: Mach-O universal binary with 2 architectures

    /mach_kernel (for architecture i386)tMach-O executable i386

    /mach_kernel (for architecture ppc)tMach-O executable ppc



    The two kernels you list are 32 bit. the amd64 aware/intel emt 64 you don't list.



    What does your system have for a CPU set?
  • Reply 4 of 9
    Quote:
    Originally Posted by dfiler View Post


    Moving 64bits around is slower than moving 32bits. Twice the data is being moved.



    Hence, it is more efficient to make apps 32bit unless they fundamentally need 64bit addressing or incredibly precise calculations. No bundled apps fit this criteria. (except for perhaps iMovie, and even that is questionable)



    Keep in mind that in windows, 64bit APIs have been optimized such that they are quicker than their 32bit counterparts. The speed isn't from the extra bits though. Rather, it is from the extra optimization.



    64bit CPU move 64 bit words in _one CPU cycle_, so no, they don't work slower, they work at least as fast as 32-bit, and have the capacity to move 64 bits of data in exactly the same amount of time, which would be twice faster, as compared to 32 bits.
  • Reply 5 of 9
    Quote:
    Originally Posted by mdriftmeyer View Post


    The two kernels you list are 32 bit. the amd64 aware/intel emt 64 you don't list.



    What does your system have for a CPU set?



    I don't list any "two kernels", I list _one_ kernel, which contains _two_ codebases within: 32 bit Intel and PPC. It does not contain any 64-bit code in it.



    $ uname -a

    Darwin mymacbookpro 9.0.0 Darwin Kernel Version 9.0.0: Tue Oct 9 21:35:55 PDT 2007; root:xnu-1228~1/RELEASE_I386 i386



    I have Core 2 Duo.
  • Reply 6 of 9
    akacakac Posts: 512member
    Leopard is 64-bit. The OS itself is 64-bit, Cocoa is 64-bit. None of the apps included are 64-bit because they offer no advantage to being 64-bit. I think Chess is the only thing that may be just for demo purposes.



    Apple said in tests they did (search the apple dev lists on carbon i think) almost all the apps INCLUDED would be bigger, take up more RAM and see no performance improvement. Now iLife may get 64-bit in its next version, but iLife isn't part of Leopard. Photoshop and InDesign would be nice to have in 64-bit. I also know that on Server MySQL is running in 64-bit, though I don't think apache is.



    Again, there is no point in making all APPS 64-bit. The OS is now fully 64-bit all the way up to the UI. But just because an app can be 64-bit, doesn't mean it should be.
  • Reply 7 of 9
    akacakac Posts: 512member
    [imac-g5:Chess.app/Contents/MacOS] akac% file Chess

    Chess: Mach-O universal binary with 4 architectures

    Chess (for architecture ppc): Mach-O executable ppc

    Chess (for architecture ppc64): Mach-O 64-bit executable ppc64

    Chess (for architecture i386): Mach-O executable i386

    Chess (for architecture x86_64): Mach-O 64-bit executable x86_64
  • Reply 8 of 9
    Quote:
    Originally Posted by Akac View Post


    [imac-g5:Chess.app/Contents/MacOS] akac% file Chess

    Chess: Mach-O universal binary with 4 architectures

    Chess (for architecture ppc): Mach-O executable ppc

    Chess (for architecture ppc64): Mach-O 64-bit executable ppc64

    Chess (for architecture i386): Mach-O executable i386

    Chess (for architecture x86_64): Mach-O 64-bit executable x86_64



    Thank you.
  • Reply 9 of 9
    Quote:
    Originally Posted by farlander View Post


    I don't list any "two kernels", I list _one_ kernel, which contains _two_ codebases within: 32 bit Intel and PPC. It does not contain any 64-bit code in it.



    $ uname -a

    Darwin mymacbookpro 9.0.0 Darwin Kernel Version 9.0.0: Tue Oct 9 21:35:55 PDT 2007; root:xnu-1228~1/RELEASE_I386 i386



    I have Core 2 Duo.



    You list a kernel set of 2 CPU types. The reason: Universal Apps. PPC won't run on your system, but the installed Kernel set for XNU is Unversal aware.



    I'm also not certain whether you have a Core 2 Duo or a Core Duo.



    What does the CPU bit set say in System Profiler?
Sign In or Register to comment.