What’s So Difficult? 64-bit Edition

I have been asked to clarify the 64-bit situation in light of the recent Flash Player 9 beta for Linux (which, as some have lamented, should have been labeled as the beta for Linux/i386). So here it is:

The Flash Player 9 beta Players (plugin and standalone) are compiled as Linux i386 ELF files. These binaries are designed to operate natively on i386-class computers.

However, you may have read forums and comments about people running the beta successfully on x86_64 machines (a.k.a. AMD64 or EM64T). Yes, it is possible, though the setup is not as straightforward as with an i386 machine. There are basically two approaches:

  1. Run an i386 kernel and pure i386 system on your x86_64 machine– not a great solution, but it works
  2. Run a limited i386 system inside your x86_64 machine– in this approach, you run a pure 64-bit system but with just enough 32-bit support libraries to enable the i386 Flash Player to run

Some Linux distros make this 32-bit support process more ergonomic than others. I see that my favored distro, Gentoo, has a masked ebuild for the AMD64 architecture.

What about a native 64-bit binary? Tinic summed it up succinctly in his Linux beta post:

What about 64bit? There is no Windows 64bit or OS X 64bit version either right now. As I said before it is not a question of ‘recompiling’ the source code, there is lots of generic non platform specific work which needs to be finished first. We will ship a 64bit version for Windows, OS X Leopard and GNU/Linux. It will happen. When? … When it is ready.

64-bit support is not just a recompile away. And no, this is not due to treating memory pointers and 32-bit integers interchangeably. There are assorted non-portable pieces that need to be upgraded first, notably the JIT compiler in the virtual machine (transforms ActionScript into native x86_64 code) and the garbage collection engine. Tinic outlined these items in this post.

One more item: A number of users have noted that the minimum requirements for the beta Player list 128 MB of video RAM. I have no idea where that number came from but I’m pretty sure it’s overstated. Don’t be afraid to test the beta even if you have significantly less VRAM.