MCP was originally written in 1961 in ESPOL (Executive Systems Problem Oriented Language).
For this reason, Burroughs was free to distribute the source code of all software it sold, including the MCP, which was designed with this openness in mind.
For example, upgrading required the user to recompile the system software and apply any needed local patches.
At the time, this was common practice, and was necessary as it was not unusual for customers (especially large ones, such as the Federal Reserve) to modify the program to fit their specific needs.
Burroughs was not the first manufacturer to distribute source code and was a late entry to electronic computing (compared to its traditional rivals NCR, IBM, and Univac).
The MCP was the first commercial OS to provide virtual memory, which has been supported by the Burroughs large systems architecture since its inception.
This scheme is unique in the industry, as it stores and retrieves compiler-defined objects rather than fixed-size memory pages, as a consequence of its overall non-von Neumann and uniformly stack-based architecture.
Donald Knuth also had influence during this period, becoming consultant to Burroughs Corporation, joining the Product Planning Department from 1960 to 1968.
He refers to “a control program” (presumably the MCP then under development) in his book ‘Fundamental Algorithms’ in section 2.5 on Dynamic Storage Allocation, Knuth claims credit for “The “boundary-tag” method, introduced in Section 2.5, was designed by the author in 1962 for use in a control program for the B5000 computer.”[4]: 460 Unisys stopped producing the hardware in the early 2010s, and the operating system is now run under emulation.
Disks can also be concatenated so that a single volume can be installed across several drives, as well as mirrored for recoverability of sensitive data.
The MCP implements a Journaling file system, providing fault tolerance in case of disk failure, loss of power, etc.
Because the syntax and behavior of the two differ to such a large extent, choosing the same name has only led to confusion and misunderstanding.
In addition, attributes are set to allow the program to determine what happened and where (including the specific line number).
Memory needs to be allocated at process initiation and whenever a block is entered that uses arrays, files, etc.
BLOCKEXIT may in turn call FILECLOSE, FORGETSPACE or the like while cleaning up and releasing resources declared and used within that block.
J_EDGAR_HOOVER is the main security guardian of the system, called upon at process start, file open, user log on, etc.
When DEATH is caused the task gets put into the queue structure the MORGUE, after which all remaining resources are freed to the system by a process called PROCESSKILL.
Libraries were introduced to MCP systems in the early 1980s, having been developed by Roy Guck and others at Burroughs.
They are very much like C. A. R. Hoare's monitors and provide the opportunity for controlled mutual exclusion and synchronization between client processes, using MCP EVENTs and the Dahm locking technique.
The advantage is that all synchronization is provided in the library and client code does not need to worry about this level of programming at all.
It was designed specifically for COBOL, where a rununit is defined as the original initiating client program and all the libraries it has linked to.
A library with linkage class one that needs to offer entry-points to normal programs can do so if it is designated as ‘trusted’.
For example, the networking component of the operating system is available as a connection library, allowing other programs to use its services by exporting and importing functions.
For large installations, many operators might be required to make physical resources, such as printers (loading paper, toner cartridges, etc.)
An operator can force a task into the waiting entries with the stop command '3456ST' and make it active again with OK: '3456OK'.
System logs contain a huge amount of information, which can be filtered and analyzed with programs such as LOGANALYZER.
As all compilers added LINEINFO into the code-files, the DUMPANALYZER is able to pinpoint exactly which source statement was being executed at the time of error.
Many of the suggested patches were included by the systems developers and integrated into the next version of the MCP release.
Including a community of voluntary, self-professed experts, into mainstream technical work, is now widely practised and is the essence of open innovation.
Over its 50-year history, it has had many firsts in a commercial implementation, including virtual memory, symmetric multiprocessing, and a high-level job control language (WFL).