I have a 32-bit machine, can I use programs that are meant for 64-bit processors?

I am using a 32-bit machine, but I am having to use a relatively obscure semantic database which only comes in 64-bit versions.

What are my options for running it in my local dev environment?

Currently when I try to run it, I get an error message that looks like this:

cannot execute binary file

and when I check my machine info, I get this:

$ uname -a
Linux slabrams-desktop 2.6.32-29-generic #58-Ubuntu SMP Fri Feb 11 19:00:09 UTC 2011 i686 GNU/Linux

If its a compiled binary, in only a 64 bit version, I think you're stuck. The binary instructions within the 64 bit program won't be understood by your 32 bit processor. It might be possible somehow to run it through some kind of emulator but I've never seen one designed to do that, and it would most likely run very slow if there was one.


In case your CPU supports hardware virtualization (most modern processors do) you are able to run a 64-bit guest virtual machine on a 32-bit host by using Virtual Box (see here for reference).

However this may not be as stable as running on a native 64-bit OS. If you need to run 64-bit applications I would strongly recommend an upgrade of your system to an amd64 Ubuntu version.


You can run 64bit application if you install a 64 bit kernel (which is possible while staying with 32 bit libs) and after that building a 64 bit chroot environment for the application. Well, a completely virtual solution may be easier, but if you need a direct hardware access this is an only way. You may install 645 bit kernel as additional, and load it with kexec.