Operating Systems came after human operators

Operating system software has inherited some of the role that human operators had in the early days of electronic computers, preparing a sequence of computer jobs to be run on computers. As the required preparation (loading mass storage data into memory, setting the PC to the appropriate address, etc.) came under computer control, this job control function became a computer program that ran batches of jobs. You might prepare punch cards for days, wait for your pile of cards to have its 30 seconds of time on the computer, and then find a bug that required you to change your punch cards, and then resubmit your job.

This form of delayed gratification wasn't appropriate for many sorts of computer work, and job control software (a precursor of what we now think of as an operating system) was developed and could provide the users with output in real time (nearly instantly). Notice that "users" is plural, so that this interactive feedback had to be provided to dozens of users of a single machine at virtually the same time, rather than have nearly everyone wait for the first in line to be finished. This semblance of instantaneous feedback was achieved by having a single CPU "slice" time (currently into about 20 slices/second) between the various users. Time-slicing gave illusion that each user used their own machine even though the CPU could only work on one task at a time. A little surprisingly, this turned out to be quite efficient, since, without time-slicing, CPUs spent a great deal of time waiting for resources to become available (a key to be pressed, a sector to be retrieved from a drive, a printer to stop being busy). Many "cycles" of work could be finished while they waited.

personal computer OSs

With the arrival in the 1970s of single-user personal computers came the possibily of operating systems for environments where the resources were not shared among human users. Initially this often meant that no operating system was required --- each application took charge of the low-level details such as how to address locations in mass storage (a cassette tape in my old acorn atom), and there was only a single application running at a time (typically a game or hobby application), so no time-sharing was required.

Rudimentary operating systems for personal computers meant that the details of interacting with hardware could be delegated to hardware drivers, so that applications (games, word processors) could more easily be written to run on different machines. CP/M and Gecos were examples of these from the 70s (sometimes called disk operating systems, after their most salient function), and operating systems for Apple computers and DOS, for IBM computers made their appearance.

Eventually, even single users wanted to run multiple applications, so task-switching, and finally time-slicing began to become part of desktop operating systems. The shell that users launched applications from moved from a character-based interface (which I still often use) to a GUI interface (MAC and Windows).

Eventually, the power of hardware available for personal computers both demanded and made possible some of the features that first developed on mainframes: time-sharing between multiple users, complete networking capabilities, accounting and logging of all system activity. Unix (an OS developed for large, multi-user environments) found its way to the personal computer in the form of Linux and the Mac's OSX, and many of the capabilities of unix found their way to the desktop with MicroSoft?'s NT and derivatives.

With any flavour of operating system, we expect:

It is occasionally difficult to draw the line between the kernel, system utilities, and applications that are used by ordinary users.

OS wars

Operating systems are often closely associated with the CPU (or family of CPUs) they were developed to work with: DOS and Windows with Intel, Macs with Motorolas, for example. They are also often associated with an application that was first, or best, developed and bundled with a particular OS: MS Word with Windows, or multi-media applications with Macs, for example. Advocates of a particular OS can talk your ear off about its virtues, although most modern OSs will provide you with a useable computer. Some generalizations: