As an article at Wired reminds us, it was 47 years ago today, on April 7, 1964, that IBM first announced its System/360 family of what came to be called mainframe computers. It was an announcement that heralded something that was, at that time, really new: a range of computers, with capacities ranging from modest to powerful, that shared a common architecture, a (mostly) common machine instruction set, and the ability to share a set of common peripheral devices (such as tape and disk drives). It was a huge gamble on IBM’s part: the company invested about $5 billion in developing a range of compatible hardware.
System/360 components included the CPU, control unit, display terminal, printer, data-cell storage, drum storage, disk storage and DASD control unit, tape storage, a tape control unit, card reader–card punch combination, console station and console typewriter.
Previously, computer systems had been, if not custom made for a particular installation, at least somewhat idiosyncratic affairs. Manufacturer ABC’s Model Y might be a big improvement and have more capacity, compared to Model X, but it was unlikely to be easy to “upgrade”.
The really important idea behind the System/360, though, was much more important than compatible hardware: all the computers in the System/360 series had the same architecture, and could run the same programs. The nascent idea of portable programming had already manifested itself in the development of high-level languages, like FORTRAN and COBOL. But the System/360 promised more: portability at the machine code level; an Add Register (AR) instruction, or a Move Characters (MVC) instruction, meant the same thing across the range of System/360 models. This was a degree of compatibility not seen previously; it meant that, if you had a program — an object code program — that ran on a System/360 Model 30, it would run, without changing or even re-compiling, on a System/360 Model 50.
IBM’s gamble was a huge commercial success. The first System/360 machines were delivered in 1965; by a year later, IBM was selling ~1000 systems per month, at an average price of $2-3 million.
That success helped the System/360 establish some de facto standards, like the 8-bit byte and 4-byte words, which we still have. (Previous computers had featured an odd array of word lengths, form 8 to 36 bits.) The architecture also provided the first quasi-standard format for floating point data and computations, a standard that lasted until it was superseded by IEEE-754 floating point in 1985. The project also produced some very fine documentation; that it could be useful across the product line probably helped convince everyone that it was worth doing the job well. I still have my well-used copy of IBM System/360 Principles of Operation [GA22-6821], the architecture reference manual, which in my opinion is one of the finest examples of technical writing I have ever seen. Fred Brooks, the project manager for the OS/360 operating system, wrote The Mythical Man-Month, which should be a must-read for any software project manager.
None of this is to say that the System/360 was perfect. It had its share, at least, of ugly features, especially on the software side (The Mythical Man-Month has a few choice examples). But there was enough fundamental sense in its design that it has lasted this long — as with UNIX, first released in 1969. And, as I learned in a casual conversation recently, there is a small library of FORTRAN “helper” routines, for things like manipulation of special character strings and dates, that I wrote ~35 years ago, in assembler for the System/360, that is still going strong.