ACM Home Page
Please provide us with feedback. Feedback
Experiences with the Amoeba distributed operating system
Full text PdfPdf (2.71 MB)
Source
Communications of the ACM archive
Volume 33 ,  Issue 12  (December 1990) table of contents
Pages: 46 - 63  
Year of Publication: 1990
ISSN:0001-0782
Authors
Andrew S. Tanenbaum  Vrije Univ., Amsterdam, The Netherlands
Robbert van Renesse  Vrije Univ., Amsterdam, The Netherlands
Hans van Staveren  Vrije Univ., Amsterdam, The Netherlands
Gregory J. Sharp  Vrije Univ., Amsterdam, The Netherlands
Sape J. Mullender  Centrum voor Wiskunde en Informatica, Amsterdam, The Netherlands
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 19,   Downloads (12 Months): 226,   Citation Count: 50
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/96267.96281
What is a DOI?

ABSTRACT

The Amoeba project is a research effort aimed at understanding how to connect multiple computers in a seamless way [16, 17, 26, 27, 31]. The basic idea is to provide the users with the illusion of a single powerful timesharing system, when, in fact, the system is implemented on a collection of machines, potentially distributed among several countries. This research has led to the design and implementation of the Amoeba distributed operating system, which is being used as a prototype and vehicle for further research. In this article we will describe the current state of the system (Amoeba 4.0), and show some of the lessons we have learned designing and using it over the past eight years. We will also discuss how this experience has influenced our plans for the next version, Amoeba 5.0. Amoeba was originally designed and implemented at the Vrije Universiteit in Amsterdam, and is now being jointly developed there and at the Centrum voor Wiskunde en Informatica, also in Amsterdam. The chief goal of this work is to build a distributed system that is transparent to the users. This concept can best be illustrated by contrasting it with a network operating system, in which each machine retains its own identity. With a network operating system, each user logs into one specific machine—his home machine. When a program is started, it executes on the home machine, unless the user gives an explicit command to run it elsewhere. Similarly, files are local unless a remote file system is explicitly mounted or files are explicitly copied. In short, the user is clearly aware that multiple independent computers exist, and must deal with them explicitly. In contrast, users effectively log into a transparent distributed system as a whole, rather than to any specific machine. When a program is run, the system—not the user—decides upon the best place to run it. The user is not even aware of this choice. Finally, there is a single, system-wide file system. The files in a single directory may be located on different machines, possibly in different countries. There is no concept of file transfer, uploading or downloading from servers, or mounting remote file systems. A file's position in the directory hierarchy has no relation to its location. The remainder of this article will describe Amoeba and the lessons we have learned from building it. In the next section, we will give a technical overview of Amoeba as it currently stands. Since Amoeba uses the client-server model, we will then describe some of the more important servers that have been implemented so far. This is followed by a description of how wide-area networks are handled. Then we will discuss a number of applications that run on Amoeba. Measurements have shown Amoeba to be fast, so we will present some of our data. After that, we will discuss the successes and failures we have encountered, so that others may profit from those ideas that have worked out well and avoid those that have not. Finally we conclude with a very brief comparison between Amoeba and other systems. Before describing the software, however, it is worth saying something about the system architecture on which Amoeba runs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Accetta, M., Baron, R., Bolosky W., Golub, D., Rashid, R., Tevanian, A., and Young, M. Mach: A new kernel foundation for Unix Development. In Proceedings of the Summer Usenix Conference (Atlanta, CA, July 1986).
2
 
3
Bal, H.E., Van Renesse, R., and Tanenbaum, A.S. Implementing distributed algorithms using remote procedure call. In Proceedings of the National Computer Conference, AFIPS (1987), pp. 499-505.
 
4
Bal, H.E., and Tanenbaum, A.S. Distributed programming with shared data. IEEE Conference on Computer Languages, IEEE (1988), pp. 82-91.
5
6
 
7
8
9
 
10
Feldman, S.I. Make--A program for maintaining computer programs. SoftwaremPractice and Experience 9 (April 1979), 255-265.
 
11
Johnson, S.C. Yaccmyet another compiler compiler. Bell Labs Tech. Rep., Bell Labs, Murray Hill, N.J., 1978.
12
 
13
Lawler, E.L., and Wood, D.E. Branch and bound Methods A Survey. Oper. Res. 14 (July 1966), 699- 719.
14
15
 
16
Mullender, S.J., and Tanenbaum, A.S. The design of a capabilitybased distributed operating system. Comput.J. 29 (Aug. 1986), 289-299.
 
17
 
18
 
19
 
20
 
21
Rozier, M., Abrossimov, V., Armand, F., Boule, I., Gien, M., Guillemont, M., Hermann, F., Kaiser, C., Langlois, S., Leonard, P., and Neuhauser, W. CHORUS distributed operating system. Comput. Syst. I (Fall 1988), 299-328.
22
 
23
Steiner, J.G., Neuman, C., and Schiller, J.I. Kerberos An Authentication Service for Open Network Systems. In Proceedings of the Usenix Winter Conference, USENIX Assoc. (1988), pp. 191-201.
24
25
 
26
Tanenbaum, A.S., Mullender, S.J., and Van Renesse, R. Using sparse capabilities in a distributed operating system, in Proceedings of the Sixth International Conference on Distributed Computer Systems, IEEE (1986), 558- 563.
27
 
28
Tanenbaum, A.S., and Van Renesse, R. A critique of the remote procedure call paradigm. In Proceedings of Euteco '88 (1988), pp. 775-783.
 
29
Van Renesse, R., Tanenbaum, A.S., Van Staveren, H., and Hall, J. Connecting RPC-based distributed systems using wide-area networks. In Proceedings of the Seventh International Conference on Distributed Computing Systems, IEEE (1987), pp. 28- 34.
 
30
Van Renesse, R. Tanenbaum, A.S., and Wilschut, A. The design of a high-performance file server. In Proceedings of the Ninth International Conference on Distributed Computer Systems, IEEE (1989), pp. 22-27.
31
 
32
 
33
Van Rossum, G. AIL--A classoriented stub generator for Amoeba. In Proceedings of the Workshop on Experience with Distributed Systems, J. Nehmer, Ed., Springer Verlag, N.Y., 1990. To be published.
 
34
Welch, B.B. and Ousterhout, J.K. Pseudo devices: User-level extensions to the Sprite file system. In Proceedings of Summer USENIX Conference (June 1988), pp. 37-49.

CITED BY  50


REVIEW

"Jason Gait : Reviewer"

Amoeba is an ambitious distributed operating system implemented on a widely scattered ensemble of machines. Amoeba aspires to be much more than a conventional network operating system in which each machine retains its visibility and must be de  more...

Collaborative Colleagues:
Andrew S. Tanenbaum: colleagues
Robbert van Renesse: colleagues
Hans van Staveren: colleagues
Gregory J. Sharp: colleagues
Sape J. Mullender: colleagues