Windows 32 bit more than 4gb

Win 7 32bit — ОЗУ больше 4 Гб. Будет работать?

Пробовал лично, не работало.
Так мало того что не работало, так ещё и угробил систему окончательно.
Уж лучше не ставить себе грабли. и поставить нормальную x64 систему, которая будет работать как положено, чем работать с граблями, которые сегодня могут запустится как положено, а завтра покажет кукиш с маслом.

Патч Ready4GB позволяет видеть 32х-битной ОС виндовс 7 более 4х ГБ. Я лично пробовал и у меня система стала видеть все 8 ГБ. Возможные проблемы — некорректная или ограниченная работа некоторых драйверов, придётся поизъёбываться с их подбором. В моём случае была интеловская видеокарта, и я какое-то время подбирал совместимые, то есть собирал по кусочкам и патчил inf, не помню уже. В получившемся варианте всё равно были проблемы — перестал корректно работать режим windows aero (я его просто отключил и всё). Возможно, перестанут нормально работать игры (ноут рабочий, я не пробовал). В остальном всё в порядке и работает. Ну, не следует забывать, что ограничение останется 2 ГБ на процесс, но, думаю это не проблема.

Я установил этот патч потому что была настроенная система с установленными программами, и перенастраивать было бы долго. Если настраивать систему с нуля — то лучше конечно установить 64х-битную версию.

Говорят, что всякими обновлениями можно WinXP заставить видеть больше 4х гигабайт, но лучше переустановить.

Why does a 32-bit OS support 4 GB of RAM?

Just reading some notes in a purdue lecture about OSs, and it says:

A program sees memory as an array of bytes that goes from address 0 to 2^32-1 (0 to 4GB-1)

13 Answers 13

Because 32 bits are able to represent numbers up to 2 32 − 1 = 4294967295 = 4 GiB − 1 and therefore address up to 2 32 individual bytes which would be 4 GiB then.

There are ways to circumvent that, though. For example using PAE even a 32-bit operating system can support more memory. Historically this has most commonly been used on servers, though. Also, the non-server Windows SKUs don’t support it. By now all that is moot, though, given that 64-bit CPUs, OSes and driver support are commonplace.

Because each byte of memory has to have an address. In a 32-bit operating system, an address is 32 bits long; thus, there are 2^32 possible addresses, which means there are 2^32 bytes = 4 GB.

Everybody is saying 2^32 = 4GiB, which is right. Just in case, here is how we got there:

A 32-bit machine uses 32 bits to address memory. Each bit has a value of 0 or 1. If you have 1 bit, you have two possible addresses: 0 or 1. A two-bit system ( pun aside ) has four possible address: 00 =0, 01=1, 10=2, 11=3. 2^2=4. Three bits have 8 possble addresses: 000=0, 001=1, 010=2, 011=3, 100=4, 101=5, 110=6, and 111=7.

Each bit doubles the potential address space, which is why 2^n tells you how many addresses you use for a given number of bits. 2^1 = 2, 2^2 = 2*2 = 4, 2^3 = 2*2*2 = 8, etc.

By the time you get to 32 bits, you are at 4GiB.

If you have a 4-bit system, this means the address for each byte is 4 binary digits, the probability of all your address will range from 0000 through 1111 which is 2^4 = 16 (2 because there is either 0 or 1), with four bits it’s possible to create 16 different values of zeros and ones, If you have 16 different addr. each represent a byte then you can have a max of 16 bytes

4-bit system will look like this:

For a 32-bit system, your max is 2^32 = 4294967292 bytes

4 GB = 2^32 bytes.

That, in bytes, is the definition of 4 GB. In other words a 32-bit register as a memory pointer can address 4 GB of memory and no more.

Actually, it’s not as simple as 2^32 = 4294967296 bytes. You see in x86 protected mode, with paging enabled (that is, what you get when you use any modern OS), you don’t address memory locations directly, even though the paging translation mechanism is transparent for client applications.

Читайте также:  Диск для восстановления windows 10 образ

Of a logical 32 bit memory address, when using 4K pages:

  • bits 22-31 refer to a page directory
  • bits 12-21 refer to a page table
  • bits 11-0 refer to an offset in the 4096 byte page

As you can see, you have 2^10 (1024) page directories, in each page directory, you have 2^10 page tables and each page is 2^12 (4096) bytes long, hence 2^32 = 4294967296 bytes. The width of the memory bus is conveniently the same as the word length of the CPU but it’s not necessary to be like this at all. In fact, more modern x86 CPUs support PAE which enables addressing more than 4GB (or GiB) even in 32-bit mode.

Is there way to enable more than 4 GB RAM in 32-bit Windows OS?

I upgraded my PC to 4 GB RAM and I get only 3 GB. Windows 7 32-Bit consider that I’ve 4 GB RAM but didn’t use more than 3 GB.

Someone told me that MS Windows 32-bit doesn’t support RAM larger than 3 GB.

So please is there any way to make my OS «Windows 7 32-Bit» support more than 3 GB RAM ?

*`Note: I can’t move to 64-bit because I’ve many program doesn’t work with a 64-bit OS.

I tried what Mr. Wonsungi advised me but whenever I check this option:

Enable support for 4 GB of RAM

I get the following error:

There is no «CLSID» in my registry, I don’t know why!.

9 Answers 9

You can use PAE, but it’s not nearly as good as just going 64 bit. Check this MSDN Page.

Enabling PAE

Windows automatically enables PAE if DEP is enabled on a computer that supports hardware-enabled DEP, or if the computer is configured for hot-add memory devices in memory ranges beyond 4 GB. If the computer does not support hardware-enabled DEP or is not configured for hot-add memory devices in memory ranges beyond 4 GB, PAE must be explicitly enabled.

To explicitly enable PAE, use the following BCDEdit /set command to set the pae boot entry option:

IF DEP is enabled, PAE cannot be disabled. Use the following BCDEdit /set commands to disable both DEP and PAE:

Windows Server 2003 and Windows XP: To enable PAE, use the /PAE switch in the boot.ini file. To disable PAE, use the /NOPAE switch. To disable DEP, use the /EXECUTE switch.

For general info, there is also this overview on memory limits per Windows edition:

Recently, a group of programmers have released a kernel patch for Windows 7 to allow the usage of more than 4 GB of RAM under Windows 7. Click here to download the patch, or view more information about it. The patch basically modifies the Windows 7 kernel to be more like the Windows Server 2003 Datacenter Edition, which is compatible with up to 8 GB of RAM under 32-bit mode.

The patch allows you to extend the PAE well into 8 GB of RAM under Windows 7 32-bit. For more information about why Microsoft implemented this technical limitation, see this article.

Note that individual processes will still be limited to 4 GB even if the system can access more. Although if you had 8 GB of RAM, then at least you’d still have another 4 GB for other processes 😉

The answer to this question is really «depends on who you ask».

Some say to use PAE, which will allow you to address higher than 4GB BUT Microsoft will NOT let you on many of 32bit versions of Windows.

http://msdn.microsoft.com/en-gb/library/aa366778(VS.85).aspx
The following table specifies the limits on physical memory for Windows 7.

Physical 4GB limit, period. It’s a licensing issue. There might even be a «hack» floating around to let you use more than 4GB, but I don’t remember.

Please do note: Vista and Windows 7 on 32bit will report the TOTAL PHYSICAL RAM you have in System, but it will ONLY use 4GB of it. So, shoving 16GB in a computer running 32bit Windows will only use 4GB ACCORDING TO MICROSOFT even though «System» control panel will show 16GB. Windows 7, Vista, and XP 32bit will only use 4GB of RAM, its a fact. However, certain versions of Windows Server WILL use more than 4GB with PAE enabled.

For those going «your wrong PAE will allow you to to use more than 4GB», yes I agree, however, Microsoft says that you can only use 4GB on most of the 32bit desktop OS so if you feel that page is in error send them an email or call them to complain.

Читайте также:  Microsoft windows immersive shell 5973

Использование более 4Гб оперативной памяти в 32 битных гостевых операционных системах


Не секрет, что 32 битные операционные системы не позволяют адресовать более 4Гб оперативной памяти. Сейчас я вам хочу рассказать как это ограничение можно косвенно обойти в виртуальной среде, где есть полноценный доступ к хостовой операционной системе.

Собственно, цель достаточно ясна – это позволить гостевой x32 операционной системе использовать помимо «честных» 4Гб оперативной памяти еще какое-то количество, которое можно безболезненно выделить из доступной.

Для начала опишу краткий план достижения цели, а потом рассмотрим детали и реализацию. Но сразу оговорюсь, что данный способ, конечно же, не позволит операционной системе «увидеть» больше памяти, чем она может это себе позволить, но вот использовать ее незаметно для себя она будет.

Начнем

Исходные данные:

  • Host: Ubuntu 12.04 x64, RAM 8Gb
  • VM: VMware Player 4.0.4
  • Guest: Windows XP SP3 x32, RAM 3Gb

Дополнительную оперативную память будем «выделять» необычным способом, для этого создадим vmdk диск и расположим его в оперативной памяти хост системы. Созданный диск подключим к гостевой системе. Для начала полноценного использования дополнительной оперативной памяти останется только переместить на этот диск файл подкачки. Кроме переноса файла подкачки можно перенастроить некоторые программы на хранение своих кэшей или временных файлов в этой «оперативной памяти», но это уже зависит от ее объема.

Некоторые детали
  • Размер создаваемого vmdk диска можно рассчитать следующим образом:
    (ОЗУ доступная хост системе) — (ОЗУ переданная VM) — k
    где k – это минимальное необходимое количество ОЗУ для работы хост системы.
  • Так как vmdk диск должен располагается в оперативной памяти, то его следует туда помещать, как минимум, каждый раз после загрузки системы
  • Так как I/O операции в оперативной памяти достаточно быстры, нет необходимости создавать preallocated (т.е. с заранее выделенным местом) файл vmdk диска.
  • Желательно, чтобы конфигурация файла подкачки содержала минимальный и максимальный его размер, приблизительно равный объему созданного vmdk диска. Этот размер будет немного отличаться от указанного объема при создании vmdk, так как часть места займет файловая система и служебная информация самой системы.
  • Для размещения vmdk файла в оперативной памяти нужно эту память подготовить для доступа к ней из файловой системы.
  • В большинстве случаев при использовании такого тюнинга уже нельзя будет воспользоваться функцией «Suspend» в vmplayer.

Интересный факт: если vmdk диск был сделан не preallocated (т.е. «резиновый»), а файл подкачки был настроен так, как описано выше, то есть максимального и фиксированного размера, то, несмотря на то, что файл подкачки займет все пространство vmdk диска, в хосте этот vmdk файл будет занимать места почти так же, как и до переноса на него файла подкачки. Естественно, это не может не порадовать, так как гостевая система будет использовать дополнительную оперативную память по мере необходимости, правда, только в сторону увеличения.

Make Windows 7, 8 and 10 32-bit (x86) Support More Than 4GB Memory

As you’ll know, there has been 2 versions of each Windows starting from XP which are 32-bit and 64-bit editions. Sometimes a Windows 32-bit is referred as x86 and 64-bit as x64. We won’t go into details on what are the differences between x86 and x64 are, but one of the major differences is a 64-bit Windows can support more than 4GB of RAM. If your computer has 4GB of RAM and you’re using a 32-bit Windows, you’ll notice that only about 3GB – 3.5GB is being recognized and the remaining memory is gone. Weirdly, Windows 2003 and 2008 can already address more than 4 GB of memory so why can’t we do that with Vista and newer operating systems?

The answer is: Microsoft doesn’t want that and it’s all just a licensing matter. Contrary to popular belief, there is no physical reason why a 32-bit Windows cannot access memory above 4GB, but it’s more a case of Microsoft opting not to allow it.

We can of course go for a 64-bit version of Windows, but even today, there is still quite a lot of software which cannot run properly on x64, which can be inconvenient if you’re someone like us who installs and tests a lot of software. Not only that, Windows 64-bit doesn’t accept unsigned drivers unless you disable driver signature enforcement manually every time you boot. Quite frustrating… Well, here is good news for Windows 8, 7 and Vista users because we have some patches here to make your 32-bit Windows support more than 4GB of memory.

Читайте также:  Mac os устанавливаем обои

There have been a few 4GB patchers available, but unfortunately most of them haven’t been kept up to date. For example, the RamPatch tool over at unawave.de works quite well on Windows 7 RTM, but was never updated to reflect the changes to the kernel files in Service Pack 1. Also the program was removed from the website due to many false positives from antivirus software.

We have tracked down the program and you can download and try it out on Windows 7 if you wish. Although some users have reported no issues running the patched kernel file from SP0 on an SP1 install, we suspect there may be stability or compatibility problems that will arise as a result of this at some point. Consider this program a useful tool to test with and perhaps not something to use permanently.

Luckily, there is a method which has been kept more up to date, and although it’s not quite as easy to implement as the RamPatch tool above, it’s still not that difficult. PatchPae2 is by Wen Jia Liu, also known as “wj32” who is behind the excellent Process Hacker task manager software. This is a small command line tool that will patch the needed system files to enable 4GB and more of memory in Windows Vista SP2, Windows 7 RTM and SP1, and Windows 8 RTM 32-bit. Follow the steps below to enable a patched system, the core system files ARE NOT overwritten meaning you can revert back without too much fuss.

1. Download the PatchPae2 command line tool and extract the zip file to a folder of your choice. For our example, we’re extracting to the root of the C drive.

2. Open a Command prompt with Administrator privileges by pressing the Win key, typing cmd into the search box and then simultaneously pressing Ctrl+Shift+Enter. Then type the following:

3. Now, Windows Vista and 7 users type:

C:\PatchPae2.exe -type kernel -o ntkrnlpx.exe ntkrnlpa.exe

Windows 8 users type:

C:\PatchPae2.exe -type kernel -o ntoskrnx.exe ntoskrnl.exe

This makes a copy of and then patches the Windows kernel file to enable the extra memory of 4GB and above.

4. Type the following to make a copy of and disable signature verification in the Windows loader file:

C:\PatchPae2.exe -type loader -o winloadp.exe winload.exe

5. Enter this to create an entry in the Window boot menu, you can change the text in quotes to what you want:

This should give you a “successfully copied to…” message with a number of BCDID characters returned in brackets, make a note of them as you will need to enter them in the following commands.

6. Enter the following commands in turn, pressing enter after each. Replace BCD_ID with the ID you got from step 5:

bcdedit /set kernel ntkrnlpx.exe (for Win 8 use ntoskrnx.exe)

bcdedit /set path \Windows\system32\winloadp.exe

bcdedit /set nointegritychecks 1

Now reboot your computer and you should get a new entry on the Windows Boot Manager to run the patched operating system.

The good thing here is if you have problems, you can simply switch to the unpatched normal system by rebooting because the kernel files were copied and not overwritten. When you boot the patched system, a quick check should show that your amount of memory is now fully utilized. Do note that you still might not get access to all memory if some of it’s shared with the video adapter, e.g. 512MB onboard graphics.

As you can see from the image above, we now have a 32-bit Windows 7 showing there is 6GB of installed RAM available.

This next image shows that Windows Resource Monitor confirms there is 6GB of memory installed and ready to be used, with over 5GB still available for use.

If you want to uninstall this patch again from your system, simply boot into the unpatched Windows, press the Win key, type msconfig and press enter. Then select the boot tab and highlight the patched boot entry, click Delete. This screen can also be used for reducing the timeout and selecting the patched install as the default o/s to boot into if you plan on keeping it permanently.

Оцените статью