Information Technology Reference
In-Depth Information
in one program could corrupt data structures in other applications. Like-
wise, downloading and installing a screen saver or other application should
not crash other unrelated programs, nor should it be a way for a mali-
cious attacker to surreptitiously install a computer virus on the system.
Nor should one user be able to access or change another's data without
permission.
Fault isolation requires restricting the behavior of applications to less than
the full power of the underlying hardware. Given access to the full capabil-
ity of the hardware, any application downloaded of the web, or any script
embedded in a web page, would have complete control of the machine.
Thus, it would be able to install spyware into the operating system to
log every keystroke you type, or record the password to every website you
visit. Without fault isolation provided by the operating system, any bug
in any program might cause the disk to become irretrievably corrupted.
Erroneous or malignant applications would cause all sorts of havoc.
Communication. The flip side of isolation is the need for communication
between different applications and between different users. For example, a
web site may be implemented by a cooperating set of applications: one to
select advertisements, another to cache recent results, yet another to fetch
and merge data from disk, and several more to cooperatively scan the web
for new content to index. For this to work, the various programs need
to be able to communicate with one another. If the operating systems
is designed to prevent bugs and malicious users and applications from
affecting other users and their applications, how does the operating system
support communication to share results? In setting up boundaries, an
operating system must also allow for those boundaries to be crossed in
carefully controlled ways as the need arises.
In its role as a referee, an operating system is somewhat akin to that of a
government, or perhaps a particularly patient kindergarten teacher, balancing
needs, separating conflicts, and facilitating sharing. One user should not be
able to hog all of the system's resources or to access or corrupt another user's
files without permission; a buggy application should not be able to crash the
operating system or other unrelated applications; and yet applications also need
to be able to work together. Enforcing and balancing these concerns is the role
of the operating system.
Exercises
Take a moment to speculate. We will provide answers to these questions
throughout the rest of the topic, but given what you know now, how would you
answer them? Before there were operating systems, someone needed to develop
solutions, without being able to look them up! How would you have designed
the first operating system?
Search WWH ::




Custom Search