On Fri, Dec 13, 2013 at 12:33, Jeff Simmons wrote: > "Nobody will ever need more than 640k RAM!" -- Bill Gates, 1981 >
I realize this is often quoted in jest, but I've taken to setting the record straight because I think the truth is more interesting than the lie. People who don't know the real history are doomed to repeat it without even realizing it. The 8088 CPU in the original PC, which was designed and built by IBM before MS was involved, had a 20 bit physical address space. That's one megabyte. So the most RAM the PC ever could have supported was 1MB, not so very much more than 640KB. But then out of that 1MB you have to carve out some space for things like the BIOS and the video card (and sound card, and network, and ISA whatever). So the engineers at IBM said that the top 384K of the address space would be wired up to peripherals instead of RAM, leaving 640K. It's a hardware limitation, not one of software. OpenBSD doesn't use that 384K either. And it's not a limitation that only happened once. If you stick 4GB of RAM into your PC and boot OpenBSD i386, you'll see that you only get about 3GB. Basically the same thing. Space has been reserved for peripherals, so you don't get to use the RAM in that space. If you boot amd64, you'll get to use it because the memory is remapped higher up, above 4GB. (And if you bought a 80386 and booted 32-bit Windows, you got to use the memory above 640K too). Nobody ever proclaims "3GB of RAM will be enough for everybody!" -- random dude at Intel, but that's exactly what happened. The same "mistake" was repeated. And then came the various workarounds like PAE, just like there were workarounds like expanded memory in the DOS days. For that matter, nobody ever says "80 bytes of memory will be enough for everybody!" -- John Mauchly (ENIAC) There's a lesson in there about foreseeing future requirements, but there's also a lesson that should be learned about real world products being subject to real world constraints. You go to market with the CPU architecture you have, not the CPU architecture you want. I'm reminded of Bjarne Stroustrup's comment about there being languages people like and languages people use. Sorry to spoil the fun.