Program! Get yer program!
Of course, as with every massive step forward, there are some weak points to 64-bit computing. Probably the greatest weakness of all is that in order for something to gain any of the benefits of it, the software you use must be made for it.
As we mentioned earlier, 64-bit programming
is not compatible with 32-bit, and vice-versa. Therefore, you can't run a 32-bit OS and expect to use any features of 64-bit execution - the code won't be compiled to use any of the new features, even ones that seem like they could be implemented in any programming method (such as relative pointers). The same goes for software - if it's programmed in 32-bit, it will run as a 32-bit program from start to finish.
Therefore, the first place to look when you're interested in delving into 64-bit computing is your OS. At its most basic, the OS isn't there to just be a pretty little shell around your programs - it's there to help your software interact with your hardware. So if your OS isn't 64-bit, you can't expect it to use the x86-64 extensions, or even execute 64-bit software.
All major operating systems these days come with a 64-bit version. Windows Vista is considerably more advanced in 64-bit features than Windows XP x64, it is worth noting, but both are what are known as
hybrids. You can also add Mac OS-X (Tiger and Leopard) to this list. Each OS provides both a 32-bit and a 64-bit execution path, allowing both instructions simultaneously and thus not requiring specially coded 64-bit versions of all programs.
Because they offer the ability to run 64-bit programs, these hybrid operating systems make use of 64-bit memory addresses. In order to allow 32-bit programs to access the upper memory addresses and certain bits of the 64-bit instructions (mostly ones designed to simplify repetitive 32-bit commands and piping), programs are run in protected space similar to emulation. This allows the OS to get the "best of both worlds" with 32-bit code and not sacrifice any performance for 64-bit code.
Linux/Unix/BSD users are given a whole different choice. The 'nix universe has developed kernels designed specifically to run
only 64-bit, and the vast group of coders in the OSS underground have created programs to suit. This leaves Linux as a natural choice for people looking to see exactly how vastly improved 64-bit computing can be. Users have found speed boosts, security improvements, compiling benefits and a myriad of other little gains.
Once into the applications, users of Mac and Windows systems will find themselves a little shorter of options, but far from barren. The latest offerings from Adobe all feature 64-bit instructions, as do some of the newer modelling/rendering software. You can even find 64-bit "enhancements" in games all the way back to
Far Cry, and Valve's
Source engine has some significant speed improvements for those running a 64-bit OS.
Driving me crazy
No step forward is without at least one little step back, of course, and 64-bit computing is absolutely no exception. If there is one thing that is slowing the uptake of 64-bit, it's the support by manufacturers in the form of drivers (or modules, for those in the 'nix community). A trip around even some big-name websites like Linksys and Creative will leave you with a sour taste from the word "go," wondering where all the love has gone.
However, many of the driver issues that
seem to plague 64-bit are actually little more than lack of publicity and slow market adaptation. Installing a 64-bit OS requires a complete re-code and re-install, something that many home users aren't willing to undertake. Further, most businesses are running on systems that can be years old, many of which can't support 64-bit due to hardware limitations.
Because of this, "big-name" hardware manufacturers have largely been slow to develop proper drivers for 64-bit operating systems. However, many of these same companies are simply board partners, especially in the networking sector. For instance, most Linksys cards nowadays use Broadcomm and Railink chips, which have had 64-bit drivers for quite some time. A quick search on some forums will bring you to some wrapped drivers for your particular hardware.
These same trials have been worked through by Linux lovers for a few years now, so most common technologies have readily discoverable drivers if (for whatever reason) something hasn't worked out of the box. However, it is worth noting that this writer has installed Vista 64 on five different setups with completely different hardware, and never found a piece that didn't work which wasn't tremendously obscure to begin with.
Want to comment? Please log in.