In the beginning - page 4 What if we took a processor more like one from 1980 and upgraded it to modern 64-bit floating point arithmetic and gave it more memory and such. Let's say we took it to 1 million transistors. It would have no multi-programming capabilities. No context switching, no hyper-threading, no memory management, etc. We will keep it simple! In 1980 it was more cost-effective to share a single large processor on a single chip. The effort to run multiple programs on a single core, and to do it as efficiently as possible, led to tremendous complexity. Today it has become cost-effective to create lots of little processors on a single chip. (Witness Nvidia). Lots of little processors leads to great simplicity. Today we can put more than 100 billion transistors onto a single chip. Thus we can support 100 thousand of our new, simple, 1 million transistor processors. And EVERY SINGLE ONE OF THEM would be more than capable of running whole operating systems and supporting any language and running any SINGLE program. And would run 1000 times faster than their 1980 ancestors, as transistors themselves are 1000x faster today: they ran several MHz and we now run several GHz. *** BUT WE CANNOT DO THAT BECAUSE WE ARE STUCK IN THE CURRENT PARADIGM "RUT"! *** Because it would not be compatible with current processors. To support this new paradigm, we'd need new languages and new OSes. We'd have to start over from scratch. We'd have to totally abandon trying to be backwards compatible to pre-existing software or hardware.