[comp.os.research] Amoeba informations

ast@cs.vu.nl (Andy Tanenbaum) (03/12/88)

Amoeba is a research project on distributed operating systems being
carried out at the Vrije Universiteit in Amsterdam under the
direction of Andrew Tanenbaum and at the Centre for Mathematics
and Computer Science under the direction of Sape J. Mullender.
Its goal is to investigate capability-based, object-oriented systems,
and to build a working prototype system to use and evaluate.

The Amoeba architecture consists of four principal components:

  1. Workstations, one per user, which are essential intelligent terminals
     At present SUN-3s are used as workstations.

  2. Pool processors, where most of the computing occurs.  At present two
     racks of pool processors are in use.  One rack has 16 Motorola 68020s
     each with 3 MB, its own backplane and its own Ethernet connection.  
     The other also has 16 68020s, but these are on a single VME bus and
     have access to shared memory on the bus.   These two configurations
     allow parallel algorithms to be implemented with and without shared
     memory for comparison purposes.

  3. Specialized servers, such as file servers, directory servers, and
     data base servers.  The Amoeba file server, called the bullet server,
     has been designed to provide support for atomic actions, which are
     implemented with the help of the directory server.  The bullet server
     has a 16 MB cache and extremely high performance.  Users programs can
     read data at over 650 kbytes/sec (assuming cache hits).  This is the
     user-to-user rate (not kernel-to-kernel) and includes all the protocol
     overhead.

  4. Gateways, which are used to link Amoeba systems at different sites.
     Amoeba runs on 680x0, 16032, VAX, and other processors in about half
     a dozen countries.  Work is currently in progress to produce a wide-
     area system that will be completely transparent.

All the Amoeba machines run the same kernel, which primarily provides
message-passing services and little else.  The basic idea behind
the kernel was to keep it small, not only to enhance its reliability,
but also to allow as much as possible of the operating system to
run as user code, providing for flexibility and experimentation.

The basic idea behind the Amoeba design is the abstract data type.
Each Amoeba object has a capability which must be presented to
allow operations to be performed.  The capabilities are cryptographically
protected, and are held in user space, not in the kernel.

Some of the research issues addressed by the project are how to use the
two processor pools effectively, how to integrate the workstations and 
the pool processors in a fully transparent way, and how to connect multiple
Amoeba sites into a single coherent system using wide-area networks. 

Performance issues are also very important.  Amoeba is based on
RPC, and great care has been exercised in making everything run
very fast.  In addition to the 650 kbyte/sec throughput mentioned
above, we have achieved a null RPC time of 1.4 msec between two
SUN-3s on an Ethernet.  To the best of our knowledge, this is the
fastest RPC time of any operating system in the world running on
this hardware.

We have also designed a language for parallel and distributed
programming.  The idea is that programs in this language should be
simple to write and suitable for both the shared memory and disjoint
memory processor pools.

The current status of the system is that it is up and running in
an experimental form.  A UNIX emulation environment has been created
on top of Amoeba, so we have been able to port most of the UNIX
software, including the shell, editors, compilers, and most of the
standard utilities.  We also have implemented a parallel 'make'
that spreads compilations over multiple processors to gain large
speedups.

Contact person:

    Andrew S.Tanenbaum
    Dept. of Mathematics and Computer Science
    Vrije Universiteit
    Postbus 7161
    1007 MC Amsterdam HOLLAND
    Analog: (31) 20 548-2975 or (31) 20 548-8080
    Digital: ast@cs.vu.nl

Availability: It is not a serious production system yet, and it is by no
means complete, but we might be willing to give copies to a few sites that
wanted to use it as a base for their own research in distributed systems.
Be warned however, that you will have to invest a fair amount of work in
installing it and getting it working in your environment.  If you think
you can just hang up a mag tape and hit the boot button, forget it.


Darrell Long
Department of Computer Science & Engineering, UC San Diego, La Jolla CA 92093
ARPA: Darrell@Beowulf.UCSD.EDU  UUCP: darrell@sdcsvax.uucp
Operating Systems submissions to: comp-os-research@sdcsvax.uucp