Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

This question already has an answer here:

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.

share|improve this question

marked as duplicate by Tog, BloodPhilia, tapped-out, Nifle, BBlake May 21 at 19:58

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
There's no way to do this without modifying the kernel to support PAE, I believe. That's not for the faint of heart, although I think there are utilities that do this. –  Shinrai Jun 2 '11 at 18:51
    
You don't want to buy an Windows XP x64 or Windows 7 x64 license? –  pcunite Jun 2 '11 at 18:51
    
XP x64 is a nightmare - stay away. –  Shinrai Jun 2 '11 at 18:56
    
@Shinrai - there were two releases of XPx64. The first was a nightmare and it died a quiet death. I don't have direct experience with the latter, but I haven't heard the same uproar. –  Joel Coehoorn Jun 2 '11 at 19:05
1  
@user2284570 - That said, that's a very clever suggestion. I'm just nervous that there are likely to be compatibility issues (plus XP is gradually getting less important anyway - I still use it, but only as a second operating system for some old software). –  Steve314 Apr 5 at 6:13
show 10 more comments

7 Answers

up vote 2 down vote accepted

If you want to just set up a RAMDisk, as your edit indicates, I believe the application of the same name will perform as you want it.

RamDisk Plus 11 has a most unique feature. Our patent pending technology can access memory beyond the limitation imposed by a Windows 32-bit operating system! In other words, RamDisk Plus 11 can use "unmanaged" Windows' memory e.g. above 4GB. It can also use the stubbornly inaccessable memory between 3.2GB and 4GB.

See the product's help file for detailed explanation of what "unmanaged" memory is and how to access and use it with RamDisk Plus 11.

share|improve this answer
    
+1 and accepted - this is very interesting. Price seems high for a RAMDisk (only the "Plus" version supports memory above 4GB), but that doesn't mean "overpriced" given that rather neat trick. I don't know that I will actually buy this, but it's an interesting product and probably the best possible answer to my question. –  Steve314 Jun 2 '11 at 21:45
    
I'd just point out that I haven't tested it personally. –  Shinrai Jun 2 '11 at 22:33
    
@Steve314 - Out of curiosity, did you ever try this out? Just curious if it functions as advertised. –  Shinrai Jul 8 '11 at 18:07
    
not yet. I originally asked more from curiosity than from it being a priority. I have Win7 now, but with enough old-but-expensive software compatibility issues (Adobe Creative Suite CS2, for instance) that I'll be using XP for a while yet. For the moment (until I upgrade above 4GB) it's not that much unused memory anyway. Besides, depending on driver compatibility issues, I may just use a virtual machine. –  Steve314 Jul 8 '11 at 20:37
add comment

The 2GB/3GB limited you mentioned earlier is per process. You can have a lot more RAM in Windows XP, but only so much is available to each process. The actual system-wide limit in XP is 4GB, not 3.25GB. You can easily exceed 3.25GB RAM in 32bit XP by simply swapping in a video card with less RAM (you're probably running a 768MB card right now). Put an old 64Mb pci video card in and you'll likely find you get much closer to your 4GB maximum.

Exceeding the 4GB cap is harder. It requires playing addressing tricks of the sort that used to be required in the days of 16bit systems. I have heard tales that it's possible to break this barrier in 32bit XP, but it requires much more than a simple registry edit. IIRC, the limit is compiled into the operating system directly. To get around it, you have to find a specific .dll file from a 32bit Server 2003 machine and use it to replace the equivalent file on your Windows XP machine. For this to work, the file has to be modified so that XP won't reject it and you have to use volume shadow copy to get it to replace the existing file. I don't remember and can't find the link now for which file you need or how to modify it. After this is accomplished, you should be able to make the same settings to 32bit XP that you can to Server 2003 to allow the higher memory cap. Of course, such a change is highly unsupported and violates your license agreement.

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.

share|improve this answer
    
I have a 512MB graphics card - that's 512MB of video RAM, completely separate from the system RAM. Linux quite happily uses the full currently installed 4GB system RAM, Windows XP only uses 3.25GB. "Playing tricks" is basically what I'm asking for, pre-packaged in a free or reasonably priced product - but it must be legal (no license violations, no stealing components from Windows Server). I know there's not a lot of point while I only have 4GB, but I'm likely to upgrade to 8GB soon, if only to get the dual-channel speed boost. –  Steve314 Jun 2 '11 at 19:13
2  
@Steve - it's not possible to do legally. The only way to do this is to replace a core system file, and that's a license violation. –  Joel Coehoorn Jun 2 '11 at 19:14
1  
Not to mention the trouble of getting drivers that won't freak out on you. –  Shinrai Jun 2 '11 at 19:27
1  
XP used to support more than 4GB using PAE but they stopped because of 3rd party driver issues. See post by P.Brian.Mackey. The physical address pointers within the kernel are actually limited to 32 bits which prevents more than 4GB of physical address space from being used across the entire system. –  Chris Smith Jun 2 '11 at 19:42
2  
@Steve314 - It's pretty simple; the only way to do this in Windows XP is to edit the kernel. That's against the EULA. –  Shinrai Jun 2 '11 at 20:41
show 7 more comments

While 3.25 is not an official limit, 4GB is. That top 1GB or so can go to video memory and drivers. So going above 3.25 is possible. Above 4 is not possible on Windows XP by design. Many PAE driver issues were discovered that led up to this decision. The whole memory issue is discussed in depth on Microsoft.com.

Basically

The maximum amount of memory that can be supported on Windows XP Professional and Windows Server 2003 is also 4 GB. However, Windows Server 2003, Enterprise Edition supports 32 GB of physical RAM and Windows Server 2003, Datacenter Edition supports 64 GB of physical RAM using the PAE feature.

The virtual address space of processes and applications is still limited to 2 GB unless the /3GB switch is used in the Boot.ini file. When the physical RAM in the system exceeds 16 GB and the /3GB switch is used, the operating system will ignore the additional RAM until the /3GB switch is removed. This is because of the increased size of the kernel required to support more Page Table Entries. The assumption is made that the administrator would rather not lose the /3GB functionality silently and automatically; therefore, this requires the administrator to explicitly change this setting.

Also note that using non-certified drivers on Windows servers can result in problems related to PAE. Obviously, so will hacking past Microsoft defined limitations.

share|improve this answer
add comment

I'm running XP Pro SP3 on a 2.6ghz Core Duo machine with 4GB RAM.

I'm using that extra memory not available to XP for a ramdisk. I use a product called VSuite Ramdisk, from an outfit called Romex Software. VSuite is available in several different versions. The Free version does all I require. VSuite Ramdisk is here: http://www.romexsoftware.com/en-us/vsuite-ramdisk/index.html

When it's active, XP sees 763MB of RAM beyond the 3.3GB or so XP can access directly as a compressed NTFS volume identified as drive Z:

I'm testing beta versions of Mozilla Firefox, SeaMonkey, and Thunderbird, and I run those from the ramdisk. The stuff run from the ramdisk is stored as zip archives on the hard drive. I wrote batch files to unzip them to the ramdisk, and to update the zip files on the hard drive after any changes have been applied, which happens daily for things like nightly builds. (It proved faster to unzip from and zip to archives than to simply copy the files from the HD to the ramdisk and vice versa.) I run XP Pro, which includes Group Policy Editor, and I used it to associate the batch files as logon and logoff scripts.

The ramdisk is populated automatically when I boot up and log on, and changes are stored back to the HD when I log off, shutdown, or restart. It works quite well, and when Firefox is run from a ramdrive, and its profile is also on a ramdrive, things are gratifyingly quick. On my machine, Firefox 5/6/7 invoke in about 4 seconds with 85 extensions loaded. (The more extensi0ns you have installed, the longer FF takes, as it must enumerate and instantiate each installed addon. With no extensions loaded, I'd expect startup times on the order of two seconds.)

I also have Firefox set to store its disk cache on the ramdisk, outside of the profile, and do this routinely for any version, whether run from the HD or the ramdisk. It's a quick speedup. I do something similar under Linux by telling Firefox to put cache in /dev/shm. This is POSIX shared memory, and exists in RAM or swap, but not in the file system.

>Dennis

share|improve this answer
add comment

See the link here it appears that the answer for windows 7 (if it is unlocked etc) is 64GB of RAM. I do not belive that this is the case for winXP.

share|improve this answer
add comment

I don't believe there is a way to address above 3.25GB in XP without doing something that would greatly reduce stability.

If you are using OpenSUSE as your main OS, why are you concerned about XP using above 3.25GB? If you are using windows applications, why not install VirtualBox and run XP on top of OpenSUSE and have your Windows programs available without rebooting. You could set your VM Memory to 1-3GB (depending on total system RAM) and then dedicate it to programs that are not available on the Linux side...

share|improve this answer
    
Some games don't run so well in virtual machines. I don't need more than 3.25GB in Windows XP, but I would like to use that extra memory for something practical if possible. –  Steve314 Jun 2 '11 at 19:17
    
@DustinG. : What about this? –  user2284570 Apr 4 at 19:12
add comment

The is nothing you can do to windows XP to use more than 3.845g of memory. The problem is not that its 32-bit OS, the problem lies within Win XP itself.

Windows 7 home can use up to 12g of ram and windows 7 ultimate can use up to 36g of memory.

Is there certain programs that your are using that require a 32-bit win xp OS? If not, have you considered upgrading to Win 7?

share|improve this answer
    
I already use a 64-bit O/S as my main O/S, as I pointed out in the question. I may buy Windows 7, or I may wait for Windows 8, but either is a low priority. Over time, I use Windows less and less, and that's only in very small part because Windows XP is obsolete. I don't really believe Linux is ready to be on every desktop (mainly because of driver hassles), but it works about as well for me as Windows 7 would, and I'm not even including cost. If I do buy a 64-bit Windows, it'll be for programming reasons - but a Mac may make more sense than Windows for phone apps, for example (iPhone). –  Steve314 Jun 2 '11 at 22:21
    
@Rob_IGS : What about this? You can obtain usbport.sys by downloading windows server 2003 service pack 2. Then extract SP2.cab which is in the cab format... –  user2284570 Apr 4 at 19:11
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.