Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

For reasons beyond my control I will be getting a beefy laptop with room for 8GB RAM and 64-bit OS capable CPUs - but with Windows XP 32-bit. If I upgrade the RAM, Windows XP will only see 2GB (without the boot.ini switch).

Can I install any VM software that will allow me to run Windows 7 64-bit and take advantage of any additional RAM on the machine?

Pardon my ignorance on the workings of VM software but is it possible to "cheat"?

share|improve this question
up vote 3 down vote accepted

Shortly, VM won't help you.

32-bit in name of operating system [kernel] means that it (and it's applications) is using 32-bit pointers to address the physical and virtual memory. There is no way for 32-bit application to access more than 4 GiB of memory at once, and part of applications' address space is taken by kernel: whole 4 GiB of possible memory addresses are split into two zones: this is 2 GiB for kernel and 2 GiB for applications by default. Again, this splitting is only valid for virtual memory: two applications can use both 2 GiB of this memory but take it from different parts of physical memory. This limitation applies to kernel as well.

You can do two things:

  1. Change the virtual memory splitting. It is surely possible on any WinXP installation and will give an additional 1 GiB of memory for use in applications: afterwise it's will be possible to use upto 4GiB of memory at once for the system, but 3 GiB (instead of 2) for each application.

  2. Enable PAE (physical address extensions). This will still allow applications to use not more than 2 or 3 GiB of RAM depending on virtual memory split but afterwise your system will gain access to all of your memory (maximum is 64 GiB really; it surely won't be met).

Here are two links to MSDN articles: one about enabling 3GiB split (it won't tell you how to enable PAE despite it's URI) and another about enabling PAE. As a summary, you need to put /3GB and /PAE switches accordingly in boot.ini for your kernel (don't forget to backup old boot entry!).

At last: even if you will enable both 3GiB split and PAE, the VM won't get more than 3GiB of memory. Never on a 32-bit system.

share|improve this answer
Thanks for the great explanation. – Rams Jan 24 '10 at 16:11

No, unfortunately not. You can activate PAE to get a little more out of it, but it's no replacement for 64-bit.

Is there no way you can convince whoever's giving you this laptop to see sense? Or just install Win7 64bit on it anyway?

share|improve this answer
At this time I havent been able to convince the powers that be. Company policy is the push back I get – Rams Jan 24 '10 at 16:14

You will be able to run 64-bit/x64 inside a virtual machine on 32 bit Windows (as long as you have a compatible CPU with the VT bit or similar), however, it will not be able to see the additional ram (apart from PAE as Phoshi said, however again, it is no replacement for 64-bit Windows).

If you have a spare copy of Windows 7 x64, if I was you, I would install that as my main operating system and take full advantage of the 8GB of memory.

share|improve this answer
Unfortunately replacing WinXP with my copy of Win7 64Bit violates contractual obligations. – Rams Jan 24 '10 at 16:15
If you are working for somewhere that says you can't, you may want to look at imaging the hard drive, installing what you want then restoring when your contract is over - or getting a second had drive and swap it over, do what you want and at the end, put it back - it will be as if you haven't modified a thing. Alternatively, ask them to modify it! say it is crucial to your job - even if you just use x64 XP. – William Hilsum Jan 24 '10 at 17:18
the second hard drive is an option that may ultimately work. Thanks for the suggestion. – Rams Jan 26 '10 at 13:23

This is possible, given that your motherboard and processor support CPU virtualization. From the VirtualBox manual:

VirtualBox supports 64-bit guest operating systems, even on 32-bit host operating systems, provided that the following conditions are met:

  1. You need a 64-bit processor with hardware virtualization support.

  2. You must enable hardware virtualization for the particular VM for which you want 64-bit support; software virtualization is not supported for 64-bit VMs.

  3. If you want to use 64-bit guest support on a 32-bit host operating system, you must also select a 64-bit operating system for the particular VM. Since supporting 64 bits on 32-bit hosts incurs additional overhead, VirtualBox only enables this support upon explicit request.

I know this is also possible to do with VMWare. The underlying idea here is that, if you have a 64-bit processor which supports virtualization, it is possible since the virtual machine executes code directly on the CPU. I don't know if this will allow you to use the extra RAM in your system, but there are other things you can do with the extra memory.

If you extended the pagefile into the extra memory (using that previous link), you could theoretically recover some of the extra RAM (albeit with some overhead). Using that method, you would probably be better off using a 32-bit guest (to avoid the 64-bit RAM address overhead on a 32-bit OS).

share|improve this answer

You must log in to answer this question.

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