2002.08.22 18:18 "Re: OT: large memory allocation in Windows", by Peter Montgomery
Microsoft Windows used to support processors (Alpha and MIPS) which were capable of 64-bit addressing, but then they discontinued supporting anything but Intel X86.
The OS doesn't need to consume 1/2 of the address space. Intel processors can support more than 4GB of memory, programs just can't address more than 4GB of memory.
Let's leave the 64 bit issue off the table for now. I think the question was whether MS/Bill was stupid for limiting an x86 32 bit OS to a max of 2 GB of memory. I see the logic since from a compiler point of view, you want to be able to do relative jumps from any part of memory to any other part with a single instruction. This is easy with a 32 signed integers (+- 2 GB) in a 32 bit environment where you limit max memory to 2 GB. To do any larger amount of memory would require a lot of extra hoop jumping to support the minority of users with needs for memory > 2GB.
I'm not familiar enough with the memory layouts of other OSs. What are the memory limitations for the some of the other 32 bit OSs running on x86? For example, does Linux allow for more memory?
Also, I still stand by my assertion that opening up the max memory to 4 GB would simply buy you <a bit> of time, but nothing else. That's only twice the current memory limitation. How soon before users would complain about that? Thus, it seems to me that the 2 GB limit is not some small minded thinking on behalf of MS, but rather a very practical solution to a real issue that was decided over a decade ago. Windows NT came out in, what, 1993? They had to start writing it a few years before that. I think that at the time they were starting, 2 GB of space seemed like a very realistic and <huge> amount of space. Did you honestly think in 1993 that in 9 years you would buy a 120 GB harddrive for $200? Or that 1/2 GB of ram would be $100? Or that you would have a 2.8 GHz Intel processor for $600? I sure didn't, nor did anyone else I know. This was so "blue sky" it was beyond what I could predict. I was at Disney at the time and we were buying $40,000 SGI Indy's with a CPU that ran at 33 MHz, and that was considered a badass machine.