On Mon, 2006-05-15 at 15:53 -0400, Jerry Feldman wrote:
Thanks for the reference. I had been using Volume 1 or the programmer's manual since it deals with the actual instructions. I don't see anywhere in Vol. I where PAE is mentioned.
Volume I over-simplifies many details. It's not actually 64-bit. It's 48-bit, using PAE 52-bit paging. But those details aren't typically of any interest to users or application-level developers. But they are pertinent to how Linux x86-64 works, as well as system-level (including library) developers. Someone was getting confused why can't 64-bit programs use 32-bit libraries and vice-versa.
The processor vendor (AMD/Intel/...) should not really get into telling an OS how to interoperate the multiple memory models.
Correct. But it *IS* important that people know how it actually works.
Note that a process only sees virtual memory and the specific registers of its memory model. 32-bit programs effectively think they are on x86-32. Maintaining multiple libraries has been around the Unix world for a very long time where some vendors maintained 16-bit and 32-bit libraries.
Correct, that is how the problem is addressed. Now we've just added
The bottom line with the 64-bit X86 architecture is that a 64-bit operating system running in long mode can enable native 64-bit and 32-bit applications to operate.
Again, big-ass asterisk on the "64-bit." ;->
And for terminology purposes, the AMD64 implements 16 64-bit registers with 64-bit virtual addressing. the PAE-52 comes into play with physical addressing.
It's actually 52-bit. If you read the "fine print" in Volume 2, the "flat 64-bit" model isn't implemented yet. ;-> Again, if it was, then the x86-64 would be operating in a mode that is not compatible with the i486 TLB. Such a "flat 64-bit" kernel could _not_ execute 32-bit or PAE 36-bit programs, libraries, etc... -- Bryan J. Smith Professional, technical annoyance mailto:b.j.smith@ieee.org http://thebs413.blogspot.com ----------------------------------------------------------- Americans don't get upset because citizens in some foreign nations can burn the American flag -- Americans get upset because citizens in those same nations can't burn their own