The easiest way to get 64bit in Linux is to simply install a 64bit Linux kernel on a 32bit system.
That way you get a hybrid system were individual applications won't be able to address more then 4GB of RAM, but you can use as much ram as possible for your total system.
As far as history goes...
Linux has been running on 64bit platforms for years and years.
The first non-x86 platform that Linux supported was the Alpha DEC architecture. It's also the first 64bit system supported. And unlike the Windows port it actually ran 64bit and not in 32bit compatibility mode.
This was around 1995. So Linux has been running on 64bit systems for over 12 years.
And Alpha is not the only 64bit platform that Linux supported. It runs on Intel Itanium, Sun Sparc, IBM POWER and PowerPC... All of which have 64bit versions and Linux runs in native 64bit mode.
With the release of AMD64 platform the PC platform was finally introduced to it's first 64bit processor (of course people have been using 64bit systems for over a decade previous to that). Linux support for that platform was measured within weeks of the first comercially-avialable AMD64 stuff. AMD worked with Suse and a few others to make sure that Linux supported it natively.
The full suite of open source software was ported to 64bit long time before AMD64 came along, with a few notable exceptions. (like OO.org)
Debian has native support for Alpha, Itanium, and a couple other 64bit arches. This means that it's 24,000+ software packages are ported onto multiple 64bit systems.
Since Ubuntu runs using Debian-developed software and packages then Ubuntu is mature 64bit-ness.
The AMD64 platform was designed with backward-compatibility in mind. It has the ability to run both 32bit and 64bit software natively, side by side. Not all 64bit systems can do this, but AMD64 can.
(and since Intel copied AMD with the EM64T platform and is mostly compatible then it can run it to)
Similar to how you can run 16bit software side by side with 32bit software you can now run 32bit software side by side with 64bit software.
For Linux to run both 64bit software and 32bit software you need to have the dependencies of both times in their native bit-types.
So if you run Gnome in 64bit mode, but you need some gnome stuff to run a 32bit-only program then you must have both 32bit and 64bit versions of Gnome's libraries installed.
This means more space used up on your harddrive and more memory used.
You have to have memory to contain both the 32bit and 64bit lib files.. which are otherwise shared between multiple processes. With a 32bit-only system or a 64bit-only system if you have a dozen applications using the same GTK libs or Gnome libs then only one copy is stored in memory and shared between all the applications (unless your using statically compiled software). By mixing 64bit and 32bit you have to keep one copy of each bit-ness.
Also 64bit binaries use more memory then 32bit binaries. Just because.
So if your running 64bit and 32bit software side by side your going to use up a lot more RAM then you otherwise will.
The main reason why most people still use 32bit Linux on their desktops has to do with the fact that proprietary applications for Linux are almost all 32bit.
The biggest problem for most people right now is that Adobe Flash is 32bit-only.
This means that you have to keep a copy of a 32bit Firefox (or use mozplugin wrapper hacks) to run flash.
This is a PITA and is not very easy to do in Linux for most distributions, unlike Windows.
Also most your games are going to be 32bit-only anyways. So tough shit on the performance enchancements.
But remember a 64bit Linux kernel for AMD64 has the ability to run either 32bit binaries or 64bit binaries natively.
Your options are:
32bit-only system on a 64bit processor. This is what most people do and is appropriate for systems with less then 4GB of RAM (which is the cut-off point for 32bit support)
Run 64bit Linux kernel with a 32bit-only userland.
This is good if you have more then 4GB of RAM, but depend on proprietary software to make you happy and/or make you money.
This allows you to address up to 4GB per process, but still be able to have multiple proccesses use up more then 4GB of RAM. Win-win.
There are other ways to use more then 4GB of RAM with a 32bit system by using things like PAE... but your a moron to do that nowadays. It's old fashioned and obsolete with 64bit-enabled processors.
You can run 64bit-only system.
This is appropriate for systems were you have more then 4GB of RAM and want to allow processes to use more then 4GB of RAM. (say for big 3D renders, big 64bit native games, ram-stored databases, or whatever)
You can install a small 32bit-only chroot environment for running 32bit applications.
X Windows, being a network protocol and all that can easily run those applications side-by-side with your existing stuff.
There are scripts that can help with that sort of thing and make it as painless as possible. Don't expect it to be very pleasent, however. It's not a slick solution.
However the vast vast majority of open source software is 64bit and most of it has been 64bit for a very long time now.
Keep in mind that I am coming from a Debian Linux background and Debian does Pure-64bit systems. With Fedora or other Linux distributions then they may have a better way to do mixed-mode. But I haven't looked into it to much because currently my two 64bit systems I have only 1 or 2GB of RAM.
I am looking at purchasing 4GB of RAM and migrating my laptop over to 64bit however.
The only proprietary application I still use is Flash, so that's a PITA, but it's not that big of a deal.