On Fri, 9 Feb 2007, Rob Sherwood wrote:
On Fri, Feb 09, 2007 at 02:48:25PM -0500, Derek Juba wrote:
If you want > 4GB of RAM then 64-bit is a must, but
otherwise, I'm also not really sure what the advantages are.
Is this even true anymore? I thought some chips (Xeons?) could magically
hack around this. I know it makes no sense that a 32bit machine could
address more then 2^32=4GB of ram, but apparently they had special
instructions or memory windows or something. I think they were still
limited to 4GB per process or something.
Yes, modern Xeons could address 36 bits of address space... but you'll
pay a big performance penalty. Also, you hit a point of
diminishing returns, where even though you have more than 4GB of RAM, you
end up using a lot of that RAM for page-tables and after about 16GB I
think adding more RAM will perversely make you end up with _less_ availble
RAM. If you want to use more than 4GB of RAM (and for various other
reasons, the real practical limit is 2GB) you should be running a 64-bit
kernel...
It's a shame to waste a 64 bit machine by running a 32-bit kernel on it.
With x86_64 you get some extra benefits; x86_64 code has 16-general
purpose register available isntead of the 8 in x86. So in theory your
code could run faster because of that. Also if any of your programs do 64
bit integer math, running a 64-bit kernel instantly more than doubles the
performance of all 64 bit ALU operations.
In the end though, it doesn't matter how fast your machine is if it
doesn't run the apps you want to run.
I've run x86_64 machines for years with both Red Hat and SuSE with
minimal problems. But then again I don't run any binary drivers, and
I never use the flash plugin. Probably because my primary system is a
PowerPC one which has even less availble closed-source packages than
x86_64 does.
Vince