Hacker News new | past | comments | ask | show | jobs | submit login

I disagree that the 4GB RAM cap is entirely arbitrary. Guess how many GiB of memory you can address with 32 bits? 4. Now, x86 CPUs have been capable of addressing more memory since the Pentium Pro [1]. But even then, not all motherboard chipsets supported that, probably because back in 1995, RAM was more commonly measured in megabytes, not gigabytes. Then consider that Microsoft discovered that some drivers became unstable when addressing more than 4GiB of RAM.

From a tech support perspective, the decision makes sense. Most target consumers probably aren't going to have enough RAM to hit the limit, but are going to notice and complain when their computers become extra-crashy. I may well have made the same decision.

1. https://en.wikipedia.org/wiki/Physical_Address_Extension




Why are you talking about 1995? Talking about 2005 is more relevant here.

> I disagree that the 4GB RAM cap is entirely arbitrary. Guess how many GiB of memory you can address with 32 bits? 4.

That's completely irrelevant. You could still simultaneously a lot of processes each taking up to 3 GB RAM individually. All that matters is that different processes and drivers could utilize whole installed physical memory range. 2.5-3.5GB limit was already an issue in Windows XP era, when computers started to commonly have 4GB or more. 32-bit Windows XP could have handled up to 64 GB RAM just fine.

> Then consider that Microsoft discovered that some drivers became unstable when addressing more than 4GiB of RAM.

I've heard this one often, but never seen any concrete examples of drivers with such problems. What are these drivers actually? What kind of bugs? Say DMA buffers? Well, if the developer was incompetent enough to set 4GB max DMA buffer bit for PCI[e] hardware that can't address 4GB+... All other memory buffers would have mapped behind 32-bit pointers anyways, regardless of where they actually are in physical memory. You seldom deal with direct mapping even in kernel mode drivers.

For example, how about drivers that use PASSIVE_LEVEL functions at DPC or higher? Should they not trigger IRQL is less than equal blue screen as well? Buggy drivers are buggy drivers, period.

> complain when their computers become extra-crashy

Why would their computers be extra crashy? Windows 2003 server versions worked just fine with very much the same drivers without any crashing. Why would Windows XP have been any different?

By the way, I have written Windows kernel mode drivers.


IIRC correctly PAE was used anyway on the editions of windows limited to 4G. And legacy drivers are always managed by putting their dma buffers in safe zones. This was purely a limitation for market segmentation.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: