# What do I need to know using 64 bit win 7?

**URL:** <https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007>\
**Category:** Factual Questions\
**Created:** [September 16, 2013, 9:31pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007 "2013-09-16T21:31:14Z")\
**Posts on this page:** 9\
**Page:** 2

<div class="post-metadata">

**Author:** ![notsoheavyd3](https://avatars.discourse-cdn.com/v4/letter/n/85e7bf/32.png) [@notsoheavyd3](https://boards.straightdope.com/u/notsoheavyd3)\
**Post date:** [September 17, 2013, 12:11am UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/21 "2013-09-17T00:11:18Z")

</div>

> [@Blakeyrat](#):
>
> The only catch is you can no longer run 16-bit software. So wave goodbye to Microsoft Bob. 🙂

I bet a lot of that 16-bit stuff will run in XP Mode but then again you can’t get that win Win7 Home. (I think it’s Professional or better. I know it’s a free download for Win7 Ultimate.)

---

<div class="post-metadata">

**Author:** ![Melbourne](https://avatars.discourse-cdn.com/v4/letter/m/b5e925/32.png) [@Melbourne](https://boards.straightdope.com/u/Melbourne)\
**Post date:** [September 17, 2013, 2:07am UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/22 "2013-09-17T02:07:15Z")

</div>

> [@Reply](#):
>
> If you have more than 4GB of RAM, you’ll need 64-bit software to utilize all of it.

Technically, if you have more than 46B of RAM, 32bit software will only be able to access it in 2GB chunks.

32bit Windows would allocate a very large number of 2GB chunks of virtual memory. Most versions of 32bit Windows would only recognise 4GB of physical memory. Out of that, most versions of 32bit Windows would only allocate 2 or 3 GB of physical memory to the application pool.

But there are plenty of 32bit applications that are able to use 32-64GB of memory, and when 64bit windows allocates those applications physical memory instead of paging virtual memory to disk, they run much faster.

---

<div class="post-metadata">

**Author:** ![Reply](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/reply/32/15952_2.png) [@Reply](https://boards.straightdope.com/u/Reply)\
**Post date:** [September 17, 2013, 2:39am UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/23 "2013-09-17T02:39:01Z")

</div>

> [@Melbourne](#):
>
> Technically, if you have more than 46B of RAM, 32bit software will only be able to access it in 2GB chunks.
> 
> 32bit Windows would allocate a very large number of 2GB chunks of virtual memory. Most versions of 32bit Windows would only recognise 4GB of physical memory. Out of that, most versions of 32bit Windows would only allocate 2 or 3 GB of physical memory to the application pool.
> 
> But there are plenty of 32bit applications that are able to use 32-64GB of memory, and when 64bit windows allocates those applications physical memory instead of paging virtual memory to disk, they run much faster.

I’m confused. Are you saying that:

1. In Win32, even if you had 4 GB of memory, the system reserves some of it and only allows 2-3 GB for applications?

2. (Unrelated to #1) In Win64, 32-bit applications can access all the available memory, but only in 2 GB chunks, and only if the page file is turned off, and only if they’re written to support it? If that’s correct, how often does that actually happen in real life?

---

<div class="post-metadata">

**Author:** ![Quartz](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/quartz/32/267_2.png) [@Quartz](https://boards.straightdope.com/u/Quartz)\
**Post date:** [September 17, 2013, 7:51am UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/24 "2013-09-17T07:51:28Z")

</div>

> [@Reply](#):
>
> I’m confused. Are you saying that:
> 
> 1. In Win32, even if you had 4 GB of memory, the system reserves some of it and only allows 2-3 GB for applications?

Between 2.75 and 3.5 GB, actually. It depends upon what’s in your PC. See [The 3 GB Barrier](http://en.wikipedia.org/wiki/3_GB_barrier) on Wiki.

> [@Wiki](#):
>
> The final piece of the 3 GB barrier puzzle[according to whom?] is a limit deliberately coded by Microsoft into the “non-server”, or “client”, x86 editions of Microsoft Windows: Windows XP, Windows Vista, Windows 7, and Windows 8. The 32-bit (x86) versions of these are able to operate x86 processors in PAE mode, and do so by default as long as the CPU present supports the NX bit.[9] Nevertheless, these operating systems do not permit addressing of physical memory above the 4 GB address boundary. This is not an architectural limit; it is a limit imposed by Microsoft as a workaround for driver compatibility issues that were discovered during testing.[14]  
> Thus, the “3 GB barrier” under x86 Windows “client” operating systems can therefore arise in two slightly different scenarios. In both, RAM near the 4 GB point conflicts with memory-mapped I/O space. Either the BIOS simply disables the conflicting RAM; or, the BIOS remaps the conflicting RAM to physical addresses above the 4 GB point, but x86 Windows client editions refuse to use physical addresses higher than that, even though they are running with PAE enabled. The conflicting RAM is therefore unavailable to the operating system whether it is remapped or not.

> [@](#):
>
> 1. (Unrelated to #1) In Win64, 32-bit applications can access all the available memory, but only in 2 GB chunks,

No - 2 MB chunks, actually, up to 3 GB per process at any time.

> [@](#):
>
> and only if the page file is turned off,

No.

> [@](#):
>
> and only if they’re written to support it?

Sort of - it’s handled automatically for normal processes, but an application has to be explicitly written to handle \> 2 GB, and again explicitly written to use PAE to access large amounts of data.

> [@](#):
>
> If that’s correct, how often does that actually happen in real life?

This is a technology called [PAE](http://en.wikipedia.org/wiki/Physical_Address_Extension) and was mainly used on 32 bit server-side apps, but is automatically part of 64 bit Windows.

> [@Wiki](#):
>
> Microsoft Windows implements PAE if booted with the appropriate option, but current 32-bit desktop editions enforce the physical address space within 4 GB even in PAE mode. According to Geoff Chappell, Microsoft limits 32-bit versions of Windows to 4 GB as a matter of its licensing policy,[5] and Microsoft Technical Fellow Mark Russinovich says that some drivers were found to be unstable when encountering physical addresses above 4 GB.[6] Unofficial kernel patches for Windows Vista and Windows 7 32-bit are available[7] [8] that break this Microsoft enforced limitation, though the stability is not guaranteed. These tools increase the RAM limit of the 32-bit version of Windows 7 to 64 GB.  
> For 32-bit application software which needs access to more than 4 GB of RAM, operating systems may provide some special mechanisms in addition to the regular PAE support. On Windows this mechanism is called Address Windowing Extensions.  
> The x86 versions of the following releases of Microsoft Windows support PAE:[9][10][11] Itanium versions of these operating systems (if they exist) do not use PAE because the Itanium does not need nor implement PAE. x86-64 editions of Windows always implement PAE, because it is a mandatory feature of long mode.

---

<div class="post-metadata">

**Author:** ![bump](https://avatars.discourse-cdn.com/v4/letter/b/7c8e57/32.png) [@bump](https://boards.straightdope.com/u/bump)\
**Post date:** [September 17, 2013, 1:48pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/25 "2013-09-17T13:48:39Z")

</div>

> [@Melbourne](#):
>
> Technically, if you have more than 46B of RAM, 32bit software will only be able to access it in 2GB chunks.
> 
> 32bit Windows would allocate a very large number of 2GB chunks of virtual memory. Most versions of 32bit Windows would only recognise 4GB of physical memory. Out of that, most versions of 32bit Windows would only allocate 2 or 3 GB of physical memory to the application pool.
> 
> But there are plenty of 32bit applications that are able to use 32-64GB of memory, and when 64bit windows allocates those applications physical memory instead of paging virtual memory to disk, they run much faster.

So how would it work that most 32 bit versions of windows only recognize 4 gb of memory, but plenty of 32 bit applications can use 32-64 gb?

Are you saying that under a 64 bit OS, 32 bit apps can access more than the 4 gb limit imposed by the 32 bit Windows OS?

Either way, 64 bit Windows allows the usage of a LOT more memory than the 32 bit versions.

---

<div class="post-metadata">

**Author:** ![Blakeyrat](https://avatars.discourse-cdn.com/v4/letter/b/ecd19e/32.png) [@Blakeyrat](https://boards.straightdope.com/u/Blakeyrat)\
**Post date:** [September 17, 2013, 5:28pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/26 "2013-09-17T17:28:17Z")

</div>

> [@bump](#):
>
> So how would it work that most 32 bit versions of windows only recognize 4 gb of memory, but plenty of 32 bit applications can use 32-64 gb?
> 
> Are you saying that under a 64 bit OS, 32 bit apps can access more than the 4 gb limit imposed by the 32 bit Windows OS?
> 
> Either way, 64 bit Windows allows the usage of a LOT more memory than the 32 bit versions.

I don’t think that’s true. A naive 32-bit program can never address more than 4 gigabytes of RAM. Windows, due to historical reasons, by default never allows a program to use more than 2 GB, but there’s a flag the program can set (“large address aware”) that allows a 32-bit program to use the full 4 GB.

EDIT: Oops, that last paragraph is wrong. Quartz’s cite above says Windows does have a way for 32-bit programs to request more than 4 GB of memory; but they have to be specially-written to handle it. You can’t just turn it on on any old program.

There is a CPU technology called PAE which allows OSes and applications on 32-bit processors to address up to 256 TB of memory, but Microsoft limits applications and drivers to 4 GB even with PAE turned on. (They found that the number of applications and drivers that crashed as a result of this option wasn’t worth the potential performance improvement.)

On a 64-bit OS, 32-bit programs have the same 4 GB limitation. This might be something solve-able by the OS, but Windows doesn’t bother. (The terrible secret of space here is that the vast majority of programs don’t benefit from having access to more than 4 GB of memory-- the real impetus to the 64-bit switch is _address space_ starvation, not physical memory starvation. But that topic is very hard to explain to the public.)

---

<div class="post-metadata">

**Author:** ![dstarfire](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/dstarfire/32/5762_2.png) [@dstarfire](https://boards.straightdope.com/u/dstarfire)\
**Post date:** [September 17, 2013, 5:58pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/27 "2013-09-17T17:58:20Z")

</div>

> [@aceplace57](#):
>
> How about Microsoft Office? I have the 2003 version which is Win 7 compatible (theres a MS patch for it) But it’s 32 bit software.

Microsoft actually recommends the 32-bit version (over the 64-bit version) of office 2007 and 2010. They even made it so that you have to run a different setup program to install the 64-bit version.

Of course that’s kind of moot for you since I don’t think 2003 is available in 64-bit.

To ease your worries, I’ll point out that the 64-bit version of windows has separate program folders for 32 and 64-bit programs (“program files (x86)” and “program files”, respectively) , and stores the settings in separate registry keys (again, all 64-bit is in one section, all 32-bit in another).

I’m a professional PC tech and I’ve been using windows 7 64-bit for years now (since a few days after it was released) and running 32-bit and 64-bit programs and can’t remember any problems caused by the 32/64-bit mixup. The only “issue” I’ve had is when certain games don’t support 64-bit and will only use 2GB of ram. They run fine, just not as fast or as well as if they could use more than 2GB of ram.

---

<div class="post-metadata">

**Author:** ![aceplace57](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/aceplace57/32/3500_2.png) [@aceplace57](https://boards.straightdope.com/u/aceplace57)\
**Post date:** [September 17, 2013, 7:44pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/28 "2013-09-17T19:44:49Z")

</div>

Windows Virtual PC has a required 64 bit installer  
XP Mode has only one installer. That’s interesting.

Should have it up and running soon. I really prefer dual booting XP and Win 7 because its the best of both worlds. My tower pc dual boots and I love it. But don’t want to format my new laptop drive just yet. (for dual boot, you install XP first, then Win 7) So, giving XP Mode a try for my older software.

---

<div class="post-metadata">

**Author:** ![TimeWinder](https://avatars.discourse-cdn.com/v4/letter/t/bcef8e/32.png) [@TimeWinder](https://boards.straightdope.com/u/TimeWinder)\
**Post date:** [September 17, 2013, 8:00pm UTC](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007/29 "2013-09-17T20:00:03Z")

</div>

> [@Blakeyrat](#):
>
> I don’t think that’s true. A naive 32-bit program can never address more than 4 gigabytes of RAM. Windows, due to historical reasons, by default never allows a program to use more than 2 GB, but there’s a flag the program can set (“large address aware”) that allows a 32-bit program to use the full 4 GB.
> 
> EDIT: Oops, that last paragraph is wrong. Quartz’s cite above says Windows does have a way for 32-bit programs to request more than 4 GB of memory; but they have to be specially-written to handle it. You can’t just turn it on on any old program.

You’re right both times. It’s AWE (Address Window Extensions), and it’s extremely, astoundingly, amazingly rare. It amounts to making the application manage memory itself, similar to the old “banks” in 6502 Apple land or early x86 chips: You map a range of your larger memory into a 32-bit space, and swap the map for new regions as necessary. You can never address more than a 32-bit space, but you can choose from as many of those as your physical memory will permit (AWE memory can’t be paged, so it’s limited to the physical space available.)

If there are more than ten programs on the market today that use this technology, I’ll be very surprised.

[Previous page](https://boards.straightdope.com/t/what-do-i-need-to-know-using-64-bit-win-7/669007.md?page=1)
