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/