Thinker Logo

User Interface
Virtual Machine
Virtual Memory
Curved Bar
Introduction to the Core of Information Technology

In 1893, the president of the newspaper guild organized a group 74 leading political, religious, business, industry, and civic leaders of the day to look ahead 100 years. (See Dave Walters, Today Then: 1993 as predicted in 1893, American and World Geographic Publishing, 1992.)

None foresaw one of the most significant inventions of the 20th century: the computer.

These leaders were not shy in their predictions about automobiles, telephones, electricity, longevity, politics, women's rights, poverty, wealth, pollution, and war. And yet --- scarcely any of their predictions came true. A few foresaw a communications revolution, a booming air transportation industry, and widespread automobile ownership. None foresaw one of the most significant inventions of the 20th century: the computer.

The electronic computer itself has defied predictability even among those who know it well. It has invaded everyday life to an extent not foreseen by its inventors 50 years ago. At the beginning of 1999, 80 million people used 50 million computers on the Internet and had posted over 400 million web pages. Web and email addresses were ubiquitous on business cards and advertisements. The richest man in the world was a computer software maker. Many owners of Internet stocks became millionaires.

Among the reasons for the computer's success is the amazing number of feats of science and engineering that have been crammed into that little box sitting on your desk and attached to the Internet and World Wide Web. Many have asked what's inside that box, only to be scared away by its apparent complexity and abstruseness. How does that little box do so much?

Curved Bar

How The Computer Works

By drawing on one of nature's central principles --- levels of organization --- this website poses an answer to that question. The physical universe spans 46 known steps of dimension, from the smallest quark (10-18 meter) to the most distant quasar (1027 meters). By working with models and levels of abstraction that correspond naturally to objects of various sizes, scientists have learned to approach the enormous complexity and beauty of the universe one step at a time. The computer --- most often a desktop box embedded in the worldwide network --- spans 19 steps of time, from the logic gates in the microchip (10-12 second) to months-long Internet-wide business processes (106 seconds). Between these two extremes of time lie 16 levels of abstraction --- not so imposing as the universe, but daunting still.

The computer... spans 19 steps of time, from the logic gates in the microchip... to months-long Internet-wide business processes.

We offer here a tour of the six highest levels, from the Internet down to the operation of concurrent computing processes. Each level deals with issues that are close to the experience of most users of computers, issues that come up when human processes of communication and coordination are automated, issues that people seem to solve readily but are devilishly hard to get machines to solve correctly. Our approach here is to examine these issues and show the Great Ideas of computing science and engineering that have been developed to deal with them. By proceeding from your experience with computing, we can peel away the layers of complexity one at a time and help you to understand the great ideas that make the computer work. Although we don't do it here, we could continue the process of peeling away layers until we reach the innermost core of the computer, the microchip.

This process --- examining the layers from the outside in --- is the exact opposite of the usual engineering approach of building up from the basic components until finally the user domains of application are attained. Much of what is in these computer levels has been there for the past five decades, and much will survive the next five. Like the universe, these are durable levels.

Curved Bar

Curved Bar

How This Website Works

The chart below summarizes the six levels, the questions they resolve, and the Great Ideas of Computing that pervade their systems.
LevelIssuesGreat Ideas
InternetHow to send a message to someone? How to send a book or document? How to find the address of a person or object? How to guarantee delivery when network connections are unreliable? How to deliver mail or objects to addresses over unpredictable routes?
  • Survivable networks
  • TCP/IP
  • Naming
  • Hyperlinks and the Web
User InterfaceHow do I tell the computer what to do? How does the computer translate my command into action? How does the computer let me manipulate facsimiles of objects?
  • Command sets and shells
  • Windows, icons, menus, mouse, pointers
Information SecurityHow to prevent unwanted people from accessing my files? How to prevent sensitive information from flowing out of my system? How to prevent someone from sabotaging my system? My information? How to converse in secret? How to sign an electronic document?
  • Access control
  • Flow control
  • User authentication
  • Signed and secret communication
Virtual MachinesHow does the computer set a command program into execution? How can a computer be divided into smaller identical copies of the original computer? How can programs like Java applets be universally portable?
  • IBM VM model
  • Java VM model
  • Unix VM model
  • Layers model
Virtual MemoriesHow does the computer incorporate many storage media into a single memory system? How to organize memory so that I don't have to reprogram anything if I add or remove storage devices? How to keep track of objects so they can be addressed at high speed regardless of location? How to speed up a computation when memory is too small to hold everything?
  • Name spaces for just-in-time sharing
  • Two-level address mappings
  • The cache principle
Concurrent ProcessesHow to prevent two processes from entering a race that makes their combined result unpredictable? How to decide reliably which of two events has occurred first when only one event can be processed at a time? How to ensure that sharable memory objects are used by just one process at a time? How to prevent a group of processes from being halted by a deadlock? How to simulate many processes with a computer having only one computing engine?
  • Arbiters
  • Critical sections
  • Semaphores
  • Deadlock detectors
  • Time sharing

Curved Bar

Director: Peter J. Denning
Front Page Coordination: Jenna Farnham
Logo Coordination: Kyung Kim
Timeline Coordination: William Lemley
Internet Team: Patricia Ball, Jenna Farnham, Sean Iraca
User Interface Team: Andrew Fischer, Kevin Lee
Security Team: An Le, Hwei-Hsin Feng, Jeffrey Scanlon
Virtual Machines Team: Eric Kohlbrenner, Brett Morris, Dana Morris
Virtual Memory Team: Tuncay Basar, Kyung Kim, William Lemley
Processes Team: Brian Cornnell, Halleh Fatheisian, Eric Rosenberger

(c) Copyright 1999, Hyperlearning Center. All rights reserved.