Xref: utzoo comp.os.misc:1123 comp.os.minix:9738 comp.os.mach:332 comp.os.v:62 Path: utzoo!attcan!uunet!mcsun!hp4nl!star.cs.vu.nl!ast@cs.vu.nl From: ast@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.misc,comp.os.minix,comp.os.mach,comp.os.v Subject: (Free) book on the Amoeba distributed system available Message-ID: <6067@star.cs.vu.nl> Date: 21 Mar 90 14:58:19 GMT Sender: news@cs.vu.nl Organization: Fac. Wiskunde & Informatica, VU, Amsterdam Lines: 104 1. SUMMARY The purpose of this message is to announce the availability of a (free) book about the Amoeba distributed operating system. The system itself will be available later this year. Amoeba originated at the Vrije Universiteit in Amsterdam, The Netherlands, and is now being developed jointly there and at the Centre for Mathematics and Computer Science, also in Amsterdam. 2. OVERVIEW OF AMOEBA Amoeba is a true distributed operating system that runs on a collection of machines on a network. Currently SUN-3 and VAXSTATIONS are supported. 386s are in the works, RISC machines eventually. The idea is that to the user, the entire thing looks like a conventional timesharing system. There is no concept of remote login or remote mount or remote anything else. You can directly access any file for which you have permission, without doing anything special, no matter where it is. The network acts like a single computer. A normal Amoeba configuration will have one workstation per user, some file servers, and a collection of pool processors, to which processes are dynamically assigned. For example, if you start up 'make', all the compilations will automatically run in parallel on different pool processors. You don't have to do anything. There is no concept of a 'home machine' on which things run unless you explicitly tell them to run elsewhere. Your own workstation is normally just used to run the window manager (X windows); computing is done on the processor pool. You can use SUN-3s or VAXSTATIONS for the processor pool, or you can use 680x0-based single board computers in a rack, which gives an excellent price performance. The whole idea behind Amoeba is to explore distributed computing, so the design assumes that you have a substantial number of machines that you want to have working together. We have designed a language, called Orca, that makes parallel programming much easier by cleverly simulating an object-based shared memory on a network of disjoint machines. Orca will soon be ported to Amoeba. 3. SYSTEM DESIGN Amoeba has a microkernel, which basically handles communication, I/O, and low-level memory management, and little else. Communication is based on RPC and is extremely fast (1.4 msec RPC on Sun 3/50s; see ACM Operating System Review, Oct. 1988, pp. 25-34). The rest of the system is implemented as a collection of servers running in user space, spread over many machines. There has been a great emphasis on high performance. The file server can transfer at 5.4 megabits/sec, for example, which is over half the theoretical capacity of the Ethernet, and is many times faster than NFS. A single integrated naming and protection scheme is used, based on encrypted capabilities. If you have the capability for a file or other object in your directory, you can just access it, no matter where it is (including international access, although this is still experimental). 4. RELATION TO OTHER SYSTEMS A UNIX emulation package is part of the basic system, so you can recompile and run most well-behaved UNIX utilities. There has been no attempt at providing binary compatibility. Amoeba comes with about 100 programs that are similar to their UNIX counterparts, including a C compiler (based on the Amsterdam Compiler Kit). Some of the utilities have been borrowed from MINIX and some are new. There is not a single line of AT&T code anywhere in the system--not in the operating system, not in the compilers, and not in any of the utilities. There are also 50 new utilities specifically for Amoeba. No doubt some people will want to compare Amoeba to Mach. It is hard to summarize the differences, but very briefly, Mach is an attempt to replace UNIX. Amoeba is more of a research system designed to make dozens or hundreds of processors function together seamlessly. It was designed to be as fast as possible, gaining speed through careful software design and through use of parallelism. No doubt other people will want to compare Amoeba to MINIX. There is no comparison. MINIX is a quasi-toy. Amoeba is a serious high-performance system. It is being used by the European Space Agency for transmitting real-time television images, for example, because no other system was found to be fast enough to handle the load. OSF has provided us with considerable funding so they can evaluate its potential for use in OSF/2 or OSF/3. 5. AMOEBA BOOK We have published dozens of papers on Amoeba over the years. We have now collected 17 of the most interesting ones in a 278-page paperback book. The papers provide an introduction to Amoeba, an overview of the design, discussion of the measured performance, as well as 9 papers on programming and applications. This book is now available. Since processing of international checks is a big pain, we have decided to send it out for free. Please do not ask for it unless you are seriously interested, and no more than one to a customer. You are permitted to make as many copies of it as you wish. To order, send me your snail mail address. 6. AVAILABILITY But when is Amoeba going to be available and under what conditions? The next tape is going to OSF by March 31, 1990. While they are looking at it, we will continue testing, putting together a proper distribution, and writing documentation until it comes out our ears. (Although I don't mind writing, the programmers on the project prefer C to English.) We expect that a version will be made available to universities and corporate research labs during the second half of 1990, for a nominal fee and with few restrictions on use for educational or research purposes. All of the Amoeba source code will be included. Andy Tanenbaum (ast@cs.vu.nl)