DOS Lesson 1: Operating Systems

What is an Operating System?

In any course of study, such as this on-line study group on DOS, you need to carefully define your terms. Since everyone reading this is on-line, by definition, let’s use an on-line resource. An excellent one for our purposes
is the Webopedia, which can be found at:

http://webopedia.com/

You should bookmark this resource since I will refer to it for definitions of terms in coming weeks. In this case, the term “Operating System” is defined at:

http://webopedia.com/TERM/o/operating_system.html

The short definition is that the operating system is software that sits between the hardware and the applications.

The earliest computers did not have operating systems. The earliest computers were programmed by changing the wires that connected different vacuum tubes which functioned as bits in the days before transistors and then Integrated Circuits. To run a different program you would have to move and reconnect many wires, which was a very laborious task. Still, it was something you would do if you were highly motivated to do so, as in World War II. After the war, mainframe computers were developed, but they were big, room-size monstrosities which explains why Thomas Watson, CEO of IBM, said that he only saw a market for “maybe five computers in the world“.

The change came when people started to realize that the big mainframe computers were sitting idle too much of the time because they could only run one program at a time. And as computers got faster, it was taking longer to set up a program to run than it took to run the program. So the first “time sharing” systems were developed, and these are in some sense the first operating systems as we know them today. One notable one was developed at MIT and called “Multics“, short for Multiplexed Information and Computing Service. This system influenced a couple of Bell Labs researchers, Ken Thompson and Dennis Ritchie, to create a somewhat simpler operating system and they chose the name Unix (originally Unics) as a pun.

But what about personal computers? The first widely used PC operating system was CP/M, from Digital Research, which was developed for early computers that used the Intel 8080 processor. When IBM was looking for an operating system for their first personal computer they first tried to license CP/M at the recommendation of Bill Gates, at the time the head of a small software company producing and selling BASIC for personal computers, but the head of Digital Research, Gary Kildall, would not meet with them. So Gates jumped in and said his company, called Microsoft, would sell them an operating system. Microsoft then licensed a program called 86-DOS from a company called Seattle Computer Products, rebranded it as MS-DOS, and the rest is history. 86-DOS was basically a clone of CP/M, but did have a few improvements. And this became the DOS we all know today.

In theory, we do not need operating systems today, though computing would be much less efficient without them. For example, users of the old WordPerfect for DOS may recall that this word processing program came with its own printer drivers, and without a printer driver in the application software you could not print. Today, users of word processing packages never think about this. The operating system loads the printer drivers and makes the printer available to any application. So the first principle we can discern about operating systems is that they can make applications easier to create and run by relieving them of certain tasks.

The next characteristic of operating systems is that they control access to and allocation of resources. Imagine if your printer received print instructions from two different programs and began printing from both of them simultaneously. The resulting document would not be useful.<g> On a more fundamental level, the normal desktop computer has a single CPU that handles all operations the computer does. The operating system determines which programs will have access to the CPU and under what conditions. Similarly, the operating system controls which program can write data to a disk, or draw something on the screen.

The third characteristic of operating systems is the they create a user interface through which the user interacts with the computer. In the earliest computers, the interface consisted of things like punched cards and paper tape, created by specialized keyboard devices. Then monitors and other terminal devices were added, though input was still achieved largely through the keyboard and information was in the form of text. Doug Engelbart at Xerox’s Palo Alto Research Center (PARC) showed the way to a different interface, the Graphical User Interface, or GUI (pronounced “gooey”), in his famous demonstration in 1968 which employed a three-button mouse and a clickable bitmapped screen image. This interface became the Apple Macintosh and Microsoft Windows, to name the two best-known heirs of the PARC research effort. For more on this, take a look at the book Fumbling the Future: How Xerox Invented, Then Ignored, the First Personal Computer by Douglas Smith and Robert Alexander. It is
quite likely that future interface design will take us away from mouses and
monitors to things like voice interaction, and maybe to direct brain connections like Cyberpunk writers have hypothesized.

For a fascinating discussion of interfaces and related matters,
I recommend reading the article by Neal Stephenson called In
the Beginning was the Command Line
.

DOS as an Operating System

Microsoft’s DOS is an example one kind of operating system, a fairly simple one, which first appeared in 1981 on the IBM PC. The interface was what we call a command line interface, meaning that there was no mouse, no menus, or any graphical components. Text commands were entered from the keyboard, and the computer’s response appeared as text on the monitor. DOS controlled some aspects of the computer hardware, particularly disk access and basic CPU operations, but it was still common to need to configure the video display, sound card, printer, etc. for each application that would use them. DOS was a single-tasking operating system, which meant that only one program could be run at a time.

So in many respects DOS was a primitive OS. It was based on previous
systems, of course, and echoes of UNIX and CP/M can be seen in it. But if you read Stephenson’s article above, you will realize that it had hidden power, as well, because you could interact more directly with the components of the computer than you can with some more modern operating systems. It is this power that makes it valuable to know DOS today. The majority of computer users today use graphical systems, but users of Windows, for instance, have the ability to interact with the computer through DOS (or in the case of NT, with a DOS-analogue) to do things which are difficult or impossible to accomplish through the graphical interface. For this reason, familiarity with DOS is still considered essential for anyone supporting Intel-based machines running Windows.