On Mon, 6 Oct 2008, Eric F Crist wrote:

> Don't have one to test, but I don't know why there would be any 
> problems.  Pull out the current version of Ubuntu and try it out.
>
> Note that, unless you're running 64-bit, you won't see your 4 GBs of 
> RAM.  Something around 3.2GB or something.

See the information below about the "32 bit memory hole fix" BIOS option.

I also recommend Ubuntu.  It is good, easy, and so many people use it that 
it should be easier to get help with it than with many of the others.

Mike


Date: Wed, 01 Oct 2008 21:47:39 -0500
From: Jack Smith
To: MLUG Members <members at mlug.missouri.edu>
Subject: Re: [MLUG] 64-bit Linux distros

On Wed, 2008-10-01 at 15:54 -0500, Rick Buford wrote:

> If you have a PCI-E slot on this board, it was my understanding that the 
> "missing" 3/4Gb is taken up by the PCI-E bus...not an OS issue, but a 
> PCI-E one. At least that was Dell's explanation.
> 
> We ran into this at work a year or so ago when we got our workstations 
> with PCI-E slots.
> 
> Rick
> 
> On Wed, 2008-10-01 at 14:36 -0500, Robert Citek wrote:
> 
>> Not likely an issue in Mike's case, but in other cases, watch out for 
>> the hardware manufacturers that cripple the MoBo.  Case in point, I've 
>> got a Lenovo ThinkCenter with dual 3 GHz Intel P4 CPUs, both 64-bit 
>> capable.  Unfortunately, despite maxing out at 4 GB of RAM, the OS can 
>> only use 3 GB.  The MoBo reserves (disables?) the other 1 GB.


You guys have part of the answer. A 32-bit OS normally has a 4 GB
address space, which you guys said. That address space contains the
addresses for both data in RAM as well as the addressing space for *any*
I/O devices in the computer, such as the PCIe slots in your Dell. This
I/O addressing space is mapped to the very top of the entire space, say
from 3.3 GB to 4.0 GB. You can only have one physical location mapped to
each address location, so when you have 4 GB RAM, the OS only sees the
locations below ~3.3 GB as address spaces in RAM and everything above it
as I/O address space. That is why you "lose RAM" while running a 32-bit
OS with 4 GB RAM but you see all of your RAM if you have 3 GB or less as
the I/O address space is located "higher" than your RAM. The space is
still used; you just do not see it as it does not overlap your RAM. Your
older computers have this same issue but you just never put enough RAM
in them to see it. Note that if you ran more than 4 GB RAM on a standard
32-bit OS, you still only see the ~3.3 GB amount as the OS cannot see
anything beyond 4.00 GB- it just ignores the extra RAM. It's just like
running 1 MB RAM on an 8086- the processor could only see 1 MB address
space but everything from 640 K on up was address space. A 64-bit OS has
a much larger address space and thus you can address all 4 GB of RAM and
then some and not overlap your I/O address space. The I/O address space
is still there, it's just typically located at 32 PB (52 bits) on x86_64
systems and it doesn't even come close to overlapping the RAM.

Note that this I/O address space starting and ending location (but not
the size) is sometimes adjustable. Some motherboards by default have the
BIOS map the I/O address range from ~3.3 to 4.0 GB. This will result in
you "missing" about 700 MB of RAM if you have 4 or more GB installed and
are running a 64-bit OS. The fix for this is to tell the BIOS to either
not map the I/O address space itself and let the OS handle it or to
force the BIOS to map it to the top of the x86_64 address space by
enabling the so-called "32 bit memory hole fix" BIOS option.

This paper (http://techfiles.de/dmelanchthon/files/memory_hole.pdf ) has
a further explanation of the issue.

--Jack