Per Jessen wrote:
James Knott wrote:
We're not talking about virtual memory here, which is an entirely different thing. Virtual memory is the process for making disk space appear as actual memory.
But we are talking about an application accessing memory, which on Linux is done exclusively through the virtual memory manager. That the VMM will use the PAE for addressing up to 64Gb of physical memory does not concern the application.
How is a 32 bit app supposed to even know about the memory beyond 4 GB, if it doesn't use PAE or equivalent? Like the memory mapping systems of years past, PAE is used to allow the use of a greater address range than the CPU is normally capable of. You might want to read up on the LIM boards used in the old XT systems. http://www.smartcomputing.com/editorial/dictionary/detail.asp?guida=&searchtype=1&DicID=8800&RefType=Dictionary
On 32 bit computes, a process can normally access only a 4 GB range. PAE allows access to more than that range, [snip] In order to use that greater range, an app has to use the PAE API to instruct the OS to make that memory beyond 4 GB available. If the app doesn't use PAE, it can't go beyond the basis 4 GB.
OK - do you know how this is done on Linux? I'm really curious as I've always considered this kernel-only stuff. I have no problem with the concept of mapping physical memory (normally not used by the kernel) into my own address-space, I just did not think Linux provided that option.
Sorry, I don't. That's a bit out of my area of expertise.
My understanding of Linux' use of PAE is that enabling CONFIG_HIGHMEM64 essentially makes the kernel switch to a three-level instead of a two-level address lookup.
/Per Jessen, Zürich
-- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com