Re: large memory support for x86

From: Richard B. Johnson (
Date: Thu Oct 12 2000 - 14:17:15 EST

On Thu, 12 Oct 2000, Timur Tabi wrote:

> ** Reply to message from Jeff Epler <> on Thu, 12 Oct 2000
> 13:08:19 -0500
> > What the support for >4G of memory on x86 is about, is the "PAE", Page Address
> > Extension, supported on P6 generation of machines, as well as on Athlons
> > (I think). With these, the kernel can use >4G of memory, but it still can't
> > present a >32bit address space to user processes. But you could have 8G
> > physical RAM and run 4 ~2G or 2 ~4G processes simultaneously in core.
> How about the kernel itself? How do I access the memory above 4GB inside a
> device driver?
> > There may or may not be some way to support an abomination like the old "far"
> > pointers in DOS (multiple 4G segments), but I don't think it has been written
> > yet.
> Yes, it's ugly, but it works and it's compatible. Well, compatible with 32-bit
> code, probably not compatible with Linux code overall.
> Of course, you could define a pointer to be a 48-bit value, but I doubt that
> would really work.

With ix86 processors in the kernel, you can create multiple segments
and multiple page-tables. If you have some 'hardware-specific' way
of mapping in real RAM that is not used by anybody else, you can have
your own private segment. Page registers can map in multiple sticks
of RAM into a single window. The page-fault handler can manipulate
the page registers for user-mode code. It's being done in PAE.

Dick Johnson

Penguin : Linux version 2.2.17 on an i686 machine (801.18 BogoMips).

"Memory is like gasoline. You use it up when you are running. Of
course you get it all back when you reboot..."; Actual explanation
obtained from the Micro$oft help desk.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Sun Oct 15 2000 - 21:00:23 EST