32 bit Windows XP has two well-known memory limits. Each process is limited to 2GB of memory (or 3GB if you change a setting). The maximum memory that Windows XP will use in total is 3.25GB.
There is no fundamental 4GB limit for memory in 32 bit operating systems - Windows Server 2003 can use more than 4GB. The key limit that defines a 32-bit system is per-process (the virtual address space for one particular application). This is the reason for the 2GB/3GB per-process limit in Windows XP, which is also shared by Windows 2003 Server.
I dual-boot, with 64-bit OpenSUSE 11.3 Linux and Windows XP. Linux is becoming my main operating system more and more over time, but I have too many Windows XP apps that I use regularly to just discard them.
What I want to know, therefore, is whether there is any way to get memory above 3.25GB into practical use in 32 bit Windows XP. The kinds of possibilities I have in mind are...
- A way of making Windows XP behave more like Windows 2003 Server.
- A way of replacing the hard disk cache handling in Windows XP with an alternative that can use extra memory.
- A RAM disk that can use non-Windows memory.
Two possibilities that may be worth a mention, but which I will reject for the moment, are...
- Use Windows 2003 Server 32 bit - license issues.
- Use Reactos - still alpha, with significant issues, and I'm not sure if it can use more than 3.25GB memory anyway.
EDIT
In Joels answer, the final paragraph is...
If you have a lot of RAM (6Gb or more), I've also heard tales of people installing software that sets up a RAMDisk for the unused RAM and then placing the page file there.
If anyone knows where I can get suitable RAMDisk software, that is an answer I could accept. A normal RAMDisk isn't suitable because it will only use the memory that Windows manages, and therefore will more likely reduce the efficiency of the system and still leave the extra RAM unused.