3

Possible Duplicate:
Will Windows 7 32 bit edition support 8 GB RAM?

I have a brand new machine at work, i7 quad core with 8GB of ram. Mainly, I use it to develop JAVA applications using Eclipse.

I have to choose an operating system. Unfortunately, it has to be a flavor of Windows, and it has to be 32 bit in order to connect to my company's network.

I've been told that if I install Windows 7 32bit, that I will loose the use of some of the RAM and that instead of 8GB, I will effectively have about 4GB.

2 Questions: Is this true - will Windows 7, 32 bit OS give me less RAM to use?

Is there any flavor of 32 bit Windows that will let me have the use of 8GB of RAM.

If I had a choice I would probably take 8GB running Windows XP over 4GB running Windows 7.

4

7 Answers 7

6

There's a great table here on Wikipedia showing the maximum addressable physical memory for various versions of Windows.

First of all, a 32-bit OS using PAE can use more than 4GB of RAM. Second, yes, it appears true that no version of 32-bit Windows 7 has this feature enabled.

The good news is that there are 32-bit versions of MS Windows which support more than 4GB of RAM. The bad news is that they don't tend to be aimed at consumers, so I hope your company will buy them for you! They are:

  • Windows 2000 Advanced Server (8 GB) or Datacenter (32 GB)
  • Windows Server 2003 Enterprise Edition (16 GB), R2 Enterprise Edition (64 GB), R2 Datacenter (128 GB), or Datacenter Edition (16 GB)
  • Windows Server 2008 Enterprise, Datacenter (64 GB)
4

A 32-bit OS, using 32-bit pointers, can address 2^32 bytes of data, which is 4GB.

On top of that, in an x86 architecture, the first 1MB is spoken for by legacy hardware memory addressing. On top of THAT, your video card's memory requires address space in the same addressing scheme, so the more video card memory you want to be able to address, the less RAM you can access.

1
1

Addressable memory uses the byte range 0 .. 2^32, which evaluates to about 4GB. You cannot address more than this amount of memory.

1
1

32-bit operating systems cannot address more than 4GB of ram.

1

You can actually address more that 4GB of ram on x86 hardware using PAE. But you need a server OS to do it. http://support.microsoft.com/kb/283037 According to this article ( http://msdn.microsoft.com/en-us/library/aa366796(VS.85).aspx ), PAE is also supported on Windows 7, Vista and XP.

2
  • You mean "with a 32-bit OS", not "on x86 hardware", right?
    – CarlF
    Oct 1, 2010 at 18:56
  • 1
    PAE is a feature of the processor which must also be supported by the OS, so both is the correct answer. Oct 1, 2010 at 19:00
1

32-bits architecture allows 2^32 segments of memory for the operating system, and 2^32 memory per application.

As a memory segment is 4 KB, this makes for 4 GB per application, and for the system 4GB x 4KB = 16TB, which is not bad for 32-bits.

The decision to limit 32-bits to 4GB was a purely commercial decision by Microsoft, and any attempt to go beyond that is a license violation.

A proof-of-concept hack is fully described here: Licensed Memory in Windows Vista, but I do not advice anyone to actually try it. It also makes interesting reading, since it explains very well all the concepts involved.

Some more modern patches are to be found in Make Windows 7 and Vista 32-bit (x86) Support More Than 4GB Memory. However, besides their illegality, they do look quite dangerous.

In conclusion: The only legal solution for using 8GB is Windows 64-bits. If this is not a possibility, then 4GB is the limit (more like 3.5GB, as the video card will also eat up some RAM).

As a last remark: 3.5 GB is still a lot of memory, and should be enough for anything you do, except if you manipulate videos or presentations whose size is more than a gigabyte.

4
  • 640k should be enough for everyone :-D
    – Brad
    Oct 1, 2010 at 19:27
  • 3.5 GB isn't that much memory these days. I've got a single table in my RDBMS that's larger than that. Having 8 GB of RAM makes life as a developer much nicer. :-)
    – Ken
    Oct 19, 2010 at 0:51
  • @Ken: No need to read the entire database into memory, unless the DBMS is really slow. And it still takes quite some time to read 4GB from disk.
    – harrymc
    Oct 19, 2010 at 5:54
  • No, but if one table is 3.5GB (the whole db is in the 10GB range), then processing even part of it is a lot faster with 8GB than 3.5GB. I've got an OS and apps here, too. Plus, there are times when it needs to process the entire thing, e.g., restoring a backup to reproduce a bug -- with 8GB, that's 4.5GB less of the page cache it has to flush before I can get to work.
    – Ken
    Oct 25, 2010 at 19:20
0

I really want to say the idea that you a 64bit OS won't connect to your company's network is bogus.

However, in thinking about it, there are a few valid concerns:

  • They may have a 32bit-only print server
  • They may be talking about a VPN connection with a 32bit-only client

Otherwise, 64bit systems work just fine on standard tcp/ip networks, and will even talk to 32bit servers and run most 32bit software just fine.

I'm also a little disturbed that you claim to be a software developer and don't already understand most of the issues mentioned by others. This is important concept in software development right now, and it's not something the JavaVM protects you from.

Not the answer you're looking for? Browse other questions tagged .