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