Monday, December 13, 2010

The World’s First Computer Operating System Implemented at General Motors Research Labs in Warren, Michigan in 1955

Steve Holland from General Motors Research Laboratories said an interesting text about two of the three earliest operating systems: General Motors OS and GM-NAA I/O. I am publishing it here because when I tried to find some resources about this operating system, I realized that there are no a lot of sources on the Internet.

There is an interesting, but little known, relationship between the first FORTRANcompiler on the IBM 704 and the early development of operating systems. In 1955, what was probably the first operating system had been developed and was in use at theGeneral Motors Research Laboratories. Called the I/O system, it was a three-phase
system in that a batch of jobs was processed entirely with regard to input formats, then the entire batch was processed for execution, and finally the entire batch was processed for output conversion and printing. There were no higher-level languages in that system.

Shortly thereafter, IBM released the first version of the FORTRAN compiler as a set of programs on a magnetic tape, but without any listings of the source programs. The compiler itself consisted of a short bootstrap record on the tape, followed by many short records, each fully aware of the position of every other record on the tape, so that when a new procedure was to be brought in by loading another record from the tape, it was usually found by rewinding the tape and spacing out the appropriate number of records. Even this much organization had to be deduced without any documentation or listings.

Jim Fishman at General Motors did this analysis by obtaining an octal dump of the entire tape. He very carefully analyzed each instruction until he understood how the system worked. Without disturbing the order of the records, he then expanded some of them to include other components of what later became the excellent General Motors Research operating system. Thus the bootstrap loader grew from about 20 instructions to several thousand when it became the assembler preceded by the bootstrap loader in the same record. Later a relocatable loader was added, as well as other functions that we would now recognize as appropriate to an operating system. All this while FORTRAN never knew what happened!

A couple of years later, we adapted this operating system to our needs, beginning a long history of operating-system development at the University of Michigan.