Browse Prior Art Database

Hints for Com puter System Design

IP.com Disclosure Number: IPCOM000128880D
Original Publication Date: 1983-Dec-31
Included in the Prior Art Database: 2005-Sep-20
Document File: 21 page(s) / 74K

Publishing Venue

Software Patent Institute

Related People

Butler W. Lampson: AUTHOR [+3]

Abstract

Experience with the design and implementation of a number of computer systems, and study of many other systems, has led to some general hints for system design which are described here. They are illustrated by a number of examples, ranging from hardware such as the Alto and the Dorado to applications programs such as Bravo and Star.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 5% of the total text.

Page 1 of 21

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

Hints for Com puter System Design

Butler W. Lampson

Xerox Palo Alto Research Center

3333 Coyote Hill Rd. Palo Alto, CA 94304

January, 1983

Abstract

Experience with the design and implementation of a number of computer systems, and study of many other systems, has led to some general hints for system design which are described here. They are illustrated by a number of examples, ranging from hardware such as the Alto and the Dorado to applications programs such as Bravo and Star.

1. Introduction

Designing a computer system is very different from designing an algorithm:

'Me external interface (i.e., the requirement) is more complex, less precisely defined, and more subject to change.

The system has much more internal structure, and hence many internal interfaces.

The measure of success is much less clear.

The designer usually finds himself floundering in a sea of possibilities, unclear about how one choice will affect his freedom to make other choices or the size and performance of the entire system. There probably isn't a best way to build the system, or even any major part of it; much more important is to avoid choosing a terrible way, and to have clear division of responsibilities among the parts.

I have designed and built a number of computer systems, some that worked and some that didn't. I have also used and studied many other systems, both successful and unsuccessful. From this experience come some general hints for designing successful systems. These are not foolproof recipes, they are just hints. Some are quite general and vague; others are specific techniques which are more widely applicable than many people know. I claim no originality for these hints; most are part of the folk wisdom of experienced designers. Nonetheless, even the expert often forgets, and after the second system [61 comes the fourth one.

I have tried to avoid exhortations to modularity, methodologies for top-down, bottom-up or iterative design, techniques for data abstraction, and other schemes which have already been widely disseminated. Sometimes I have pointed out pitfalls in the reckless application of popular methods for system design.

Xerpx Palo Alto Research Center Page 1 Dec 31, 1983

Page 2 of 21

Hints for Com puter System Design

The hints are illustrated by a number of examples, mostly drawn from systems I have worked on. They range from hardware such as the Ethernet local network and the Alto and Dorado personal computers, through operating systems such as the SDS 940 and the Alto operating systen*4 and programming systems such as Lisp and Mesa, to applications programs such as the Bravo editor and the Star office system, and network servers such as the Dover printer and the Grapevine mail system. I have tried to avoid the most obvious examples, in favor of others which show unexpected uses for some well-known methods. There are references for all the specific examples, but for on...