List the 64-bit GUI programs on your Mac

The evolution in computing horsepower is more of everything—first it was more gigahertz, then more cores, and on top of that, more bits for the integer registers inside the CPU. Whereas 32-bit registers have been the historical norm, 64-bit processors are taking over. A CPU with 64-bit registers can address much more RAM than can a 32-bit CPU, which is a big advantage to programs that require large amounts of memory. Today’s Intel Core 2 Duo are 64-bit chips, as but one example.

OS X, however, is not yet a fully 64-bit operating system. With the introduction of OS X 10.4, you could run some programs in Terminal in 64-bit mode. Things changed with 10.5, when support was added to allow some 64-bit applications in the GUI, assuming the program has been coded to work in 64-bit mode. (Things will change even more in OS X 10.6 when it comes out in a year or so, as it will be a fully 64-bit operating system.) But enough with the history of the CPU. If you’re curious as to which of your programs are already 64-bit, you can find out with a Terminal command.

If you’re on an Intel-powered Mac, this command will show you all the programs on your machine that can run in 64-bit mode:

locate -0 app/Contents/MacOS/ | xargs -0 file | grep x86_64

If you’re on a PowerPC-powered Mac, use this version instead:

locate -0 app/Contents/MacOS/ | xargs -0 file | grep ppc64

That’s actually three separate commands, of course. locate lists all files matching a given condition (in this case, a string that contains indications that something is in Applications, along with the path to the folder containing the actual executable file), and xargs runs a command against the set of matches passed to it (one match at a time) from locate. In this case, that command is file, which returns information about files. Both commands use the -0 option, which replaces the standard line break separator with a NUL character. Finally, a grep command is run to search for a string (either x86_64 or ppc64) within the output of the file command.

When run on my MacBook Pro, the output looks like this:

/Applications/Chess.app/Contents/MacOS/Chess (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/Utilities/Java/Java Preferences.app/Contents/MacOS/Java Preferences (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/Utilities/Java/Java Web Start.app/Contents/MacOS/Java Web Start (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/aarobg_apps/Araxis Merge/Araxis Merge.app/Contents/MacOS/Araxis Merge (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/aarobg_apps/DropCopy 1.4.7/DropCopy.app/Contents/MacOS/relaunch.app/Contents/MacOS/relaunch (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Applications/aarobg_apps/DropCopy 1.4.7/DropCopy.app/Contents/Resources/relaunch.app/Contents/MacOS/relaunch (for architecture x86_64):	Mach-O 64-bit executable x86_64
/Developer/Applications/Audio/AU Lab.app/Contents/MacOS/AU Lab (for architecture x86_64):	Mach-O 64-bit executable x86_64
...

While the output isn’t the easiest to read, it’s still relatively straightforward—just look for the “.app” portion of the string. In my case, the 64-bit programs on my MacBook Pro include Chess, Java Preferences and Java Web Start, Araxis Merge, etc.

If this command doesn’t work for you, it’s possible your locate database hasn’t been created (OS X’s maintenance routines should create it if they get the chance to run). To create the database manually, use this Terminal command:

sudo /usr/libexec/locate.updatedb

That command will take a while to run, depending on the size of your hard drive. Once it’s done, though, you can use the above commands to check and see which of your programs are ready for the coming 64-bit world.

  
Shop Tech Products at Amazon