Ubuntu released version 7.04 (Feisty Fawn) on April 19, leaving Tanker Bob an interesting opportunity. A compulsive upgrader, Tanker Bob eagerly anticipated the arrival of Feisty's release. In addition to the standard upgrade of my 32-bit Kubuntu Edgy setup, I decided to go for broke and install the 64-bit x86_64 version of Feisty.
The Hardware Lead
Almost since the beginning of the computer revolution, software has lagged hardware developments. The old saw goes that (almost) anyone with an engineering degree can make computer hardware, but that hardware will be the technological equivalent of a paperweight without the software to take advantage of its capabilities. Forward-looking hardware designers form alliances with someone who will write the development environment and compiler to actually use the product to the limit of its capabilities.
As 8-bit DOS gave way to 16-bit Windows, it more or less hung with the hardware. Then when the 32-bit Intel 386 CPU came along, it took a few years for desktop Windows to make the jump from a 16-bit architecture to 32-bit, and even then the Windows 95 core remained 16-bit. Then Advanced Micro Devices (AMD) pioneered the current 64-bit x86 CPU architecture with AMD64 in 2003, over three years later there isn't a mainstream (note the italics) 64-bit Windows release for the desktop.
Wait, you say. There certainly are x86-64 versions of Windows XP and Vista you'll reply. Sure, but they have very little support in the form of 64-bit hardware drivers and native software. Both of these versions remain outcasts with little support from Microsoft or the general Windows community. See many copies flying off the shelves of Circuit City or Best Buy? Have many friends running them? Even know where to get a copy? Me either. Hence the italics above.
Too many notes?
That's what Emperor Joseph II reportedly said to Mozart about the master's music. Too many bits? What do we need all these bits for anyway? In two words, memory & speed.
The term "64-bit" refers to the size of the integers that the CPU can manipulate in one operation, as well as the corresponding internal memory register sizes. In this case, each memory register in the CPU is 64-bits wide. One immediate implication is how much memory you can theoretically address directly--256 tebibytes of virtual address space (2^48 bytes) for 64-bit vs. 4 gibibytes (2^30 bytes) for 32-bit. That's 1,000 times as much memory in a 64-bit system. Practically speaking, AMD limited the actual memory size possible to somewhat less, but reserved the additional address space for core operating system use.
While you probably won't see that kind of memory on your desktop, you would see the computational efficiency for complex operations and speed of memory access/use that the wider path provides. Think of going from 32-bits to 64-bits as doubling the number of lanes on a crowded highway--lots more traffic gets through in the same amount of time. But you will only only see the full effect if you have the software to take advantage of this capability. Otherwise, the CPU operates in a dumbed-down mode to accommodate legacy software.
The irony here is that many power users spend hundreds or even over $1,000 dollars for a hot new CPU, often overclocked, that is grossly underused by their operating system. Before you laugh, if you own an AMD Athlon 64 or newer, or an Intel Pentium 4F, D, Xeon, or Core 2 Duo CPU or better, you fall in that category. You paid good money for that CPU; shouldn't you get to use its full capabilities?
If you doubt the benefits just mentioned, note that the 3D accelerated graphics card industry provides one area that milks bits for all they're worth. The new NVIDIA GeForce 8800GTX chipset uses a 384-bit (?!) memory architecture to push through humongous amounts of data extremely quickly. You pay dearly for that capability, but oh is it sweet to behold! However, only with the right firmware on the card, software drivers for the operating system, and programs or games that use that capability. You need the entire chain from the GPU to the screen in place to behold the wonder that is modern gaming.
Bits of Linux
Linux has done somewhat better than Windows in this area. Several distributions, including Ubuntu and Gentoo, support the x86-64 architecture. Others, like Debian, will follow soon. When I say support in this case, I don't mean just publishing the operating system and hoping for the best. I mean they have repositories full of software compiled for 64-bit operation. In fact, there are just as many titles in the 64-bit Feisty repository as in its 32-bit one. That's commitment to a platform.
Note carefully that this extensive Linux support includes hardware drivers.
Proof in the pudding
Tanker Bob did not intend this post to be purely theoretical. Ubuntu has supported x86-64 distributions for the last several releases. The Feisty Fawn release this past week was supposed to improve the already good overall stability and usability of the operating system. Since Tanker Bob had just built a 64-bit PC system around a 64-bit Intel Core 2 Duo CPU, it seemed logical to move to a true 64-bit operating system.
Catching the bits
Upgrading from Kubuntu 6.10 to 7.04 on the same architecture should be simple. Just use the Adept Updater and tell it to update the system to the new release. As a sign of this release's popularity, the robust but hammered Ubuntu servers were brought to their knees, causing issues for folks trying to update the easy way on the first day. That has settled out a bit as of this posting.
Going from a 32-bit installation to a 64-bit one, however, requires a (sort of) fresh install from a CD. I say sort of because the net result depends on how you partitioned your hard disk. Because of the limitations of Tanker Bob's last PC's old BIOS, I made a separate, small partition for the /root which holds the operating system core. All my data and many settings reside on a separate /home partition. I highly recommend this approach.
After downloading the Kubuntu 7.04 x86-64 Live CD image and burning it to a CD with k3b, as well as saving some key system setup files off to my home partition, it was time to talk turkey. The 64-bit Live CD booted flawlessly. I played with the system for a few minutes to see if the 64-bit system would recognize my hardware and be faster. It did.
So, I clicked the Install icon on the CD desktop and answered the usual questions. I again assigned the root partition separate from the home partition and only set the root partition to be formatted. The root was quick-formatted then the new operating system installed. I didn't time it exactly, but the install took less than five minutes. By comparison, Windows XP routinely takes about 45 mintues on a good day and often much longer.
Upon rebooting the system, everything worked. The x86-64 Feisty recognized and loaded drivers for all of my hardware except the Epson scanner (more in a later post). Bluetooth, USB hub, GeForce 8800GTS card, and network all worked on the initial boot. Sweet.
I wasted no time in duplicating my previous setup. 64-bit versions of Firefox, Thunderbird, Krusader, Xine, Java, etc., from the Ubuntu repositories all loaded perfectly AND picked up their complete settings and data from my preserved /home directory. I opened Thunderbird to find all my mail and accounts there and ready. Firefox opened with its bookmarks and extensions fully functional. Only the plug-ins needed reloading. Wow. I at least expected to have to copy stuff around or point the programs at their data--but that was not necessary.
I did have to work on Flash 9 support for Firefox with nspluginwrapper, but there was an excellent tutorial on that here. Although the 64-bit Feisty repositories had the correct proprietary NVIDIA driver for my 8800GTS card, that install didn't seem to work. However, installing the driver directly from NVIDIA worked fine. Then, I loaded Beryl from the Ubuntu repositories and it worked perfectly. In fact, Beryl seems more stable on the 64-bit system than on 32-bit. I had to reload VMWorkstation and add a workaround for the new Ubuntu kernel version, but that worked flawlessly. A few minor things that didn't work well in 32-bit work fine in 64.
Did I mention that I still haven't gotten my vanilla Windows XP setup on the dual-boot drive to boot in safe mode after my PC hardware upgrade over a week ago? Looks like another reload from CD to recover, but I'm seriously considering just pulling the drive and just writing Windows off. Recall that Kubuntu booted the new PC without hesitation or complaint. Still think that Windows is easier than Linux?
At this point, I have a screaming 64-bit system, hardware and software, with a 3D desktop that looks and works great. Life just keeps getting better as the data flies past in 64-bit hyperspace...
Powered by UBB.threads™ 6.5.5