VMware and other systems that allow you to run multiple virtual machines on a single server have become very popular. But virtual machines are much older than most people think. It started already back in the 1960s.
Computers started to get powerful enough to run time-sharing systems in the 1960s. But developing such complex software was from an easy task. Plenty projects were started but most of them run into trouble and failed to produce anything useful. But a few of the projects managed to develop good software, for example CP-40 and CP-67. CP-40 was a project that tried to develop a time-sharing system for the IBM/360 series of computers. At the end of 1964, Robert J. Creasy and Les Comeau started to design CP-40, which is considered by many the first successful virtual machine operating system.
CP-40 was made up of two main parts, CP and CMS. The control program (CP) ran on the physical hardware and created multiple virtual environments. Today, it would be called the hypervisor. CMS (Cambridge Monitor System) was a simple interactive single-user operating system designed to run in a virtual machine created by CP. An operating system running in a virtual machine is also called a guest operating system. CP-40 (both CP and CMS) were developed at IBM’s Cambridge Scientific Center (CSC) in Cambridge, Massachusetts, with the help of staff from MIT. IBM would later change the name to Conversational Monitor System.
CP-40 was only run on an IBM System/360 Model 40 at CSC, modified by the addition of an associative memory device for dynamic address translation. The new IBM System/360 Model 67 (S/360-67) offered a number of new interesting features. CP-67 was developed to take advantage of these new features. CP-67 became a success, it run on at least 44 different machines. This despite the fact that IBM was not especially keen on distributing it. It was delivered in source for as unsupported software, it was up to the users to turn the code into a working operating system. One reason for IBM’s lukewarm support of CP/CMS was probably because IBM tried to promote the Time Sharing System (TSS/360) as the operating system for the IBM/360 computers. 44 computers may not sound much today but in 1970, it was a significant part of the total number of mainframes around the world.
IBM failed to develop TSS/360 into a reliable system and the product was after a while withdrawn. Thanks to the success of CP-67, IBM started to get more interested. One of the reasons for the success of CP-67, or CP/CMS as it was also called, was that it was distributed to sites in source code format. Everyone running the operating system could make improvements. A VM community was created which distributed improvements. After a while, CP/CMS had become an efficient operating system, making it feasible to run IBM’s main operating systems as guest systems under it. This feature would turn out to be crucial for the survival of CP/CMS and the future versions of the VM operating system.
IBM mainframes were expensive and having a test system was often very important. Even inside IBM, CP/CMS was used to run multiple operating systems on the same physical machine. The IBM/360 mainframes had been a huge success, in 1970 the successor was announced, the IBM/370 series. Initially, IBM hoped that there would be no need for customers to run CP/CMS. IBM was not interested in funding the development of CP/CMS for IBM/370. But the VM community found some unorthodox ways of funding the development and the result was VM/370. According to some sources, the ability to run virtual IBM/370 machines under CP was crucial for the survival of the VM operating system. This feature was used inside IBM by the MVS developers, without VM they would not have enough IBM/370 systems for creating IBM’s primary mainframe operating system.
IBM would after a while start to distribute VM/370 in source code format but it was quite clear that it was not IBM’s main operating system for mainframes. According to some sources, one of the main reasons was that VM/370 was much more efficient than MVS. This reduced the amount of hardware customers needed, which reduced IBM’s turnover and profit. Obviously, this is not an official IBM statement.
VM would continue to be developed but it was always the second operating system for IBM mainframes. VM would over the years survive numerous attempts to kill it. The main reason for its survival was its efficiency. VM continued outperformed MVS, especially for interactive use. Another reason was the possibility to run MVS as a guest operating system under VM, saving customers a lot of money by not having to buy an additional IBM mainframe for testing purposes.
The current version of VM is z/VM, which includes the possibility of running Linux as a guest operating system. Nowadays, hypervisors as they are typically called have become very popular. But instead of running on mainframes, they are running on Intel platforms. But it all began back in the 1960s with CP-40 and the early IBM/360 mainframes.