History of Operating Systems – 1: The Pre-UNIX Era

22.09.2026 · Berkay Arabacı

The fundamental software that manages the operation of many electronic devices we do not define as computers is called an operating system. From phones and computers to smart televisions and servers, many devices establish communication between hardware and the user through an operating system.

Today, operating systems have become highly advanced and easy to use. However, this was not the case in the past. On the first computers, programs had to communicate directly with the hardware, operations had to be prepared by operators, and each program had to be loaded into the machine with great care.

Each new operating system evolved into a more advanced structure by drawing on the experience of earlier systems. This article is the opening chapter of our series examining the historical development of operating systems. We will first discuss why an operating system was needed and then examine the important systems developed before UNIX.

The term Operating System is commonly abbreviated as OS. This abbreviation also appears in the names of operating systems such as macOS and ChromeOS.

What is an operating system?

An operating system is the fundamental system software that manages a computer’s hardware resources and enables users or applications to make use of those resources easily.

Hardware such as the processor, memory, disk, display, keyboard, printer, and network connection is managed by the operating system. An application does not need to know every technical detail of the hardware in order to save a file or send an image to the screen. The operating system handles these tasks.

For this reason, the operating system acts as an intermediary between the user and the hardware. It also manages running programs, files, user accounts, and the resources available to the computer.

Why was an operating system needed?

The first electronic computers were very different from the modern computers we use today. These machines generally focused on a single task, took a long time to prepare, and were operated directly by operators.

Programs were loaded into the computer using punched cards, magnetic tapes, or direct machine controls. Once a program had finished running, the next program had to be prepared. This process was both time-consuming and prone to human error.

As computer processing speeds increased, another problem emerged. Even though the processor was ready to perform calculations, it had to wait for cards to be inserted, tapes to be mounted, or the next program to be prepared. As a result, these extremely expensive computers remained idle for a significant portion of the time.

To solve this problem, software was needed to organize the computer’s job queue automatically, manage input and output operations, and allow different programs to use the same machine.

The idea of the operating system arose from this need. While the earliest systems simply queued and ran jobs, later operating systems made it possible to manage multiple processes at the same time and for different users to share the same computer.

In this way, computers ceased to be machines that merely performed calculations and began to evolve into general-purpose systems that managed users, programs, and hardware resources.

How did the first operating system emerge?

The expression “first operating system” can vary depending on how an operating system is defined. Some early systems only automated input and output operations, while others took on broader tasks such as job scheduling and user management.

For this reason, GM-NAA I/O is generally regarded as one of the first examples of a general-purpose operating system. It was developed in 1956 by the General Motors Research Division and North American Aviation for the IBM 704 mainframe.

The main purpose of GM-NAA I/O was to queue the jobs submitted to the computer and run them with less operator intervention. The system automated repetitive operations such as loading and running programs and collecting their output.

At that time, operating systems were not general products that could be installed on different computers as they are today. They were generally developed specifically for a particular computer model or an institution’s needs.

Operating systems before UNIX

Before UNIX emerged, different computer manufacturers and research institutions developed operating system solutions suited to their own needs. These systems did not have all the features of modern operating systems, but they laid the foundations for many of the fundamental approaches we use today.

Batch processing: The batch processing era

Batch processing was the most common working method in the earliest operating systems. Users’ programs and data were collected together and then run on the computer in a predetermined order.

The user could not interact directly with the computer while the program was running. Nevertheless, this method reduced the manual work performed between programs and allowed computers to be used more efficiently.

BESYS

BESYS was one of the early operating system environments developed by Bell Labs for use in its internal computing work. It enabled scientific and engineering calculations in particular to be carried out in a more organized manner.

The importance of BESYS lies in the fact that Bell Labs developed an operating system in line with its own needs and gained significant experience in this field. This experience also contributed to the creation of the technical environment in which UNIX would emerge in later years.

Click here for detailed information about Bell Labs.

CTSS and time-sharing

CTSS, or the Compatible Time-Sharing System, developed in the early 1960s, introduced an important change in computer use. Developed at MIT under the leadership of Fernando Corbató, the system divided a mainframe’s processing time among multiple users.

Users could connect to the same computer through terminals, enter commands, and see the results without waiting. The computer thus ceased to be a machine managed solely by operators and became a system used interactively by multiple people.

MCP

The Master Control Program, or MCP, developed for the Burroughs B5000 family, represented a different approach to operating system design. The system managed tasks, files, users, and program execution in a more integrated manner.

MCP demonstrated that operating systems did not have to be merely auxiliary software close to machine code; they could be designed as a safer, more abstract, and more organized software layer.

EXEC

EXEC and the later EXEC 8 systems developed for the UNIVAC computer family enabled large computers to be operated and the jobs of different users to be managed.

These systems handled tasks such as running programs, queuing jobs, file operations, and input-output management. Operating systems thus began to evolve from small programs that automated a specific task into comprehensive system management tools.

OS/360

OS/360, developed for the System/360 computer family announced by IBM in 1964, was one of the most comprehensive projects in the history of operating systems. IBM aimed to unite computers with different features and performance levels within a common architecture and software approach.

OS/360 supported various modes of use, including single-program operation, multiprogramming, and the management of different workloads. The scale of the project showed that operating system development had become as complex and strategic an undertaking as hardware development.

Multics and its influence on UNIX

Multics was a multi-user operating system project developed jointly by MIT, General Electric, and Bell Labs. Its purpose was to transform computers into general-purpose computing services that many people could use at the same time.

Multics brought together many important ideas in a single system, including time-sharing, virtual memory, a hierarchical file system, user access control, and security.

The project’s scope was extremely broad, and its development process became more complex than expected. Bell Labs withdrew from the project in 1969; however, the experience gained while developing Multics played an important role in the birth of UNIX.

UNIX was not a direct copy of Multics. However, concepts such as multi-user operation, file systems, process management, and resource sharing provided an important background for the design of UNIX. For this reason, it is necessary to understand the Multics era in order to understand the emergence of UNIX.

Conclusion

Operating systems emerged from the need to make computers more efficient, more orderly, and accessible to more people. While the first systems focused on queuing and running jobs, features such as multiprogramming, user management, and time-sharing were developed over time.

GM-NAA I/O, BESYS, CTSS, MCP, EXEC, OS/360, and Multics represent different stages of this development. Each drew on the experience of the systems that preceded it and helped bring the concept of the operating system closer to its present form.

In the next part of the series, we will examine how UNIX emerged, the role of Bell Labs, and how the Multics experience influenced the design of UNIX.

References