« Availability Cascades and SharePoint as an ECM solution | Main | Virtualization of Enterprise Systems vApps »



Feed You can follow this conversation by subscribing to the comment feed for this post.

Douq Millar

Do you know when VMs originated? I go far enough back to know one of the earliest, if not earliest. 1967!

IBM developed an internal system in their Cambridge (Massachusetts) scientific center, in cooperation with MIT Lincoln Labs, for a core capability called CP67 (Control Program for IBM 360/67). The 360/67 was an extension of the 360/65 with a jazzy new feature called "virtual memory", namely DAT - Dynamic Address Translation. This was critical to making this VM work so multiple OS instances could occupy the same address range (no address translation in OS's in those days, OS owned physical addresses 0...max).

The motivation behind this was to solve a problem that plagued IBM simultaneously building new hardware (360 product line) and the OS's (multiple) to run on that hardware. Developers stood in line to get their one hour on one of the few prototypes around and this severely impacted schedules of software development. But since 360 itself was still under development IBM couldn't just spend and get more machines

So the idea was, what if multiple programmers could share the same (rare) physical hardware to do OS testing that wants to own the entire box. So dynamic addressing was the first step, but the 360 had a cute trick. Most of the OS used privileged instructions. If you ran the OS in non-privileged mode it would, in today's parlance, throw an exception when it tried to execute a privileged instruction. So the exception handler become the second core part of first VM, simulate the privileged instruction. So instead of talking to a real channel (the I/O link on the 360) emulate that channel translated to real channel requests, but with different device emulation for each instance of the OS running, i.e. virtual disks, card readers, printers, etc.

So now the OS could be fooled into believing it actually owned all the hardware resources when in fact it didn't, but if the emulation was correct the OS would never know and software testing and debugging could proceed.

Now this was in the era where 100Megs was BIG disk, so the disks for each VM just became files on the real disk, ta-da, sound familiar.

And so forth. It actually worked and I was lucky enough to actually get use CP/67, really using it just as a time-sharing system. (CMS, the component from Lincoln Labs functioned as the equivalent of the "shell", in today's parlance, so this is the "UI" you actually saw). Cambridge Scientific Center was in same building as MIT's Multics development so there was a lot of synergy between the groups.

So what happened to this pioneering innovation. Well, first (IMHO) it got lost in internal IBM politics. IBM had the "official" time-sharing product, TSS, which was, again IMHO, awful. But like a cat, despite it many flaws, it had nine lives and the blessings of IBM and overshadowed CP67 which was both superior and much more interesting, esp. to "system programmers" (the people at customer sites who had to install new OSs, so the testing was hugely useful, so live production didn't have to be disrupted)

So the CP67/CMS "product" was only available to universities and a few other think tanks, courtesy of the fact that Brown University was one of the first users and a certain alum, T.J. Watson happened to want to give Brown whatever it wanted, regardless of the product management in 360-land.

Eventually IBM did release this as a general availability product (VM/370, IIRC) but they never promoted and it died out. But the concept struggled on and now has this remarkable rebirth today.

I find it interesting that we see something like VMWare, clearly a hot item today, as something novel. One of the few advantage of "experience" (i.e. being older) is having the historical perspective to see many "new" ideas as having their roots in something long ago.

Just thought you might find this nugget of historical trivia interesting.

The comments to this entry are closed.

Cloud Computing Journal
Top 100 Cloud Computing Bloggers