8gb ram in 32bit operating system

2

1

I am having windows 7 32 bit operating system and 8 gb of RAM. I know that maximum usage of RAM for windows 32 bit is 4GB. I have installed virtual box which contains two Ubuntu(both 32bit and 64bit)operating systems. Is it possible to allocate the remaining 4GB RAM to operating systems in virtual box so that I can use complete 4 GB RAM dedicatedly to Windows 32 bit.

Right now i have allocated 2.5 GB to windows and 1.5GB RAM to Ubuntu 32 and 64 bit each. I can't run both the operating systems simultaneously.

Shriram

Posted 2012-06-20T05:20:47.783

Reputation:

4There is no 'remaining' ram. Your 32 bit operating system doesn't know it exists, so no VM inside that operating system would either. – Christian Varga – 2012-06-20T05:22:57.187

Also I don't know about VirtualBox but I know some of the other products require you to have a 64bit host in order to support 64bit guests. – Scott Chamberlain – 2012-06-20T05:35:53.340

VMware products support install 64bit guest OS on 32bit host OS, if the underlying hardware is 64bit architecture. – LiuYan 刘研 – 2012-06-20T07:53:34.370

Couldn't you just run Windows as the virtual machine inside an Ubuntu 64-bit host? (A hypervisor architecture could theoretically do what you're asking for, but I don't think there are any existing products that would support it.) – Harry Johnston – 2012-06-21T02:54:08.587

Answers

8

Replace your Windows 7 host from 32-bit to 64-bit and this is the only solution.

In a Windows (exclude servers) 32-bit operating system there is no way to assign address more than 32-bit (and also some reserved by other hardware), so your 4.3GB RAM will be totally invisible to VM.

Alvin Wong

Posted 2012-06-20T05:20:47.783

Reputation: 870

1How about PAE ? – user541686 – 2012-06-20T05:28:13.543

1Windows "user" editions seems to limit the maximum amount of RAM you can use even with PAE, but those "server" editions don't. Still need to install another OS – Alvin Wong – 2012-06-20T05:30:45.117

Yup. Just mentioned it since your answer said "in a 32-bit OS". – user541686 – 2012-06-20T05:31:41.497

I think PAE just let the OS see RAM more than 4GB, but programs can only see "virtual" address, that means a 32-bit program can never use more than 4GB RAM – Alvin Wong – 2012-06-20T05:33:13.100

Ah, yes... I was thinking of AWE but I guess that isn't really "addressing" more than 32-bit memory, even though it gives you access. :-) You're right, my bad. +1 for you :) – user541686 – 2012-06-20T05:34:29.650

1@AlvinWong: Your statement is incorrect. A 32-bit program can not address more than 4GB of virtual memory at once. But this only limits its use of virtual memory, not its use of RAM. A 32-bit application can use as much memory as it wants. There is no requirement that it fit in the virtual address space. (For example, through the read and write calls, you can use huge amounts of RAM without mapping a single byte.) – David Schwartz – 2012-06-20T06:01:59.787

@DavidSchwartz perhaps I didn't write that clear, but a single 32-bit program doesn't handle addressing beyond 4GB "virtual memory". When I write a program in C (Windows 32-bit) the pointers are 32-bit, isn't it? – Alvin Wong – 2012-06-20T06:14:27.837

1@AlvinWong: Right, but virtual memory and RAM are two completely different things. You wrote, "a 32-bit program can never use more than 4GB RAM", which is false. A 32-bit program can never address more than 4GB of virtual memory at a time. It can use more than 4GB of RAM. (And nothing special is needed. It can do it without even meaning or trying to. For example, say it reads a 5GB file then reads it again. It can read the file the second time entirely out of RAM, using 5GB of RAM without anything but read.) – David Schwartz – 2012-06-20T06:16:11.090

@DavidSchwartz But you can't create an array of char (string) that is more than 4294967295 items. In your example "reading file", I don't think the whole file will be loaded to RAM completely, so that you can successfully read it – Alvin Wong – 2012-06-20T06:22:38.153

1@AlvinWong: Correct, you can't create such an array. But not because you can't use that much RAM -- because you can't map that much virtual memory. (For example, you can do that in a 64-bit process even if you don't have 4GB of RAM because that only uses virtual memory.) And you are incorrect, the whole file will be loaded to RAM completely (assuming there is enough physical memory and the OS knows how to use it). – David Schwartz – 2012-06-20T06:27:34.367

@DavidSchwartz Then that is the OS using that much RAM, not the program itself. I thought you mean something like string filedata=readAllTextFromFile("C:\this_is_5G_large.txt") – Alvin Wong – 2012-06-20T06:30:53.800

1@AlvinWong: Your distinction between the OS and the program itself is a meaningless one. Programs always use RAM through the OS in this way. When a program handles a string, it has no idea if it's physically resident in RAM (unless it locks it or something very unusual like that). It's up to the OS to decide how best to use physical RAM -- invisible to the process except in performance implications. – David Schwartz – 2012-06-20T06:33:10.953

4

According to the official Microsoft documentation, Windows 7 ("all supported releases", whether 32-bit or 64-bit), support from 8GB (Home Basic version) to 192GB (Professional, Enterprise and Ultimate). This depends not on the release, but on the CPU architecture (32-bit, or 64-bit, which is what most (all?) desktop and laptop CPUs manufactured within the past 5 years have, being them Intel of AMD, despite the confusing "amd64" name).

Limits on physical memory for 32-bit platforms also depend on the Physical Address Extension (PAE), which allows 32-bit Windows systems to use more than 4 GB of physical memory.

Memory and Address Space Limits

The following table specifies the limits on memory and address space for supported releases of Windows. Unless otherwise noted, the limits in this table apply to all supported releases.

╔════════════════════════╦══════════════╦══════════════╗
║        Version         ║ Limit on X86 ║ Limit on X64 ║
╠════════════════════════╬══════════════╬══════════════╣
║ Windows 7 Ultimate     ║ 4 GB         ║ 192 GB       ║
║ Windows 7 Enterprise   ║ 4 GB         ║ 192 GB       ║
║ Windows 7 Professional ║ 4 GB         ║ 192 GB       ║
║ Windows 7 Home Premium ║ 4 GB         ║ 16 GB        ║
║ Windows 7 Home Basic   ║ 4 GB         ║ 8 GB         ║
║ Windows 7 Starter      ║ 2 GB         ║ N/A          ║
╚════════════════════════╩══════════════╩══════════════╝

Dan Dascalescu

Posted 2012-06-20T05:20:47.783

Reputation: 3 406