One of the common choices today is whether to run a 32-bit or 64-bit operating system on desktop machines. Since 32-bit operating systems have been in production for many years, 32-bit still seems to be the most reliable platform, however more and more software is being developed for 64-bit. But at some point you'll probably be faced with the question, whether to stick with 32-bit or move ahead and try a 64-bit version of your operating system. Moving forward to 64-bit has both pros and cons, so you will probably have to weigh the options and choose which fits best for your scenario. Normally it boils down to the speed and scalability of 64-bit vs. support and reliability of 32-bit.
One very big misconception about 32-bit vs. 64-bit is memory usage, mainly with how much memory a 32-bit operating system can address. Ever since Intel introduced PAE (physical address extension) in 1995 with the Pentium Pro processors, the Intel 32-bit architecture has been able to address OVER 4 GB of RAM. The reason for the misconception is from users that run various versions of Microsoft Windows on desktop PCs, which is crippled and cannot take advantage of the full PAE functionality designed by Intel. So, for example if you install the 32-bit version of Windows XP, Vista, or Windows 7 on a PC with 6 GB of RAM, Windows will only use about 4 GB of it, and the remaining 2 GB is wasted. But, what many people do not know is that Intel specifically designed PAE to handle more than 4 GB. This means that the hardware supports running a 32-bit operating system, and can theoretically address more than 4 GB of memory. But, for some reason Windows continues to be crippled and cannot take full advantage of this. Because of this, time and time again I hear from Windows users is that they have to upgrade to 64-bit versions of Windows on their desktop, in order to use more than 4 GB of memory in their PC. And, then later I hear their complaints about how they can't get some older hardware to work because there are no 64-bit drivers available, or how their 64-bit Internet Explorer doesn't have Flash support.
This is where the Linux kernel has picked up the slack. The Linux kernels above version 2.3.23 do take advantage of the PAE functionality designed by Intel, and it can easily address more than 4 GB of memory, running in 32-bit mode. So, in this way you can get the best of both worlds, using the full amount of memory in your system while maintaining the reliability of 32-bit. My current PC has 6 GB of RAM, and my installation of Fedora 12 32-bit happily uses all 6 GB right out of the box. What I especially love about this is that I can run virtual machines and take full advantage of all of the memory, and also maintain 32-bit reliability for everything else. I've contemplated upgrading to Fedora 12 64-bit, but I have come across various issues still with certain 64-bit apps so I have held off. The really nice thing about Linux, is that the entire distributions are compiled specifically for 32-bit or 64-bit architectures, which includes all of the applications too. Windows cannot touch this, because a majority of the software most users run is not written by Microsoft, and the software vendors pick and choose which applications they want to compile for native 64-bit mode. The 64-bit versions are still few and far between. In both operating systems (Windows and Linux), you can still run 32-bit applications though if you want, but things like drivers must match the mode you are running.
So, the next time you hear somebody complain because their operating system doesn't support more than 4 GB of RAM, keep in mind if they were running Linux they could! I've also been asked why Windows is crippled. Well, the truth is their high end server operating systems do handle more than 4 GB of RAM in 32-bit mode, like Windows Server Enterprise and Datacenter. But Windows Server Standard is still crippled at 4 GB in 32-bit mode. I am not sure of the official answer to this (maybe Microsoft has one). All 64-bit versions of Windows can handle over 4 GB of RAM. Luckily on the server side, running in 64-bit mode is not as much of an issue because it only hosts services, without a lot of applications to run, but on desktops this is a whole different story.