Stojke wrote:From what i know from various talks with people - Windows XP 32bit could technically go up to 64GB with memory manager due to addressable memory maximum being 36bit. But every application could address only 4GB maximum.
XP was full of holes that were patched and patched. What i didn't like is the boot time and system responsiveness over time that dropped and dropped.
Frop 20 seconds on fresh install to 2 minutes a year latter. Windows 8.1 still boots in 10 second maximum on a Hard Disk even a year and a half latter.
Yes and no. Intel extended the memory table to 36-bits with the Pentium Pro. This was called Physical Address Extension (PAE). Beginning with Windows 2000 Advanced Server, the OS could run with PAE enabled (two "new" versions of NTOSKRNL are included: NTKRNLPA for single-core/proc systems and NTKRPAMP for SMP). You had to opt into this by setting the flag /PAE in the boot.ini file.
With PAE enabled, Windows can access more than 4 gigabytes of RAM, but no individual process can have more than 2 gigabytes. (Technically, a process can have up to 3GB if /3GB is specified in boot.ini and the process is compiled as /LARGEADDRESSAWARE)
Now - with XP (up to & including SP1a) - PAE is off by default but can be enabled with /PAE like in 2K Server. But when Service Pack 2 came out, Microsoft began enforcing hardware Data Execution Prevention (DEP). Since the hardware nX bit is bit 63 in the page table, supporting nX implies using PAE. But! With SP2, Microsoft also changed the kernel to artificially limit addressing to 4 GB, regardless of whether PAE is enabled or the system has >4GB of RAM.
Microsoft claimed that some drivers crapped out when being presented with large addresses. In theory, they shouldn't, but some "assume" a 32-bit table. The other reason (imo) is to promote the higher-priced SKU -
Windows Server 2003 and 2008 x86 (depending upon SKU - Standard & Web excluded) retain the ability to run with large memory using 36-bit PAE in x86 mode.