"640kb ought to be enough for anybody." – Bill Gates, 1981
That quote, while Bill Gates claims is apocryphal has nonetheless become cautionary shorthand for a situation where you arbitrarily limit your design under the inevitable false assumption that no one will ever need to exceed your design specifications. I suspect that this quote is at least partially responsible for the decision to make the IPv6 address space as large as it is. Back in the day, the designers of IPv4 almost certainly could have been overheard saying, since the number was so seemingly impossibly large anyway:
"4,294,967,296 IPs ought to be enough for anybody."
Fast forward to the 21st century and it turns out that they were spectacularly wrong and this resource is now almost completely exhausted. "So much for forward thinking" their successors almost certainly thought. So when IPv6 came along, I swear they just dared people to quote them. I mean just look at what this theoretical quote would sound like!
"340,282,366,920,938,463,463,374,607,431,768,211,456 ought to be enough for anybody."
Alright, so what is my point to all of this? I recently ran into a situation at work that required that I better understand how Windows memory management works. Through that research, I ended up working with a Sysinternals tool called RamMap. This tool gives tremendous visibility into exactly how your RAM is carved up. But of course to make use of the numbers, you need to understand them. This lead me to a video on Channel9 for the series "Debug Tools". In this video, they give a lecture on how to use RamMap. If you’re at all interested in Windows troubleshooting, this is a fascinating video and I recommend it. You can can that here. This then led me to another Debug Tools video on VMmap which yet another wonderful tool from Sysinternals. This one focuses on understanding virtual memory. During the video, the presenter made an off handed comment about why VMmap reported that the total available virtual memory pool was "only" 8TB. He explained this was because the CPU designers (ie Intel and AMD) decided that even though they are building a "64 bit" CPU, that we aren’t going to actually assign all 64 bits to the pipeline to make designing the chips easier.
Read more