Hacker News new | ask | show | jobs
by kirb 2201 days ago
It’ll work, may have to disable secure boot/enable legacy BIOS mode though. Of course you’ll be limited to 4GB RAM and there may be software you use that’s gone 64 bit-exclusive in the past few years.
1 comments

> you’ll be limited to 4GB RAM

This made me curious, so I did a bit of digging, and found https://docs.microsoft.com/en-us/windows/win32/memory/physic... (quoted out of order for simplicity):

> 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.

> PAE does not change the amount of virtual address space available to a process. Each process running in 32-bit Windows is still limited to a 4 GB virtual address space.

So, TL;DR, what you said :). But I'm glad I checked!

Under PAE, each process is still limited to a 4 GiB address space, but the total usable physical memory is extended beyond 4 GiB.

Unfortunately, PAE on Windows is a sad story. Unlike what the knowledge base said, in practice, you cannot use PAE for this purpose on Windows. Officially, PAE is only supported on Windows Server, and unusable on desktops.

Technically it's supported and almost always activated by Windows (since PAE is needed for the NX bit / DEP). But on desktop systems, Microsoft intentionally crippled PAE by locking the maximum memory to 4 GiB by a software license restriction [0]. Microsoft didn't do it because it wanted to force you to buy licenses, but due to compatibility problems, especially, all types of device drivers are problematic. Using more memory requires patching the kernel to bypass this license restriction, with unpredictable consequences due to incompatibilities.

TL;DR: PAE on Windows is practically useless.

[0] https://en.wikipedia.org/wiki/Physical_Address_Extension#Mic...

So some important notes here:

* PAE is technically enabled on most machines, but only for side effects like DEP, and there's a software lock on using more than 4GB memory.

* Via either spending lots of money or patching some files, you can get a 32-bit version of windows to use 64GB of memory. As long as your drivers don't explode.

* "4GB virtual address space" is a bit misleading. A normal 32-bit process can only use 2GB on 32-bit windows. (or 3GB if you change some settings) The upper part of the address space has to be reserved for the kernel. If you want the entire 4GB for your process, you have to run it on 64-bit windows.

As long as you can make it work, getting windows to recognize more memory despite per-process caps is a massive improvement and "limited to 4GB RAM" really undersells it.