i386 vs amd64

Ilya Kazakevich kazakevichilya at gmail.com
Fri Nov 30 14:58:07 UTC 2012


> How does the system know what is OS and what is 32-bit apps?
>
"OS" works in kernel space while application is not.

PAE affects paging system allowing software to address 2^36 bytes of memory.
You can access it in kernel space, but user space applications are limited
to 2^32 bytes of virtual memory (even less than 2^32 because of mappings).

http://en.wikipedia.org/wiki/Physical_Address_Extension

If you are interested in memory management in IA-32 (and IA-32e) here are
good links:
1) official guide:
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
2) nice (human-readable) book:
http://mindshare.com/shop/?c=b&section=0A6B17101710



> Where would GCC fit in this regard, or Clang for that matter?
>
If you write app for user-space (not kernel module) you should not care
about PAE.
You simply compile it as you would do it for system with out of PAE.

Ilya.


More information about the freebsd-questions mailing list