What happens when you install > 4GB of RAM in a computer with a 32-Bit OS?

10

So I'm a programmer and I'm not a complete idiot so I know exactly why you can't access memory where you can't have pointers. But I've never tried this and I don't think I ever will because it seems like a big waste of money/time.

I'm just wondering if there are any tools that let me access my himem (You'd think we'd have gotten around this issue by now).

Peter Turner

Posted 2009-07-27T13:17:36.510

Reputation: 1 341

Check out this alternative way of phrasing the same question: http://superuser.com/questions/7964/where-did-the-other-8-gb-of-ram-go

– therefromhere – 2009-07-27T13:22:54.553

Thanks, here's a good answer too, I may just have to close this question. http://serverfault.com/questions/3342/how-does-a-32-bit-machine-support-more-than-4gb-of-ram

– Peter Turner – 2009-07-27T13:26:57.637

Answers

20

If you have a a processor with the Physical Address Extension (which you probably do) and the correct OS (e.g. not a consumer version of Windows, it uses PAE but is capped at 4GB) then the memory can be mapped and used normally. Otherwise the memory will simply not be addressed, the OS will tell that you that you have however many chips of however big they are but they just won't be added to the amount of memory you can access.

Mike McQuaid

Posted 2009-07-27T13:17:36.510

Reputation: 3 639

3Why don't normal versions of Windows support PAE? Just another reason to use Linux... – Zifre – 2009-07-27T14:09:16.070

1Because 64bit / server versions cost more. – Martin Beckett – 2009-07-27T14:14:40.460

2Even consumer versions of Windows support PAE - they're capped to 4 GB though (for compatibility and marketing reasons). (PAE is still used for the "Data Execution Prevention" feature.) – user1686 – 2009-07-27T14:56:52.060

3@Zifre, many consumer-targeted drivers can't cope with PAE and >4G of RAM on windows. As such, enabling PAE often results in mysterious crashes, and it's thus only used for the server editions, where presumably you'll install higher quality drivers designed for large amounts of memory. – bdonlan – 2009-07-27T17:28:02.197

bdonlan: PAE is enabled in consumer versions too, they just have the artificial 4 GB limit because of that. – user1686 – 2009-07-28T06:59:55.703

1

Things would work nicely as 4GB is the limit for a 32bit processor. Here's as article that goes more in depth and actually shows that you can install and use much more than 4GB on a 32bit OS.

mandroid

Posted 2009-07-27T13:17:36.510

Reputation: 587

Except that not all real address space is necessarily dedicated to physical memory. – Jason S – 2009-07-27T13:22:01.043

Sorry I meant more than 4GB, just something in the more than 2^32 range. – Peter Turner – 2009-07-27T13:24:19.107

1

I suppose technically if the operating-system were well-designed, you could use more than 4GB. There's no reason I can think of that an OS with virtual memory capabilities could not use 32-bit virtual addresses with 64-bit real addresses.

Jason S

Posted 2009-07-27T13:17:36.510

Reputation: 5 983

1

Depends what 32bit OS you mean!

Of course on modern operating systems, you can pretty much plug in as much as your motherboard can take without issue (though you may not be able to use it all), but that wasn't always the case, at least with Windows:

A bug in Windows 95, 98, SE, and ME crops up if you have more than 512MB of memory installed.

http://answers.google.com/answers/threadview/id/333688.html

Factor Mystic

Posted 2009-07-27T13:17:36.510

Reputation: 11 212

0

The first thing to understand is that modern computer systems use virtual memory. You can have 32-bit virtual addresses for applications while having larger than 32-bit physical addresses.

The second thing to understand is that physical address space is used for various things, most significantly main ram and memory mapped perhipherals. Graphics cards in particular often have large memory mapped regions. The result is if you only have 4GB of usable physical address space you can end up with significantly less than 4GB of usable ram. Approximately 3.5 GB usable is typical but I have seen systems where it was as low as 2.5 GB.

On a PC to support more than 4GB of physical address space a mechanism called PAE is used. For this to work several things are needed.

  1. The CPU must support it.
  2. The chipset must support it.
  3. The BIOS must support it.
  4. The OS must support it.

CPUs have supported PAE for ages, that is not an issue.

Many older chipsets were limited to 4GB of physical address space. IIRC Intel Laptop chipsets got support for more than 4GB of address space with the "Santa Rosa" generation in 2007. I'm not sure about desktop chipsets but I expect it was around the same time. Workstation/server chipsets obviously got support much earlier.

Afaict BIOSes mostly support it if the chip set does. Wouldn't surprise me if there are some exceptions though.

OS is a thorny one. Linux and windows have both supported PAE for ages. Unfortunately since windows XP service pack 2 MS has artificially limited the physical address space to 4GB. They claim they did this because of buggy drivers, cynics would suspect they did it to force people to buy server editions.

In windows XP this is baked in to the kernel and basically can't be undone. However on later versions it can be bypassed with some minor hacks to the kernel. See https://wj32.org/wp/ for details.

plugwash

Posted 2009-07-27T13:17:36.510

Reputation: 4 587