On Thu, Apr 23, 2009 at 6:22 PM, Alex Hewitt <hewitt_t...@comcast.net> wrote:
> "Linux hostname.localdomain 2.6.27.5.117.fc10.i686.PAE #1 SMP Tue Nov 18
> 12:08:10 EST 2008 i686 athlon i386 GNU/Linux"

  The "i386" indicates the running kernel is for the i386
architecture.  In other words, 32-bit.  A kernel for x86-64 will
identify the architecture as "amd64" or "x86-64" or something like
that.  (In an interesting historical twist, AMD invented "Long Mode"
and Intel copied AMD.)

> When I issue the free command I see all 8 gb of RAM. Does that mean that
> the distro installed itself as a 64 bit version?

  Nope.  As Ted says, PAE means the processor can see more than 4 GiB
of RAM, even when in 32-bit protected mode.  Most processors made
since 1997 or so support PAE.  Many (but not all) motherboards do as
well.

  With PAE supported and enabled:

* The physical address bus has 36 lines.  These are the actual pins
coming out of the processor.
* The physical address word is 36 bits wide.
* The page table structures change to support the larger physical address word.
* A third level of page table indirection is added to support the
larger page tables.
* The processor can address up to 64 GiB of RAM or other hardware.
* The virtual address word (point size) is still 32-bit.
* Each process is still limited to a 4 GiB virtual address space.
* Each process is still limited to a 3 GiB user virtual address space
(kernel reserves 1 GiB).

  The common scenario where PAE is of benefit is a multiple-process
workload, where no single process needs more than 3 GiB of memory, but
the aggregate memory use of all processes is greater than 4 GiB.  The
kernel and MMU can map different RAM pages into each process's virtual
address space.

  It is possible for an OS to support bank switching, to enable a
single process to make use of more than 4 GiB of RAM.  At the
process's request, the kernel can change the memory mapping for the
process.  For example, say the process writes 1 GiB of data into
memory, and then tells the kernel to switch that with a new 1 GiB
block.  The kernel unmaps that 1 GiB of RAM, but leaves it allocated.
The drawback is the application has to do its own memory management.
I don't know if Linux implements this.  Microsoft does for Windows,
but they kind of had to, because they were so late to the 64-bit
party.

-- Ben
_______________________________________________
gnhlug-discuss mailing list
gnhlug-discuss@mail.gnhlug.org
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/

Reply via email to