Information Technology Reference
In-Depth Information
than disk capacity. These relative changes have radically altered both the use
of computers and the tradeoffs faced by the operating system designer.
It is hard to imagine how things used to be. Today, we are able to carry
smartphones with incredibly powerful computers around in our pockets. Thou-
sands of server computers wait patiently for a user to type in a search query;
when the query arrives, the servers can synthesize a response in a fraction of
a second. In the early years of computing, however, the computers were more
expensive than the salaries of the people who used them. Users would queue up,
often for days, for their turn to run a program. A similar progression from ex-
pensive to cheap devices occurred with telephones over the past hundred years.
Initially, telephone lines were very expensive, so that a single line was shared
among everyone in a neighborhood. Over time, of course, both computers and
telephones have become cheap enough to sit idle until we need them.
Despite these changes, operating systems still face the same conceptual chal-
lenges as they did fifty years ago. To manage computer resources for applications
and users, operating systems must allocate resources among applications, pro-
vide fault isolation and communication services, abstract hardware limitations,
and so forth. Tremendous progress has been made towards improving the relia-
bility, security, eciency, and portability of operating systems, but much further
progress is still needed. Despite the fact we do not know how computing tech-
nology or application demand will evolve over the next 10-20 years, it is highly
likely we will continue to need to address these fundamental operating system
challenges in the future.
1.3.2
Early operating systems
The first operating systems were runtime libraries, intended to simplify program-
ming early computer systems. Rather than the tiny, inexpensive yet massively
complex hardware and software systems we have today, the first computers of-
ten took up an entire floor of a warehouse, cost millions of dollars, yet were only
capable of being used by a single person at a time. The user would first reset
the computer, load in their program, and hit go, producing output that could
be pored over while the next user took their turn. If the user made an error,
they needed to wait their turn to try the run over again, often the next day.
Although it might seem like there was no need for an operating system
in this setting, if computers are enormously expensive, anything that reduces
the likelihood of programmer error is extremely valuable. The first operating
systems were seen as a way of reducing errors by providing a standard set
of common services. For example, early operating systems provided standard
routines to perform input/output (I/O) processing, which each user could link
into their program. By using these services, a user's program would be more
likely to run correctly and produce useful output.
Even though these initial operating systems were a huge step forward, the
Search WWH ::




Custom Search