# MUSIC/SP

MUSIC/SP (Multi-User System for Interactive Computing/System Product; originally McGill University System for Interactive Computing) was developed at McGill University in the 1970s from an early IBM time-sharing system called RAX (Remote Access Computing System).
The system ran on IBM S/360, S/370, and 4300-series mainframe hardware, and offered then-novel features such as file access control and data compression. It was designed to allow academics and students to create and run their programs interactively on terminals, in an era when most mainframe computing was still being done from punched cards. Over the years, development continued and the system evolved to embrace email, the Internet and eventually the World Wide Web. At its peak in the late 1980s, there were over 200 universities, colleges and high school districts that used the system in North and South America, Europe and Asia.
MUSIC was originally designed as a stand-alone operating system but with the advent of IBM's virtual machine facility, VM/370, it became more common to deploy MUSIC as a guest operating system running under VM/370.

## History

* 1966 – IBM Remote Access Computing System (RAX) released.
* 1972 – McGill's RAX modifications accepted by IBM for distribution as "Installed User Program" under the name of "McGill University System for Interactive Computing" (MUSIC).
* 1978 – MUSIC 4.0 Major change to file system providing longer file names and advanced access control.
* 1981 – MUSIC 5.0 Support for IBM 4300 series CPUs and FBA disks.
* 1985 – MUSIC/SP 1.0 Adopted by IBM as "System Product". Support for virtual memory.
* 1990 – MUSIC/SP 2.2, described by IBM as having "significant enhancements."
* 1991 – MUSIC/SP 2.3 Internet support and tree-structured file system.
Over the years the following people contributed to the MUSIC and MUSIC/SP systems. Roy Miller, Alan Greenberg, Wilf Mandel, Dave Edwards, Nelson Nguyen, Kevin McNamee, Don Farnsworth (IBM), Dean Daniele (IBM), Glen Matthews, Linda Chernabrow, Frank Pettinicchio, Earl Lindberg, Pierre Goyette, Kathy Wilmot, Simon Fulleringer, David Thorpe, Gerald Ratzer, Harry Williams (Marist College), Dave Juraschek (Northern Virginia Community Colleges), Christian Robert (Ecole Polytechnique), Simone Spiller, Silvino Mezzari, and Mike Short.

## Features
### File system

The MUSIC/SP file system was unique in a number of respects. There was a single system-wide file index. The owner's userid and the file name were hashed to locate the file in this index, so any file on the system could be located with a single I/O operation. However, this presented a flat file system to the user. It lacked the directory structure commonly offered by DOS, Microsoft Windows and Unix systems. In 1990 a "tree-structured" directory view of the file system was overlaid on this, bringing the system more in line with the file systems that were then available. By default the information stored in the files was compressed. This offered considerable saving in disk space. The file system had a fairly sophisticated access control scheme allowing the owner to control who could read, write, append to and execute the file. It also had the concept of a "public" file which was visible to all users and a "private" file which was only visible to the owner.

### Virtual memory

The initial versions of the system provided no support for virtual memory and address translation. Only one active user could reside in core memory at any time. Swapping (to disk) was used to time-share between different users, and a variable-length timeslice was used. Virtual memory support was introduced in 1985. This allowed multiple users to be in core memory at the same time, removed many of the restrictions in the size of the programs that could be run and provided a significant performance improvement. System performance was also improved by pre-loading commonly used modules into virtual memory at startup time where they could be available to all users simultaneously.

### Programming languages

The system was designed to support academic computing and the teaching of computer science, so a rich suite of programming languages was available. The system nucleus was written in IBM/370 assembler but most of the native applications were written in FORTRAN. The system supported the Waterloo WATFIV and WATBOL compilers and also provided compilers for Pascal, C, PL/I, BASIC, APL, ALGOL, RPG, and GPSS. The system was missing a command scripting language until REXX was ported from CMS in 1984. Later, in 1986, a complete user interface was written entirely in REXX.

### E-mail and the Internet

E-mail was one of the major applications on MUSIC/SP. The e-mail interface initially provided access to local e-mail. As the networks developed, this was expanded to provide access to BITNET and Internet based e-mail. MUSIC/SP did not have direct access to the Internet until 1990, when the University of Wisconsin WiscNet TCP/IP code was ported to the system, allowing the system to provide access to all Internet services.

### Compatibility with other IBM systems

A major feature of the system was its ability to run programs that were designed to run on IBM's mainstream operating system (MVS). This was accomplished using an MVS emulator that intercepted system calls at the Supervisor Call instruction (SVC) level. Most third-party applications ran in this mode. Rather than write their own version of an application, the MUSIC/SP developers would usually start from the MVS version and rebuild it to run in MVS emulation mode. Since the MVS emulation was a small subset of the real thing, the applications generally ran more efficiently on MUSIC/SP.

### Other features

One major advantage the system had in educational environments was that through the use of special lines called "control cards" at the top of a file, source files for any supported language could be automatically directed to the appropriate compiler (Fortran being the default), compiled, linked, and executed, (with compilation, linkage, and execution options also specified in control cards) simply by entering the filename on a command line.
A wide variety of terminals were supported as of 1980, including both EBCDIC-based units using IBM-proprietary protocols, and asynchronous ASCII-based units. Since terminals were connected through various types of front-end processors (as per common IBM timesharing practice both then and now), and could therefore function without CPU attention for a considerable amount of time, MUSIC used variable-length time slices, which could, on compute-bound processing, reach a maximum of several seconds per time slice; conversely, if a user filled the output buffer or reached a conversational read, the timeslice would end immediately.

## Emulation

The Sim390 emulator contains a demonstration system of MUSIC/SP. It is freely available and runs on Microsoft Windows. The demonstration system will also run under Hercules.