INTRODUCTION
A ship in port is safe,
but that is not what ships are
for.
Sail out to sea and do new things.
-- Admiral Grace Hopper,
Computer Pioneer
Computer systems are continuing to evolve at a rapid pace. Based on
SPECint95 reports, system performance has doubled in the past seven
years roughly once every twenty months [96]. In 1965, Moore
predicted that the transistor density of semiconductor chips would
double roughly every twelve to eighteen months and his prediction has
largely held true ever since
[90, 69].1 To put this in perspective, the first microprocessor, the
Intel 4004, was implemented using only 2,300 transistors in a 16-pin
package. Twenty-seven years later, the DEC Alpha 21264 contains about
15.2 million transistors in a single 588-pin PGA package. Despite
this breathtaking pace, fundamental changes in the way we interact
with these systems are exceedingly rare. As we argue later in this
chapter, one such fundamental paradigm shift occurred when
time-sharing replaced batch-oriented systems. Paradigm shifts imply
deep changes in the way we perceive problems, the languages we use to
express them, and the infrastructure we employ to solve them. A
central tenet of this dissertation is that the world is facing another
paradigm shift that will lead us into the age of information
appliances. The aim of this work is to anticipate the changes
required to support the new appliance paradigm and to propose,
discuss, and evaluate an operating system infrastructure that will
serve well the needs of such appliances. Before going into more
detail, it is illustrative to give a brief history of operating
systems to this date.