64 Bit Windows
Intel made a 64 bit processor a few years ago (the Itanium), but it was
nearly incompatible with 32 bit code. It would emulate a 32 bit Pentium
processor (probably using the Windows Hardware Abstraction Layer
[HAL]), so you could run applications written for previous versions of
their processors.
AMD was much smarter: they created 64 bit "extenstions" to the existing
x86 chipset. For some reason, they decided to call this new
architecture x64, but oh well. Anyway, these extenstions basically
allow you to run 32 bit code natively, as well as 64 bit code natively,
without big performance hits, or having to increase the number of
transistors on the chip dramatically (e.g. 1 set for 32 bit, and
another set for 64 bit).
Not so strangely, Intel now provides the exact same architecture.
Apparently (and this is a big rumor I have never followed up on to
validate), intel developed the x86 architecture, the US government
would not do business with them until they published their chipset so
that other manufacturers could create them and get more competition in
the marketplace. As per their publishing agreement, anyone who makes an
extension to the x86 architecture, must publish that architecture as
well. Well, x64 is an extension to x86, so now Intel can take the
instructions and produce an architecture that accomplishes the same
thing. AMD got a huge start on the market (schools like BYU bought huge
supercomputers with those processors in them). Intel makes processors
that are not as physically hot, so they are less likely to melt, and
tend not to get flaky after a while. (My last computer was an AMD
Athalon, and it worked well for about a year...but I lived in an
apartment without air-conditioning, just a swamp cooler, and it
overheated a few times, and was never the same again).
Anyway, back to Windows. I have an AMD 64 300+, so it is a 64 bit
processor. I have yet to take advantage of the added computing power
(faster floating point and long int computations), so I thought I would
give it a try.
Virtual PC
Don't even try it. It won't work. I thought that the VPC would just use
the underlying CPU as the processor for the VPC, but it doesn't.
Apparently it restricts itself to the good old x86 architecture. There
are probably some plugins that will get around this, but I don't feel
like tracking them down.
Under my assumption to just install it on the VPC, I tried several
times, but I regularly got errors about invalid 32-bit executeable
code. Thinking about it, this is a big hint about why it would not
install: Windows XP, 32-bit edition, does not recognize 64-bit
executeable code. This is especially true if you try and install under
windows as a Dual-Boot system by just popping in the DVD while running
a 32-bit windows edition.
Dual-Boot
If you look at my previous blog about my
Windows Vista installation woes,
I left out a lot of references to my attempts to install the 64-bit
version. I tried at a few places, got frustrated, and just left it
alone. I am planning to install it eventually, but now that I have
through through the problems, I understand what is going on now, and I
will try and explain some caveats you should be aware of if you try and
install the 64-bit version of Windows (XP or Vista).
Driver Incompatability
64-bit windows is incompatible with 32-bit drivers. This is too bad,
but I can completely understand. Partly, it is good to just get a clean
start in driver design when doing a new kind of chipset (which Windows
may or may not have done), but also, if you are communicating with the
processor and RAM in 64 bit, why not communicate with everything else
in 64-bit.
As a result, I went looking for 64-bit drivers for all the hardware on
my computer. I found it on the MB manufacturer's website, but they were
all marked "beta". Since I am installing a beta OS, I did not want to
compund the problem by installing it on top of beta drivers. They are
probably very stable, but this is where I gave up.
Conclusion
Just to wrap up:
- You should probably install the 64-bit version of Windows as a dual-boot system.
- You need to boot from the 64-bit DVD to install since the 32-bit version of windows won't run it's code.
- You need to have all the drivers
for the 64-bit version available and on a separate CD so that you can
install them (putting them on a Floppy will not work...refer to my
previous blog).
Once you have all these in place, the installation should be very
smooth. Whether or not you need the added power, or even that any of
your applications will take advantage of the added power, is a whole
different ball-game. Take this into account when you install a 64-bit
OS, because you may not be gaining anything from it. When I have a
machine with more than 4 GB of RAM, I will probably truly upgrade to a
64-bit system. Until then, 32-bits is all I need.