35 ms·
> To support those needs, there were clutches like Intel’s PAE, which allowed manipulating up to 64GB of RAM on 32-bit machines without changing the programming
by blueflow 2y ago
> To support those needs, there were clutches like Intel’s PAE, which allowed manipulating up to 64GB of RAM on 32-bit machines without changing the programming model, but they were just that: hacks.
You can go look up how the 32-bit protected mode got hacked on top of the 16-big segmented virtual memory that the 286 introduced. The Global Descriptor Table is still with us on 64-bit long mode.
So, its not PAE that is particularly hacky, its a more broader thing with x86.
- lmm 2y agoThat other hacks exist does not make a given hack any less hacky.
- af78 2y agoWhile a PAE system can address more than 4 GiB of physical memory, individual processes still use 32-bit pointers and are therefore still restricted to 4 GiB. I think this is why the author calls PAE a hack. In x86-64 long mode and i386 32-bit mode, pointers are really 64- and 32-bit, respectively; I would not call this a hack.
- junon 2y agoImportant missing info I suppose for some readers - that's what the "p" in "pae" stands for - physical address extension. It has no bearing on virtual addresses.
- rft 2y agoTo add another layer on top of these hacks, Windows has Address Windowing Extensions [1] that allows a 32bit process to use more than 4GB of RAM. Of course pointers are still 32bit, so you need to map the additional memory into and out of the virtual address space. x86 and its history is full of things that look hacky, and might be, but are often there for backward compatibility. If your x86 PC still boots in BIOS mode, it comes up in 16bit real mode [2], ready to run DOS. It then moves through the decades into protected mode and lastly (for x64 systems) long mode. [1] https://learn.microsoft.com/en-us/windows/win32/memory/address-windowing-extensions https://learn.microsoft.com/en-us/windows/win32/memory/addre... [2] https://wiki.osdev.org/Real_Mode https://wiki.osdev.org/Real_Mode