>>  Or does the idea of a single OS disintegrate into a fractal cloud of zero-cost VM's?  What would a meta-OS need to manage that?  Would we still recognize it as a Unix?

This may be off topic, but the aim of studying history is to avoid the mistakes of the past.  And part of that is being honest about where we are now...

IMHO, hardware has left software in the dust.  I figured out that if cars had evolved since 1970 at the same rate as computer memory, we could now buy 1,000 Tesla Model S's for a penny, and each would have a top speed of 60,000 MPH.  This is roughly a factor of a trillion in less than 50 years.

For quite a while, hardware (Moore's law) was giving software cover--the hardware speed and capacity was exceeding the rate of bloat in software.  For the last decade, that's stopped happening (the hardware speed, not the software bloat!)   What hardware is now giving us is many many more of the same thing rather than the same thing faster.  To fully exploit the hardware, the old model of telling a processor "do this, then do this, then do this" simply doesn't scale.  Things like multicore look to me like a desperate attempt to hold onto an outmoded model of computing in the face of a radically different hardware landscape.

The company I'm working for now, Wave Computing, is building a chip with 16,000 8-bit processors on a chip.  These processors know how to snuggle up together and do 16-, 32-, and 64-bit arithmetic.  The chip is intended to be part of systems with as many as a quarter million processors, with machine learning being one possible target.  There are no global signals on the chip (e.g., no central clock).  (The hardware people aren't perfect--it's not yet sunk in that making a billion transistors operate fast while remaining in synch is ultimately an impossible goal as the line sizes get smaller).

Chips like ours are not intended to be general purpose -- they act more like FPGA's. They allow tremendous resources to be focused on a single problem at a time.  And the focus to change quickly as desired.  They aren't good for everything.  But I do think they represent the current state of hardware pretty well, and the trends are strongly towards even more of the same. 

The closest analogy of programming for the chip is microcode -- it's as if you have a programmable machine with hundreds or thousands of "instructions" that are far more powerful than traditional instructions, able to operate on structured data and do many arithmetic operations.  And you can make new instructions at will.  The programming challenge is to wire these instructions together to get the desired effect.

This may not be the only path to the future, and it may fail to survive or be crowded out by other paths.  But the path we have been on for the last 50 years is a dead end, and the quicker we wise up and grab the future, the better...

Steve

PS: another way to visualize the hardware progress:  If we punched out a petabyte of data onto punched cards, the card deck height would be 6 times the distance to the moon!  Imagine the rubber band....