OSX can Run 64Bit Processes on 32Bit Kernel! (and hardware?)




OSX is 32Bit an CAN address more than 4GB of RAM ! (this line is written on a Dual XEON with 12GB RAM)

OSX 32Bit more than 4GB of RAM 12 GB of RAM

All Versions of OSX have a 32Bit Kernel… even when you install on a 64Bit-Capable CPU.

OSX, Linux and Windows 32Bit can/could also allow more RAM but Win XP 32Bit was restricted by Microsoft to 4GB of RAM because of (Licensing?) and driver-stability problems.

But it is true that one process can not have more than 4GB of RAM on 32Bit systems.

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

To use PAE, operating system support is required. Intel versions of Mac OS X support PAE. The Linux kernel supports PAE as a build option and most major distributions provide a PAE kernel either as the default or as an option. FreeBSD and NetBSD also support PAE as a kernel build option.

Microsoft Windows implements PAE if booted with the appropriate option, but current 32-bit desktop editions enforce the physical address space within 4GB even in PAE mode. According to Geoff Chappell, Microsoft limits 32-bit versions of Windows to 4GB due to a licensing restriction, and Microsoft Technical Fellow Mark Russinovich says that some drivers were found to be unstable when encountering physical addresses above 4GB.

From here: http://www.tomshardware.com/forum/231766-45-windowsxp-recognizing

„Windows XP Professional 32-bit is limited to 4GB of address space. If you have 4GB of RAM installed, it will not show 4GB within Windows. What you’ll probably get is the size of your pagefile subtracted from the 4GB. (3.5GB)

Some of this address space is reserved for hardware and the OS… so you’ll never have access to the full 4GB anyway. If you want to access 4GB+ of RAM… your best solution is to pick up XP Pro 64-bit… but that will only work if your P4 CPU has EMT64.“

A more detailed answer can be found at: http://www.codinghorror.com/blog/2007/03/dude-wheres-my-4-gigabytes-of-ram.html

… what is true

I also mistakenly thought a 32bit operating system could only use 4GB, having only 32 address bits to work with. But as you can see from the tables above, 32bit Windows Server 2008 can use up to 64GB of physical memory. Turning on the PAE feature modifies the virtual address mapping used by the processor hardware. There is a good explanation on Wikipedia:

Very basically, each process is still limited to 4GB because of the 32bit addresses, but the OS can use a processor control register to map that 4GB space above the 4GB. So process „A“ might have it’s 4GB virtual address space start in physical ram at 8GB, process „B“ at 12GB, etc.

Many people will doubt this because of their personal experience with Microsoft 32bit desktop operating systems. Microsoft has specifically limited the desktops to 4GB for driver compatibility reasons.

In short XP 32-bit can’t see more then 4GB of ram total no matter what you do, and its clearly stated here by MS:http://www.microsoft.com/whdc/system/platform/server/PAE/PAEdrv.mspx

yes other 32-bit OS-es can use more then 4GB of ram but not XP 32-bit

Confusion about kernel memory limits and PAE?

There seems to be some confusion about memory limits for the kernel and each process on 32-bit systems. I have written several articles that explain all that (and PAE, by the way) in great detail: