11 Replies Latest reply: May 29, 2013 8:39 AM by j_mccaffrey
emdash_design Level 1 (0 points)


Will I still be able to use 32-bit applications if I upgrade to 10.8?


I have some 32-bit apps that work fine under 10.7. However, the manufacturers of some of them don't make it clear whether if they are releasing 64-bit versions anytime soon or if they are 10.8 compatible. It seems logical that the 32-bit apps would work, and that the only problem is that these 32-bit apps wouldn't be able to take advantage of the all the core processors. (I just figure the answer couldn't be that easy!) If 10.8 won't run 32-bit apps then I'll wait to upgrade until my most crucial (i.e.: expensive) apps could be upgraded. Any thoughts would be appreciated.

MacBook Pro (15-inch Late 2011), Mac OS X (10.7.4)
  • Niel Level 10 (293,950 points)

    In general, yes. Some applications may need to be updated.



  • David Empson Level 1 (90 points)

    10.8 can run 32-bit Intel apps. Just looking at some of the Apple apps I have installed: Garageband, iMovie, iPhoto, Keynote, Numbers, Pages are all 32-bit and work in Mountain Lion (after updates in most cases).


    Third-party apps I have which are 32-bit that work OK for me include: Bento 4, DragThing, FileMaker Pro 11, MS Office 2008.



    The signficant 64-bit change in 10.8 is that the kernel now always runs in 64-bit mode, which means all kernel extensions (including device drivers) must be 64-bit.


    User space applications can still be either 32-bit or 64-bit, indepdently of whether the kernel is 32-bit or 64-bit.


    PowerPC apps won't work in Mountain Lion, but they didn't work in Lion either.

  • emdash_design Level 1 (0 points)



    However, could you further explain the kernel extensions/device drivers thing? What's a kernel extension? And by device driver do you mean something like printer driver?

  • David Empson Level 1 (90 points)

    Hi, sorry about the delay in replying - busy weekend getting backups done and Mountain Lion installed and ready for a demo.


    Kernel extensions are add-on pieces of software which live in the /System/Library/Extensions folder. As implied by the name, they run as part of the OS X kernel, which is the lowest level of the operating system. The kernel is the only part of the operating system which is able to access the physical hardware of the computer. A normal application can only access hardware indirectly, by asking the kernel (or one of the kernel extensions) to do the access on its behalf.


    Kernel extensions include drivers for many of the hardware components in the Mac, and for a basic level of communication with several types of external peripherals. For example, they include drivers for the graphics controller, hard drive or solid state drive, iSight camera, Bluetooth, Ethernet, Wi-Fi, Firewire, Thunderbolt, USB and many USB, Bluetooth, Firewire and Thunderbolt peripheral types.


    Most of the kernel extensions are supplied by Apple, but some third party software also installs kernel extensions. One example on my computer is the EyeTV television receiver, which needs a kernel extension to support communiation over USB with the receiver hardware.


    Because the kernel has direct access to the hardware, it can access the entire computer and everything in memory, with no restrictions. This means that if there is a bug which causes software running in the kernel to crash, it typically results in the entire operating system crashing. This is known as a "kernel panic", and requires a restart to recover.


    To reduce the likelihood of kernel panics, and to provide as high a degree of protection as possible, OS X is designed to run as much code as possible outside of the kernel, so that if there is a bug, the chances are that it will only affect one application rather than the entire OS. This also helps to enforce the protection mechanisms on OS X: a bug in one application or non-kernel code it uses typically cannot access memory used by other applications, or violate file access privileges. A bug in the kernel could allow any data on the computer to be accessed by malicious software.


    Printer drivers are not kernel extensions. They operate at the same level as application code, so a bug in a printer driver might affect one application but won't cause the entire OS to crash and shouldn't result in privilege violations.


    In the case of communication with a printer which is connected via USB, the printer driver is responsible for converting the content of the printed document into the right format for the particular printer. The data is then sent to the printer via a standard kernel extension which is responsible for communicating with printers via USB. A bug in that kernel extension could still cause the OS to crash, but this is less likely because it is a standard and relatively simple piece of code, whereas the printer driver (not running as a kernel extension) is much more complicated and therefore more likely to have bugs.


    Getting back to the original question: the kernel always runs in a particular mode - either 32-bit or 64-bit, depending on the version of OS X and the particular Mac model. Leopard (10.5) and earlier only have a 32-bit kernel. Snow Leopard (10.6) and Lion (10.7) have both 32-bit and 64-bit kernels, and pick which one to use at startup depending on the Mac model, special key sequences, and parameters stored in non-volatile memory. Mountain Lion (10.8) only has a 64-bit kernel.


    All kernel extensions must run in the same mode as the kernel. Older kernel extensions were originally written to run in 32-bit mode (matching the kernel used in Leopard and earlier). More recent kernel extensions contain both 32-bit and 64-bit code, and the appropriate code is used according to the kernel's mode. (The kernel extensions supplied by Apple with Mountain Lion are 64-bit only, because they will only ever be used on a 64-bit kernel.) If you try to use a 32-bit-only kernel extension on a 64-bit kernel (or vice versa), the kernel extension cannot be loaded. This will prevent access to whichever hardware component is supported by that kernel extension.


    Applications and associated support files (such as printer drivers) can run in either 32-bit or 64-bit mode, and this is independent of the mode in which the kernel is running. If the kernel and applications are running in different modes, a mode switch occurs whenever the application does something which involves the kernel. There is a small speed penalty for this, so if the application is frequently invoking the kernel it is a good idea to have the application mode matching the kernel mode for best possible performance.


    The processor type determines whether it is possible to run 64-bit code at all. Early Intel Macs used "Core Solo" or "Core Duo" processors, which are 32-bit and cannot run any 64-bit code. All later Macs have a "Xeon", "Core 2 Duo", "Core i3", "Core i5" or "Core i7" processor, all of which are 64-bit and are able to run both 32-bit and 64-bit code.


    Lion (10.7) requires a 64-bit processor, because even though its kernel can operate in 32-bit mode on a 64-bit processor, some of the application-level code supplied with Lion is 64-bit only.


    Mountain Lion (10.8) goes further by requiring the kernel to also run in 64-bit mode, therefore all kernel extensions must have 64-bit code (if they also have 32-bit code, it is ignored).


    Applications can still run in either 32-bit or 64-bit mode on both Lion and Mountain Lion.

  • emdash_design Level 1 (0 points)

    Wow! Very thorough...thanks! I think I'll be able to upgrade to 10.8 without disruption.

  • Bobnoir Level 1 (0 points)

    No, my 32 bit app does not run.  The choice is only 64 bit with no 32 bit option as before.  Elegant answer--must be a former Microsoft employee.  Answer is technically correct, but totally useless to apply.

  • David Empson Level 1 (90 points)

    Bobnoir, I do not appreciate your implied insult as to the quality of my answer, especially as your problem is clearly not the same one as the question I was answering in this thread.


    The original question in this thread was about whether Mountain Lion was able to run applications which only contain 32-bit Intel code. That is the question I answered, along with an answer to a followup question to explain more about the significance of 32-bit and 64-bit modes in the kernel.


    Your message appears to be about an unspecified application which is always running in 64-bit mode and is not offering you an option to run it in 32-bit mode via Finder's Get Info dialog. That was not a consideration in this thread.


    Please read the tutorials on the front page of Apple Discussions, particularly the etiquette page. If you have a question or problem, please post it as a new thread rather than tacking it on to a slightly related existing thread, and ask it properly: describe the problem you are experiencing, and with which application (including its version number); the specific OS X version you are running may also be relevant, and I'm guessing that there is some other 32-bit code involved in this case which you would also need to mention.


    Having said that, I will attempt to explain what I assume to be the problem in your case. If this is not helpful, then you will need to describe the problem better.


    I expect the issue in your case is that you have a 32-bit-only plugin of some kind (such as an older printer driver) and you want to use it in an application which always runs in 64-bit mode. This combination won't work because plugins run within the process of the host application, and the plugin can only be loaded if it supports the same mode as the host application.


    Several of Apple's standard applications included with OS X (such as Mail, Contacts and Calendar) do not offer the "Open in 32-bit mode" option via Finder's Get Info in Mountain Lion, because Apple did not include 32-bit code in these applications: they are 64-bit-only. These applications only work on the major OS X version with which they were supplied, and Mountain Lion only works on a 64-bit processor, so Apple decided to only build 64-bit code for these applications. (I expect Apple also decided there was no longer any need to support 32-bit-only plugins or printer drivers in these applications.) The 32-bit option is not offered by Get Info for these applications because it wouldn't work if it was selected.


    If you need to run one of these applications in 32-bit mode under Mountain Lion because you have a 32-bit-only plugin of some kind, you are out of luck. Update your plugin or printer driver to one which contains 64-bit code so it is compatible with 64-bit applications, or stop using that plugin or printer, or use a different host application which supports 32-bit mode instead of one which only works in 64-bit mode, or avoid upgrading to Mountain Lion (or Lion, which will probably have the same issue because it also includes several 64-bit-only applications).


    There may be third party applications which fit into the same category because they only contain 64-bit code. (Get Info for any such application would not have offered the 32-bit option in Snow Leopard or Lion either.)


    The other case where this option is not offered is if the application only contains 32-bit code, hence it always runs in 32-bit mode and there is no need for the option. I mentioned some of these in an earlier post.


    I found several applications on my system for which Get Info does offer the 32-bit option, and it works as expected in OS X 10.8.2. Examining these applications, they contain both 32-bit and 64-bit code, so can run in either mode.


    System Preferences is an example of an application supplied with Mountain Lion which supports both 32-bit and 64-bit modes, and Get Info does offer the 32-bit option. This one still supports 32-bit mode because there are a fair number of 32-bit-only third party preference panes. Preference panes run within the System Preferences process (like plugins) and therefore can only be loaded if System Preferences itself is running in 32-bit mode. If you try to open a 32-bit-only preference pane while System Preferences is running in 64-bit mode, System Preferences offers to relaunch itself in 32-bit mode.


    One odd case I noted: Get Info on Safari 6.0.2 in OS X 10.8.2 does offer the 32-bit option but it doesn't work, because this version of Safari only contains 64-bit code. The appearance of the option is probably due to an error in the Info.plist file in the Safari application bundle, which includes a list of preferred architectures that specifies both 64-bit and 32-bit mode, making Finder think it is appropriate to offer the option even though it won't work (I've confirmed that Safari opens in 64-bit mode even if the 32-bit option is selected).

  • Bobnoir Level 1 (0 points)

    As before, I have no idea what your answer means.  Can you be a little more specific?

  • David Empson Level 1 (90 points)

    I can't be "more specific" as I'm having to guess what you need help with given insufficient information. You haven't explained what problem you are encountering, other than alluding to an unspecified application which only runs in 64-bit mode, but you want it to run in 32-bit mode for an unknown reason. As I explained previously, that is not relevant to this discussion thread, so you should post a new question rather than tacking on to this thread (and at least one other thread I've noticed, which also appeared to only be loosely connected to whatever problem you are having).

  • Csound1 Level 8 (46,350 points)

    What application are you talking about here:


    Bobnoir wrote:


    No, my 32 bit app does not run.  The choice is only 64 bit with no 32 bit option as before.  Elegant answer--must be a former Microsoft employee.  Answer is technically correct, but totally useless to apply.


    Wiithout telling us this is just a guessing game.

  • Steven Won Han Level 1 (0 points)

    Thank you for your detailed explanation about the 32-bit apps on 64-bit OS. And I know that 64-bit 10.8.2 can support for both 32-bit & 64-bit apps. But I have got a problem here that is whenever I run 32-bit apps, the CPU usage percentage is way too high and cause to NOT RESPONDING from the apps (It's absolutely fine for the 64-bit ones) I have been frustrated, I have no ideas why it would happen. CPU usage level is supposed to be higher than usual when running 32-bit apps, but not so high that it could stop my apps working. Do you have any suggestions that could help me solve the problem? Thanks.

  • j_mccaffrey Level 1 (0 points)

    Very thorough answer, but I can understand how someone could read it and still not know if things are going to work for them. (especially if they are looking for a silver-bullet "everything is going to be ok" answer)


    My summary would be: Most apps will work fine, but you might have some 'special' app that doesn't work. You should be prepared to rollback in case you run into a problem.


    My experience was this:

    1. I made a full backup of everything before I did the upgrade (I suspected I would have to rollback)
    2. The upgrade went really smoothly
    3. All of my main programs worked fine
    4. My VPN software (to connect to my company's network) would not work in 64bit mode. There was an upgrade available, but it would only work if our network admin's updated something on their end, which they hadn't done yet. After lots of searching, it seemed my only option was to rollback.
    5. In the process of restoring, the backup scheduler started a job to backup the current drive over my pre-mountain lion copy (overwriting my only backup). Panic set in. Luckily I found another backup that was just a few days older. (I learned a little something about automatic backup in the process)
    6. After the rollback, I started to have battery and wi-fi issues. My research indicated this was a result of doing the upgrade, and some changes to the battery calculator that persisted even though I rolled back to my older version. Suggested solutions to reset the PRAM and SMC only helped temporarily. (running under 64bit mode for an hour, then restarting actually seemed to work the best) The battery problem was extremely annoying. I would say I have 45mins left, but then just shut down and lose the date (and then if I connected to the internet without updating the date/time accurately, dropbox would overwrite any locally modified, but not synced, files with its copies, making it look like I lost my recent changes. arrgh)
    7. A few of my programs updated themselves to the latest version, and promptly stopped working because my older OS version was no longer supported.
    8. After months of waiting, my company finally updated their end of the VPN, and I'm about to go through this process again (making a few extra bootable backups, and turning off automatic backup this time)


    So, uh, definitely make a backup before you do the upgrade. (and for me, it highlighted that I should have more of my data/files in a separate drive, so an OS backup doesn't have to include my photos/videos)