Bare
hardware
In the
earliest days of electronic digital computing, everything was done on the bare
hardware. Very few computers existed and those that did exist were experimental
in nature. The researchers who were making the first computers were also the
programmers and the users. They worked directly on the “bare hardware”. There
was no operating system. The experimenters wrote their programs in machine or
assembly language and a running program had complete control of the entire
computer. Often programs and data were entered by hand through the use of
toggle switches. Memory locations (both data and programs) could be read by
viewing a series of lights (one for each binary digit). Debugging consisted of
a combination of fixing both the software and hardware, rewriting the object
code and changing the actual computer itself.
The lack
of any operating system meant that only one person could use a computer at a
time. Even in the research lab, there were many researchers competing for
limited computing time. The first solution was a reservation system, with
researchers signing up for specific time slots. The earliest billing systems
charged for the entire computer and all of its resources (regardless of whether
used or not) and was based on outside clock time, being billed from the
scheduled start to scheduled end times.
The high
cost of early computers meant that it was essential that the rare computers be
used as efficiently as possible. The reservation system was not particularly
efficient. If a researcher finished work early, the computer sat idle until the
next time slot. If the researcher’s time ran out, the researcher might have to
pack up his or her work in an incomplete state at an awkward moment to make
room for the next researcher. Even when things were going well, a lot of the
time the computer actually sat idle while the researcher studied the results
(or studied memory of a crashed program to figure out what went wrong). Simply
loading the programs and data took up some of the scheduled time.