IBM CP-40 - CMS Under CP-40

CMS Under CP-40

CMS was first built in 1964 at CSC to run as a 'client' operating system under CP-40. The CMS project leader was John Harmon. Although any S/360 operating system could be run in a CP-40 virtual machine, it was decided that a new, simple, single-user interactive operating system would be best for supporting interactive time-sharing users. This would avoid the complexity and overhead of running a multi-user system like CTSS. (Contrast this with IBM's OS/MVT-TSO and its successors – essentially a time-sharing operating system running as a single task under an IBM batch operating system. With CMS, each interactive user gets a private virtual machine.)

By September 1965, many important CMS design decisions had already been made:

  • User-friendly commands, with default-mode, non-required parameters wherever possible (for ease of use and training, and to minimize job control requirements)
  • A basic set of file system commands and macros; a simple file naming convention, based on filename, filetype, and filemode (filemode = logical disk identifier or minidisk, a form of drive letter assignment)
  • Records mapped to fixed-size blocks, that could be read or written by relative record number
  • Files that could be created simply by writing to them, without the need for special 'create' operations
  • Default filemodes, allowing disks to be searched in a fixed order

These were radical departures from the difficult file naming, job control (via JCL), and other requirements of IBM's "real" operating systems. (Some of these concepts had been goals for operating systems from other vendors, such as Control Data Corporation and DEC.)

The CMS file system design, with its flat directory structure, was kept deliberately simple. Creasy notes: "This structure of multiple disks, each with a single directory, was chosen to be simple but useful. Multi-level linked directories, with files stored in common areas, had been the design trend when we began. We simplified the design of this and other components of CMS to reduce implementation complexity."

Application programs running under CMS executed within the same address space. They accessed system services, such as the CMS file system, through a simple programming interface to the CMS nucleus, which resided in low memory within the CMS virtual machine. A variety of system calls were provided, most of which would be familiar to current CMS programmers. (Since applications ran in the CMS virtual machine, they could potentially misbehave, by overwriting CMS data, using privileged instructions, or taking other actions that could take over or crash the virtual machine. Of course, doing so could not affect other virtual machines, which were all mutually isolated; nor could it damage the underlying control program. Unlike most operating systems, CP crashes rarely stemmed from application errors – and were thus themselves relatively rare.)

Read more about this topic:  IBM CP-40