|San José State University|
& Tornado Alley
An operating system is a program that runs on a computer to simplify the use of the computer for the user. The operating system manages the use of peripheral devices such as printers, monitors and keyboards. In addition the operating system will run other programs and display the results. In order to carry out these functions the operating system has to require a systematic structure for the inputs and outputs; there is a definite structure to files and there is a systematic way in which the files are stored on the data storage devices. Without an operating system a computer is largely an unresponsive hunk of metal and wires.
Although now the concept of an operating system appears to be a natural and obvious one, operating systems evolved over a considerable period of time. The first electronic computers were hardwired to carryout systematic computations. Initially the computations were for ballistics table. The user would wire direct connections between the various components of the computer through a plug board. When the computations were finished the next user would have to pull out the wires and rewire for the next set of computations. This was monumentally cumbersome by today's standard but a marvelous advance in speed and accuracy over hand computations with pencil and paper.
The first technological breakthrough came with the creation of internally stored programs. This involved memory with memory locations with addresses. A program was then the loading of information in a set of memory locations. The information at a memory address consisted of two parts. One part was the code for the operations which the computer could perform such as adding numbers together. The second part was the address of the next memory location in the sequence. Thus the computer would retrieve the contents of one memory location which would tell it which operations to carryout and which memory address to go to for instructions for the next step in the computations. The idea for this internally stored program is generally associated with the mathematician, John von Neumann.
When computers became more technically complex the users could not have direct access to the equipment. Instead it was necessary for the users to record their programs on punched cards or punched tape which would be given to professional computer technicians to run on the computer. During this stage the computers filled a good sized room and required air conditioning to control temperature and humidity.
The computer programs had to be run in batches and there had to be separate programs to handle the reading in of data and the output of the results. One job had to be completed before the next could run. It was efficient to arrange for the reading-in of programs to memory storage while another program was running because the computation time on the computer was often far quicker than the operation of reading in the information for computation.
Sometimes one program would be paused while waiting for the completion of some peripheral operation such as printing. Computer systems designers created the systems programs to make it possible to run another program for a short period while the first program's computation was paused. And of course the second program could also be paused so provision was made to bring in a new program when the other programs were paused. The computer would have to go back to previously initiated programs once they were ready to compute again. This was called multiprogramming and the specific operation was called spooling, which was the acronym for simultaneous peripheral operation on line.
The next step was to allow several users to share the use of the computer simultaneously. The computer would run one user's job for a prescribed short period of time and then move on to the next user's job. This was called time-sharing. It allowed for allocating the period of computation on the basis of the priority rankings of the various jobs.
With time-sharing came the possibility of interactivity. With the users providing input from terminals one user's program might be paused for a relatively long time while waiting for input from the user. The computer was so fast that each user might not perceive any delay from the computer switching among the other users' programs.
Time sharing was an enormous improvement for computer users. Under the previous system of batch operation a user might have to wait days to get the results back from a job. The result might be the statement that the program did not run because of a programming error or an error in the data. These were often errors that could be corrected during an interactive time sharing session.
In the late 1960's M.I.T. had a time sharing operating system called MULTICS, the name indicating it was a multiple user system. Ken Thompson was working at Bell Labs in New Jersey and was given the use of a PDP-7 minicomputer. He decided to create an operating system for the minicomputer for the convenience it provided even though there would be only one user. Initially he called this operating system UNICS in analogy with MULTICS but later changed the spelling to UNIX. At the same time Dennis Ritchie was involved in the creation of the programming language "C," so named because it was modeled on the programming language developed in Britain called "B." The collaboration between Ken Thompson and Dennis Ritchie has been quite fruitful over the years. UNIX and C have also been closely linked.
UNIX was an important innovation in computer. It is awkward but the computer professionals were perfectly willing to tolerate its difficulties in order to get the power it gave them access to. UNIX's shortcomings were not considered notable at the time. The concept of user-friendly software came a decade later. UNIX users were more concerned that something could be achieved at all rather than whether it required use of non-mnemonic commands.
The use of UNIX spread around the country and initially Bell Labs gave it away free. Later Bell Labs realized that UNIX had commercial potential and arranged for the marketing of it.
With the concept of operating system widely popularized it was standard practice to develop an operating system for each new line of computers. About this time the personal computer was developed.
Gary Kildall of the Naval Postgraduate School in Monterey, California acquired one of the early personal computers and he immediately proceeded to develop an operating system for it. He called the operating system CP/M, for Control Processor Monitor. It was the first operating system for a personal computer. The story of Gary Kildall and IBM and Bill Gates and the Disk Operating System (DOS) is told elsewhere.
At Apple Computer the personal computer was undergoing major evolution. One element of that evolution was the creation of a new operating system which utilized graphic input from a new peripheral, the mouse. It was the most user-friendly of the systems up to that date.
Microsoft rose to fame and power on the basis of the Disk Operating System, one of the most dramatic business coups of the twentieth century. But while DOS was great it lacked the ease of use of the Apple system so Microsoft launched a project to create an operating to achieve the ease of use of Apple's operating system. The result was Windows. The first versions were not spectacularly successful technically and commercially but Microsoft continued to develop Windows until it became virtually the universal operating system for personal computers. This was in part due to the technically capabilities and ease of use of Windows but it was also due to the marketing practices of Microsoft which resulted in every personal computer coming with Windows so the acquisition of any other operating system would superfluous and costly.
There has been some competition for Windows. A college student in Finland, Linus Thorvald, developed a version of UNIX as an operating system for personal computers. This operating system is called LINUX after Thorvald's first name. Linus Thorvald, in addition to writing the code for components of LINUX himself, organized a community effort among programmers to get the code created and tested. LINUX was made free to the general public.
Sun Microsystems in the Silicon Valley also developed the Solaris operating system, which competed with Windows among computer professionals, particularly the one using the work station computers manufactured by Sun Microsystems.