Experiences with the Amoeba Distributed Operating System

  • Andrew S. Tanenbaum
  • Robbert Van Renesse
  • Hans Van Staveren
  • Gregory J. Sharp
  • Sape J. Mullender
  • Jack Jansen
  • Guido Van Rossum


The Amoeba distributed operating system has been in development and use for over eight years now. In this paper we describe the present system and our experience with it what we did right, but also what we did wrong. Among the things done right were basing the system on objects, using a single uniform mechanism (capabilities) for naming and protecting them in a location independent way, and designing a completely new, and very fast file system. Among the things done wrong were having threads not be pre-emptable, initially building our own homebrew window system, and not having a multicast facility at the outset.


File System Travel Salesman Problem Directory Server Address Space User Process 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Accetta, M., Baron, R., Bolosky W., Golub, D., Rashid, R., Tevanian, A., and Young, M. Mach: A New Kernel Foundation for UNIX Development. Proceedings of the Summer Usenix Conference, Atlanta, GA, July 1986.Google Scholar
  2. 2.
    Baalbergen, E.H, Verstoep, K., and Tanenbaum, A.S. On the Design of the Amoeba Configuration Manager. Proc. 2nd Int’l Workshop on Software Config. Mgmt., ACM, 1989.Google Scholar
  3. 3.
    Bal, H.E., Van Renesse, R., and Tanenbaum, A.S. Implementing Distributed Algorithms using Remote Procedure Call. Proc. Nat. Comp. Conf., AFIPS, 1987. pp. 499–505.Google Scholar
  4. 4.
    Bal, H.E., and Tanenbaum, A.S. Distributed Programming with Shared Data, IEEE Conf. on Computer Languages, IEEE, 1988, pp. 82–91.Google Scholar
  5. 5.
    Birrell, A.D., and Nelson, B.J. Implementing Remote Procedure Calls, ACM Trans. Comput. Systems 2, (Feb. 1984) pp. 39–59.Google Scholar
  6. 6.
    Cheriton, D.R. The V Distributed System. Comm. ACM 31, (March 1988), pp. 314–333.CrossRefGoogle Scholar
  7. 7.
    Dalal, Y.K. Broadcast Protocols in Packet Switched Computer Networks. Ph.D. Thesis, Stanford Univ., 1977.Google Scholar
  8. 8.
    Dennis, J., and Van Horn, E. Programming Semantics for Multiprogrammed Cornputation. Comm. ACM 9, (March 1966), pp. 143–155.zbMATHCrossRefGoogle Scholar
  9. 9.
    Evans, A., Kantrowitz, W., and Weiss, E. A User Authentication Scheme Not Requiring Secrecy in the Computer. Comm. ACM 17, (Aug. 1974), pp. 437–442.CrossRefGoogle Scholar
  10. 10.
    Feldman, S.I. Make—A Program for Maintaining Computer Programs. Software— Practice and Experience 9, (April 1979) pp. 255–265.zbMATHCrossRefGoogle Scholar
  11. 11.
    Johnson, S.C. Yacc Yet Another Compiler Compiler. Bell Labs Technical Report, Bell Labs, Murray Hill, NJ, 1978.Google Scholar
  12. 12.
    Kaashoek, M.F., Tanenbaum, A.S., Flynn Hummel, S., and Bal, H.E. An Efficient Reliable Broadcast Protocol. Operating Systems Review, vol. 23, (Oct. 1989), pp. 5–19.CrossRefGoogle Scholar
  13. 13.
    Lawler, E.L., and Wood, D.E. Branch and Bound Methods A Survey. Operations Research 14, (July 1966), pp. 699–719.MathSciNetzbMATHCrossRefGoogle Scholar
  14. 14.
    Marsland, T.A., and Campbell, M. Parallel Search of Strongly Ordered Game Trees. Computing Surveys 14, (Dec. 1982), pp. 533–551.CrossRefGoogle Scholar
  15. 15.
    Mullender, S.J., van Rossum, G., Tanenbaum, A.S., van Renesse, R., van Staveren, J.M. Amoeba—A Distributed Operating System for the 1990s. IEEE Computer 23, (May 1990), pp. 44–53.CrossRefGoogle Scholar
  16. 16.
    Mullender, S.J., and Tanenbaum, A.S. The Design of a Capability-Based Dis-tributed Operating System. Computer Journal 29, (Aug. 1986), pp. 289–299.CrossRefGoogle Scholar
  17. 17.
    Mullender, S.J., and Tanenbaum, A.S. A Distributed File Service Based on Op-timistic Concurrency Control. Proc. Tenth Symp. Operating System Principles, (Dec. 1985), pp. 51–62.Google Scholar
  18. 18.
    Ousterhout, J.K., Cherenson, A.R., Douglis, F., Nelson, M.N., and Welch, B.B. The Sprite Network Operating System. IEEE Computer 21, (Feb. 1988), pp. 23–26.CrossRefGoogle Scholar
  19. 19.
    Peterson, L., Hutchinson, N., O’Malley, S., and Rao, H. The x-kernel: A Platform for Accessing Internet Resources. IEEE Computer 23 (May 1990), pp. 23–33.CrossRefGoogle Scholar
  20. 20.
    Pu, C., Noe, J.D., Proudfoot, A. Regeneration of Replicated Objects: A Technique and its Eden Implementation. Proc. 2nd Int’l Conf. on Data Eng., (Feb. 1986), pp. 175–187.Google Scholar
  21. 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. Computing Systems 1 (Fall 1988), pp. 299–328.Google Scholar
  22. 22.
    Schroeder, M.D., and Burrows, M. Performance of the Firefly RPC. Proc. Twelfth ACM Symp. on Oper. Syst. Prin., ACM, (Dec. 1989), pp. 83–90.Google Scholar
  23. 23.
    Steiner, J.G., Neuman, C., and Schiller, J.I. Kerberos An Authentication Service for Open Network Systems. Proceedings of the Usenix Winter Conference, USENIX Assoc., (1988), pp. 191–201.Google Scholar
  24. 24.
    Stonebraker, M. Operating System Support for Database Management. Comm. ACM 24, (July 1981), pp. 412–418.CrossRefGoogle Scholar
  25. 25.
    Tanenbaum, A.S. A UNIX Clone with Source Code for Operating Systems Courses. Operating Syst. Rev. 21, (Jan. 1987), pp. 20–29.CrossRefGoogle Scholar
  26. 26.
    Tanenbaum, A.S., Mullender, S.J., and Van Renesse, R. Using Sparse Capabili-ties in a Distributed Operating System. Proc. Sixth International Conf. on Distr. Computer Systems, IEEE, 1986.Google Scholar
  27. 27.
    Tanenbaum, A.S., and Van Renesse, R. A Critique of the Remote Procedure Call Paradigm. Proc. Euteco ’88, (1988), pp. 775–783.Google Scholar
  28. 28.
    Tanenbaum, A.S., and Van Renesse, R. Distributed Operating Systems. Computing Surveys 17, (Dec. 1985), pp. 419–470.CrossRefGoogle Scholar
  29. 29.
    Van Renesse, R., Tanenbaum, A.S., and Wilschut, A. The Design of a High-Performance File Server. Proc. Ninth Int’l Conf. on Distr. Comp. Systems, IEEE, (1989a), pp. 22–27.Google Scholar
  30. 30.
    Van Renesse, R., Tanenbaum, A.S., Van Staveren, H., and Hall, J. Connecting RPC-Based Distributed Systems Using Wide-Area Networks. Proc. Seventh Int’l Conf. on Distr. Comp. Systems, IEEE, (1987), pp. 28–34.Google Scholar
  31. 31.
    Van Renesse, R., Van Staveren, H., and Tanenbaum, A.S. Performance of the Amoeba Distributed Operating System. Software—Practice and Experience 19, (March 1989b) pp. 223–234.CrossRefGoogle Scholar
  32. 32.
    Van Renesse, R., Van Staveren, H., and Tanenbaum, A.S. Performance of the World’s Fastest Distributed Operating System. Operating Systems Review 22, (Oct. 1988), pp. 25–34.CrossRefGoogle Scholar
  33. 33.
    Van Rossum, G. AIL—A Class-Oriented Stub Generator for Amoeba. Proc. of the Workshop on Experience with Distributed Systems, (J. Nehmer, ed.), Springer Verlag, 1990 (in preparation) .Google Scholar
  34. 34.
    Welch, B.B. and Ousterhout, J.K. Pseudo Devices: User-Level Extensions to the Sprite File System. Proc. Summer USENIX Conf., pp. 37–49, June 1988.Google Scholar

Copyright information

© Springer Science+Business Media New York 2001

Authors and Affiliations

  • Andrew S. Tanenbaum
  • Robbert Van Renesse
  • Hans Van Staveren
  • Gregory J. Sharp
  • Sape J. Mullender
  • Jack Jansen
  • Guido Van Rossum

There are no affiliations available

Personalised recommendations