Tuesday, 5 July 2011

Should you choose 32-bit or 64-bit Linux?

A common question that pops up from time to time is whether someone who has a 64-bit CPU (such as an AMD64 or an Intel EM64T) should download a 64-bit or 32-bit Linux distribution. Since these processors are capable of running either one at full native speeds, what are the advantages and disadvantages to both? Here I hope to address some common issues.

Speed - Without a scientific set of benchmarks this one is really hard to measure. Some people think one distribution "feels" faster than another while others disagree. Suffice to say that no one has yet to prove scientifically that the 64-bit versions of Linux available today are significantly faster in performance than their 32-bit counterparts. Most "64-bit" versions of software are actually just recompiled versions of the 32-bit code, with no optimization that would take advantage of the new features these chips offer and perhaps boost performance. If you're looking to use 64-bit because you think it will be a major improvement in speed, I would reconsider.

Compatibility - Not all software runs on 64-bit Linux. Although there have been 64-bit native Linux distributions for several years (a year before Microsoft Windows XP64, but I digress), the software community has yet to fully embrace the technology. As of the time this post was written, there is no 64-bit version of the Macromedia Flash Plug-in for your web browser, for instance. WINE and the Java VM have been known to cause problems on some 64-bit installations as well. Not all hardware has 64-bit drivers yet. The two major display card manufacturers (ATI and Nvidia) do have X86_64 versions of their drivers, but they are sadly the exception rather than the norm.

RAM - If you plan on using a machine that has more than 4GB of RAM, you'll need to use the 64-bit version of your distribution because 32-bit operating systems are only able to handle up to 4GB, maximum*. There's just not enough memory addresses for more. This is usually not a problem for desktop users, but it might be a concern for servers or high-end workstations. 

The "coolness" factor - As Apple Computer has proven in recent years, there's an awful lot people will do just because something looks or feels "cool". This is perhaps the one reason why some people choose to run 64-bit Linux: it's a neat idea. To some people the idea of running a 64-bit native** operating system on their 64-bit CPU is just too cool to pass up. These people understand the drawbacks to running a bleeding-edge system and accept the extra work involved. If this describes you, more power to you.

So which should I choose? (29 July 2008) Over the last 2 years since I wrote this thread, a lot of progress has been made and I believe at this point that 64-bit Linux distributions are pretty much identical in performance and features as their 32-bit counterparts. I say "pretty much" because there's still no native Flash player. There are 
ways around that. I've not had issues with Java in 64-bit in recent months, so progress was made there too.

That being said, the point I make in the beginning still stands: although 64-bit Linux distributions are now by and large on-par with their 32-bit brethren, they do not yet surpass them in performance. You're not running at as much of a deficit with 64-bit two years later, but you still don't quite have an advantage either. Now, I think, rather than strongly suggesting 32-bit I could say either will work, but neither has any significant advantage over the other. It's more a matter of personal preference.

* NOTE: The 32-bit Linux kernel can be recompiled to handle up to 64GB of RAM if you're particularly concerned about staying 32-bit. 

** NOTE: Although 64-bit Linux distributions do include a natively-compiled Linux kernel and several natively-compiled key applications, not every package in a 64-bit Linux distribution is 64-bit. The 32-bit library files and many 32-bit applications still exist and are used on a regular basis, so the idea that a 64-bit distribution is "native" is really a misnomer.

No comments: