Is there way to enable more than 4 GB RAM in 32-bit Windows OS?

22

10

I upgraded my PC to 4 GB RAM and I get only 3 GB. Windows 7 32-Bit consider that I've 4 GB RAM but didn't use more than 3 GB.

Someone told me that MS Windows 32-bit doesn't support RAM larger than 3 GB.

So please is there any way to make my OS "Windows 7 32-Bit" support more than 3 GB RAM ?

*`Note: I can't move to 64-bit because I've many program doesn't work with a 64-bit OS.

Edit::

I tried what Mr. Wonsungi advised me but whenever I check this option:

Enable support for 4 GB of RAM

I get the following error:

'Cannot access to the registry key HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-11d1-A9F0-00AA0060FA31}.'

There is no "CLSID" in my registry, I don't know why!.

Wahid Bitar

Posted 2009-11-08T10:14:33.470

Reputation: 1 735

23"many program doesn't work with 64-Bit OS" is not really a valid reason in the age of virtual computers. with VirtualBox (which happens to be free) you can run your 32-bit applications on a 32-bit windows virtual machine in seamless mode (integrated into the host OS) and hardly feel a difference (unless you need the full power of your graphics card available to these applications) – None – 2009-11-08T18:13:45.210

I agree with Molly. And for 16-bit programs, you can use an emulator like DOSBox. http://www.dosbox.com/

– Sasha Chedygov – 2009-11-08T18:56:14.607

1

If you own Windows 7 Professional, Enterprise or Ultimate, consider checking out Windows XP Mode: http://www.microsoft.com/windows/virtual-pc/

– alex – 2009-11-08T19:24:21.010

I'm using many 32-bit programs on Win7 64bit. They date from 1998 to 2001. Most require compatibility modes to work. Are you making an assumption it won't work, or someone told you it won't work? Have you actually tried? – kmarsh – 2009-11-09T15:00:22.273

ad Edit1: I understood that you didn't upgrade to 4 GB yet...so you don't know yet, if it works or not, right? To make sure it works, you need to upgrade b/c there's not only Win but also HW limitations. Do upgrade and then give us more - detailed - infos on your setup if it doesn't work. – Gerd Klima – 2009-11-10T06:53:26.760

Bounty removed and question locked. Please select an answer from the existing collection. Windows 32Bit cannot access 4GB, it is technically not possible. Therefore adding a bounty adds absolutely no value to this question. Enough explanation for why has been given already. – BinaryMisfit – 2009-11-25T08:22:20.917

@WahidBitar : What about this?

– user2284570 – 2014-04-04T19:31:54.453

Answers

11

You can use PAE, but it's not nearly as good as just going 64 bit. Check this MSDN Page.

Enabling PAE

Windows automatically enables PAE if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB. If the computer does not support hardware-enabled DEP or is not configured for hot-add memory devices in memory ranges beyond 4 GB, PAE must be explicitly enabled.

To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option:

bcdedit /set [{ID}] pae ForceEnable

IF DEP is enabled, PAE cannot be disabled. Use the following BCDEdit /set commands to disable both DEP and PAE:

bcdedit /set [{ID}] nx AlwaysOff
bcdedit /set [{ID}] pae ForceDisable

Windows Server 2003 and Windows XP: To enable PAE, use the /PAE switch in the boot.ini file. To disable PAE, use the /NOPAE switch. To disable DEP, use the /EXECUTE switch.

Dentrasi

Posted 2009-11-08T10:14:33.470

Reputation: 10 115

@Breakthrough : You are WRONG! at least for XP SP1... – user2284570 – 2014-07-11T22:39:55.087

@user2284570 it clearly says in my answer that what I wrote is specific to Windows 7, just like *the OS this question is about to begin with*... – Breakthrough – 2014-07-12T02:19:57.780

@Breakthrough : Sorry I was browsing duplicates of that question. – user2284570 – 2014-07-12T10:03:54.260

2The PAE switch still won't allow you to use the entire 4gb of RAM. See my response below for a solution which overcomes this issue. – Breakthrough – 2010-09-09T15:40:11.367

2

"Certain 32-bit versions of Windows Server running on x86-based systems can use PAE to access up to 64 GB or 128 GB of physical memory." This post ONLY applys to Windows Server - 32bit desktop versions of Windows will only address 4GB. It's a licensing issue not a hardware or software issue, running this command will not change that fact - http://msdn.microsoft.com/en-us/library/aa366778(v=vs.85).aspx .

– Natalie Adams – 2012-09-07T02:30:08.383

1I found this `To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option:

bcdedit /set [{ID}] pae ForceEnable` at the MSDN page that u provided. But i don't know how and where to write this command. Could u help me please ?. – Wahid Bitar – 2009-11-08T12:06:57.487

5If you don't know how to do it from that, I highly recommend not doing it at all, if something goes wrong you'll need that knowledge to rescue your system. – Phoshi – 2009-11-08T13:23:20.150

4the PAE switch is not some hidden miracle and certainly not the holy grail for 4 GB 32-bit systems (or else everybody would be using it, right?). it may cause system instability. – None – 2009-11-08T13:27:01.703

13

Read this: Dude, Where's My 4 Gigabytes of RAM?

For general info, there is also this overview on memory limits per Windows edition:

Memory Limits for Windows Releases

Gerd Klima

Posted 2009-11-08T10:14:33.470

Reputation: 912

Very good comment, ChrisInEdmonton. I would just like to add that the same PAE limitations exist in all Microsoft Windows operating systems (individual processes are limited to 2 ^ 32 bytes of memory per process, or 4 GB). – Breakthrough – 2011-01-04T13:02:05.613

They say it is an X86 problem. Can you explain me why 32 bit OSX has no problem adressing 16 Gb in a MacPro then? – bert – 2009-11-08T17:44:19.777

By the way, in 8 and 16 bit land, it was very common to have RAM amounts beyond 2^bit bytes. – bert – 2009-11-08T17:45:34.500

4

The wikipedia entry for PAE (Physical Adress Extension) states: Mac OS X

Mac OS X for Intel Macs supports PAE and the NX bit on all CPUs supported by Apple (from 10.4.4—the first Intel release—onwards). Mac Pro and Xserve systems can currently support 32 GiB of RAM, even though the Mac OS X 10.5 Leopard kernel remains 32-bit. The Mac OS X 10.6 Snow Leopard kernel can optionally run in 64-bit on certain systems

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

– Gerd Klima – 2009-11-08T19:22:35.443

1OSX 32 and Linux Kernel 2.6 32 are essentially 32/64 byte operating systems, using primarily 32 bit instructions but using some 64 bit memory addressing, particularly for the file system and O/S memory allocation. Programs running on them are still subject to some 32 bit limitations. – kmarsh – 2009-11-09T15:03:32.157

5This is incorrect. 32-bit versions of the Linux Kernel are not some weird 32/64 byte [sic] operating system. They are 32-bit operating systems that, if the right options are selected, can make use of PAE to address 2 ^ 36 bytes of memory, though less than 2 ^ 32 per process. If the kernel is 64-bit, it uses 64-bit addressing. – ChrisInEdmonton – 2009-12-01T14:06:27.280

11

Recently, a group of programmers have released a kernel patch for Windows 7 to allow the usage of more than 4 GB of RAM under Windows 7. Click here to download the patch, or view more information about it. The patch basically modifies the Windows 7 kernel to be more like the Windows Server 2003 Datacenter Edition, which is compatible with up to 8 GB of RAM under 32-bit mode.

The patch allows you to extend the PAE well into 8 GB of RAM under Windows 7 32-bit. For more information about why Microsoft implemented this technical limitation, see this article.

Note that individual processes will still be limited to 4 GB even if the system can access more... Although if you had 8 GB of RAM, then at least you'd still have another 4 GB for other processes ;)

Breakthrough

Posted 2009-11-08T10:14:33.470

Reputation: 32 927

1I have been using this patch for months now, and have experienced no problems. Some programs (esp. Photoshop) have no trouble when using a lot of RAM. :) – Breakthrough – 2011-01-04T12:58:59.890

1Remember that modyfying your system files violates your product licence and voids your warranty. – kinokijuf – 2012-02-25T12:27:24.007

I want to chime in and say that the hack will probably work for awhile. But updating your system would probably be a game of Russian roulette - Microsoft probably isn't going to purposely plug the kernel hole but an update could leave your system borked. – Natalie Adams – 2012-09-07T02:32:30.190

@NathanAdams this isn't a "hole", it's a result of licensed memory (see the article I linked to above). This patch also copies the existing kernel before patching it, so if you're worried, you can simply boot up into Windows without the patch to run Windows Update. – Breakthrough – 2012-09-07T11:05:39.120

8

As far as I know, 32-bits Window can use memory up to 64 GB, and can be "hacked" to do so.
This hack is fully described here: Licensed Memory in Windows Vista.
(Note: I do not advice anyone to actually try it.)
It also makes interesting reading, since it explains very well all the concepts involved.
I reproduce below his proof-of-concept image.

That 32-bit editions of Windows Vista are limited to 4GB is not because of any physical or technical constraint on 32-bit operating systems. The 32-bit editions of Windows Vista all contain code for using physical memory above 4GB. Microsoft just doesn’t license you to use that code.

image

harrymc

Posted 2009-11-08T10:14:33.470

Reputation: 306 093

EDIT : See Windows 7 32-bit with full 4 GB or 8 GB RAM support.

– harrymc – 2011-09-03T10:20:33.303

I'm pretty sure that violates the EULA. So, I would NOT recommend installing that patch. – Natalie Adams – 2011-09-13T04:32:31.873

@Nathan Adams: Nor did I recommend it. – harrymc – 2011-09-13T04:48:11.600

Please see my comment above, Vista and above will report the TOTAL PHYSICAL memory in that window. That is NOT the total amount the OS will use. For one I am sure that hack is out dated and probably won't work in Vista SP2. Furthermore, 64bit processors are being the norm, so there is no reason not to use a 64bit OS. – Natalie Adams – 2009-11-11T01:50:50.943

@Nathan: The article I cited makes for a very compelling reading. From what I know about Intel architecture, 32-bits or not, the only real limit should be 4GB per-application. – harrymc – 2009-11-11T08:05:38.270

7

The answer to this question is really "depends on who you ask".

Some say to use PAE, which will allow you to address higher than 4GB BUT Microsoft will NOT let you on many of 32bit versions of Windows.

http://msdn.microsoft.com/en-gb/library/aa366778(VS.85).aspx
The following table specifies the limits on physical memory for Windows 7.

Physical 4GB limit, period. It's a licensing issue. There might even be a "hack" floating around to let you use more than 4GB, but I don't remember.

Please do note: Vista and Windows 7 on 32bit will report the TOTAL PHYSICAL RAM you have in System, but it will ONLY use 4GB of it. So, shoving 16GB in a computer running 32bit Windows will only use 4GB ACCORDING TO MICROSOFT even though "System" control panel will show 16GB. Windows 7, Vista, and XP 32bit will only use 4GB of RAM, its a fact. However, certain versions of Windows Server WILL use more than 4GB with PAE enabled.

For those going "your wrong PAE will allow you to to use more than 4GB", yes I agree, however, Microsoft says that you can only use 4GB on most of the 32bit desktop OS so if you feel that page is in error send them an email or call them to complain.

Natalie Adams

Posted 2009-11-08T10:14:33.470

Reputation: 2 071

4GB is an artificial limit. Intel hardware can handle much more. Even a 32-bits operating system, allocating memory in pages of 4K, and assuming that it stores the page number in a 32-bit integer, can easily handle 4GB x 4K = 16TB. Per-application, the byte addressing limit for a 32-bits register is 4GB. So if MS says 4GB for the OS, this is simply a marketing hype, backed by a simple limitation that the article cited in my answer has localized to a very few hardware instructions in the kernel. – harrymc – 2009-11-11T09:32:59.343

2Reread my post again please, Microsoft has this limit due to licensing. I never said you can't use more than 4GBs in a 32bit OS, you simply can't in the desktop versions of Windows, period. This is the facts. To "fix" it isn't a simple registry fix either. You need a disassembler, a hex editor, knowledge of Assembly and some luck. – Natalie Adams – 2009-11-11T19:41:20.330

5

Someone told me that MS Windows 7 32-bit doesn't support RAM larger than 3 GB.

Someone is wrong. 32-bit Windows desktop operating systems support up to 4 GB of physical memory. However, due to the hardware limitations of the x86 architecture, only 3.5~ GB are available for the OS if 4 GB are installed.

Molly7244

Posted 2009-11-08T10:14:33.470

Reputation:

"To be perfectly clear, this isn't a Windows problem-- it's an x86 hardware problem. The memory hole is quite literally invisible to the CPU, no matter what 32-bit operating system you choose. The following diagram from Intel illustrates just where the memory hole is:"...http://www.asisupport.com/ts_4GB_memory_info.htm

– Moab – 2010-10-22T17:58:17.903

To all of you, this is NOT a hardware issue (is it really that hard to implement a software address extension?). See my answer to this question, which PROVES that this is a software limitation, as it includes a WORKAROUND. – Breakthrough – 2011-01-04T12:59:43.383

2

This is incorrect. 32-bit Linux, for example, has no problem supporting 4 GB of RAM. Or, say, 64 GB of RAM, though with per-process limits of course. Heck, some versions of 32-bit Windows support more than 4 GB of RAM. See http://en.wikipedia.org/wiki/Physical_Address_Extension#Microsoft_Windows

– ChrisInEdmonton – 2009-11-08T13:47:11.063

2what is incorrect??? 32-bit windows supports up to 4 GB physical memory, end of story (unless limited by other factors, i.e. the 'starter' editions), this table you are referring to INCLUDES 64-bit versions of windows such as the early windows 2000 advanced server and data center. get your facts straight, quote: "The table includes some 64-bit versions" – None – 2009-11-08T16:13:09.367

1"Microsoft Windows 2000 Advanced Server Limited Edition and Windows 2000 Datacenter Server Limited Edition were designed for 64-bit Intel Itanium microprocessors." – None – 2009-11-08T16:20:30.383

OSX can run with 16Gb on a 32bit version of the OS with no problems. It only limits the amount of RAM per application to 4Gb. – bert – 2009-11-08T17:42:22.590

1Windows 2000 Advanced Server uses PAE on 32-bit systems to access up to 8 GB of RAM. There's also an IA-64 version, but that's not the one I'm talking about. – ChrisInEdmonton – 2009-11-08T18:45:52.773

1well, i don't care much for this argumentation or comparisons with exotic/outdated server or *nix operating systems , the OP claimed that windows 7 32-bit doesn't support more than 3 GB RAM which is WRONG, it supports up to 4GB, get it? but to please you i will edit my answer accordingly. – None – 2009-11-08T18:57:14.637

I don't know why this was downvoted, the information is correct. +1 – Sasha Chedygov – 2009-11-08T18:59:40.827

The information is correct now, but was not when it was originally posted. – ChrisInEdmonton – 2009-11-09T18:09:36.780

1Well, mostly correct. 32-bit desktop systems could use more than 3.5 GB of memory if 4 GB were installed, Microsoft just chooses no longer to make use of PAE. It's a design decision by Microsoft, one based on legitimate issues, rather than a hardware limitation of the x86 architecture. – ChrisInEdmonton – 2009-11-09T20:51:48.683

"To be perfectly clear, this isn't a Windows problem - it's an x86 hardware problem." http://www.codinghorror.com/blog/archives/000811.html

– None – 2009-11-09T21:32:31.847

Molly, you are taking that quote out of context. That's talking about the memory hole. It is not talking about a 32-bit OS using more than 4 GB of physical RAM, which is MANIFESTLY POSSIBLE because some 32-bit operating systems, like Linux, CAN AND DO use more than 4 GB in 32-bit mode, with PAE-enabled kernels. – ChrisInEdmonton – 2009-11-10T14:17:14.013

is that so? well, then i suggest you write an answer of your own and explain to the OP how he "CAN AND DO use more than 4 GB in 32-bit mode, with PAE-enabled" in "MS Windows 7" ... which i think (but feel free to correct me) is the subject of this thread. if you come up with a feasible solution, i'll gladly upvote your answer. :) – None – 2009-11-10T14:45:26.980

1Nope, no can do in 32-bit Windows 7, as you correctly point out. Windows 7 does not make use of PAE. My point is that it isn't a limit with the 32-bit x86 architecture (at least, as of 1994), because other operating systems do just fine. It is indeed a limit with the way Microsoft designed their Windows desktop operating systems, though. It's a pedantic point, granted, and it's not like PAE is a magic bullet even for those operating systems that support it. These days, it's hard to imagine not just going 64-bit. I long ago withdrew my negative vote on your answer, btw. – ChrisInEdmonton – 2009-11-10T16:04:37.440

as i commented on another answer here, PAE is certainly not the holy grail and was never meant to be used on workstations, for a variety of good reasons. :) – None – 2009-11-11T02:34:32.183

3

Just curious, can you give some examples of programs that don't work on 64-bit windows? 64-bit Windows since Windows XP has excellent backwards compatibility with 32-bit programs. Check the 5th question on this page: http://windows.microsoft.com/en-US/windows-vista/32-bit-and-64-bit-Windows-frequently-asked-questions. Take Microsoft Office for example, it's all 32-bit, but runs great on 64-bit Windows.

The only time you wouldn't want to move to 64-bit is if you have hardware that doesn't have 64-bit drivers. Hardware drivers must match the OS platform.

churnd

Posted 2009-11-08T10:14:33.470

Reputation: 4 228

The Juniper VPN software my employer uses does not work on a 64 bit OS. – Jeff Shattock – 2009-11-08T20:59:49.680

2VPN software falls more under the "driver" category. – churnd – 2009-11-09T00:33:51.520

I've many "Arabic" programs doesn't work with 64-Bit. Also i have some "old" hardware doesn't have 64-Bit Drivers. – Wahid Bitar – 2009-11-09T11:33:13.453

1

This patch works or so it seems.

Before the patch I could use 3gb out of 4gb, and now all 4gb is accessible.

Here's the patch:

http://www.pallab.net/2009/12/30/enable-more-than-4gb-memory-in-windows-vista-7/

Here's the screenshot (Windows 7 Ultimate Hungarian):

enter image description here

cszolee

Posted 2009-11-08T10:14:33.470

Reputation: 27

-4

The link below sets out a manner to

  • take a copy of the kernel
  • hack it to use 4GB and above of RAM (edit the hex strings 7C 11 8B 45 FC 85 C0 74 0A and 7C 10 8B 45 FC 85 C0 74 09 to 7C 10 B8 00 00 02 00 90 90 and 7C 10 B8 00 00 02 00 90 90 respectively)
  • sign it with makecert -r -ss my -n "CN=My Cert" and signtool sign -s my -n "My Cert" ntkl64g.exe
  • and add it as a secondary boot option with bcdedit

in a very clear and straight forward way

http://www.evga.com/forums/tm.aspx?m=960087&mpage=1&print=true

Which worked for me.

Jamie Kitson

Posted 2009-11-08T10:14:33.470

Reputation: 532