Adam Skutt wrote:
Helge Hafting wrote:The limit is 4GB.No, wrong. The limit is 64 GiB physical RAM, period. PAE has been part of the ISA for pratically forever now, so it's silly to say it's anything else.
Well, correct.
However, practically, Linux can only use 16 GiB physical RAM without special patches, because of how the virtual memory is split by default (1GiB/3GiB). Windows is subject to the same limitation. Fully getting around this requires a 4G/4G patch, which is a terrible performance penalty because it requires a full TLB flush on every context switch. > (Well,you can theoretically address more, but you definitely don't wantto do the work necessary to do that.No, you cannot. One process cannot address more than 4 GiB virtualmemory at a time, period.
You can address more than 4GiB by using the always-unpopular "segment" registers found on intel processors. That means 48-bitpointers, which certainly can address more than 4G.
And yes, I know that the segmentation mechanism creates a 32-bit address from the 48-bit pointer, but that can be worked around. Simply have all but one segment "not present" and rely on the os to trap access and remap the page tables whenever the code switch segments. It is ugly and bad for performance, which is why I said "you don't want to do it." But doable - certainly. Helge Hafting