Amoeba is a
distributed operating system
A distributed operating system is system software over a collection of independent software, networked, communicating, and physically separate computational nodes. They handle jobs which are serviced by multiple CPUs. Each individual node holds a ...
developed by
Andrew S. Tanenbaum and others at the
Vrije Universiteit Amsterdam
The (abbreviated as ''VU Amsterdam'' or simply ''VU'' when in context) is a public university, public research university in Amsterdam, Netherlands, founded in 1880. The VU Amsterdam is one of two large, publicly funded research universities in ...
. The aim of the Amoeba project was to build a
timesharing
In computing, time-sharing is the concurrent sharing of a computing resource among many tasks or users by giving each task or user a small slice of processing time. This quick switch between tasks or users gives the illusion of simultaneous ...
system that makes an entire network of computers appear to the user as a
single machine. Development at the Vrije Universiteit was stopped: the source code of the latest version (5.3) was last modified on 30 July 1996.
The
Python programming language
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.
Python is dynamically type-checked and garbage-collected. It supports multiple prog ...
was originally developed for this platform.
Overview
The goal of the Amoeba project was to construct an operating system for networks of computers that would present the network to the user as if it were a single machine. An Amoeba network consists of a number of
workstation
A workstation is a special computer designed for technical or computational science, scientific applications. Intended primarily to be used by a single user, they are commonly connected to a local area network and run multi-user operating syste ...
s connected to a "pool" of processors, and executing a program from a terminal causes it to run on any of the available processors, with the operating system providing
load balancing.
Unlike the contemporary
Sprite, Amoeba does not support
process migration
In computing, process migration is a specialized form of process management whereby processes are moved from one computing environment to another. This originated in distributed computing, but is now used more widely. On multicore machines (mul ...
.
[Fred Douglis, M. Frans Kaashoek, Andrew S. Tanenbaum and ]John Ousterhout
John Kenneth Ousterhout (, born October 15, 1954) is an American computer scientist. He is a professor of computer science at Stanford University. He founded Electric Cloud with John Graham-Cumming.
Ousterhout was previously a professor of com ...
(1991)
A comparison of two distributed systems: Amoeba and Sprite
Computing Systems 4(4), pp. 353–384.
The workstations would typically function as networked
terminals only. Aside from workstations and processors, additional machines operate as
servers for files, directory services,
TCP/IP
The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the communication protocols used in the Internet and similar computer networks according to functional criteria. The foundational protocols in the suite are ...
communications etc.
[ Andrew S. Tanenbaum, M. Frans Kaashoek, Robbert van Renesse and Henri E. Bal (1991)]
The Amoeba distributed operating system — a status report
Computer Communications 14.
Amoeba is a
microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
-based operating system. It offers
multithreaded programs and a
remote procedure call
In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in a different address space (commonly on another computer on a shared computer network), which is written as if it were a ...
(RPC) mechanism for communication between threads, potentially across the network; even kernel-threads use this RPC mechanism for communication. Each thread is assigned a 48-bit number called its "port", which serves as its unique, network-wide "address" for communication.
The user interface and
APIs of Amoeba were modeled after
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
and compliance with the
POSIX
The Portable Operating System Interface (POSIX; ) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines application programming interfaces (APIs), along with comm ...
standard was partially implemented; some of the Unix emulation code consists of utilities ported over from Tanenbaum's other operating system,
MINIX
MINIX is a Unix-like operating system based on a microkernel Software architecture, architecture, first released in 1987 and written by American-Dutch computer scientist Andrew S. Tanenbaum. It was designed as a clone of the Unix operating syste ...
. Early versions used a "homebrew" window system, which the Amoeba authors considered "faster ... in our view, cleaner ... smaller and much easier to understand", but version 4.0 uses the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
(and allows
X terminal
X, or x, is the twenty-fourth letter of the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''ex'' (pronounced ), plural ''exes''."X", ' ...
s as terminals).
The system uses
FLIP as a network protocol.
See also
*
Distributed computing
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers.
The components of a distributed system commu ...
*
Multikernel
*
Plan 9 from Bell Labs
Plan 9 from Bell Labs is a distributed operating system which originated from the Computing Science Research Center (CSRC) at Bell Labs in the mid-1980s and built on UNIX concepts first developed there in the late 1960s. Since 2000, Plan 9 has ...
References
External links
Amoeba home page (static page, ftp links are dead)FSD-Amoeba page at Sourceforge (file downloads give 403 errors)ArchiveOS mirror of Amoeba 5.3
{{Microkernel
Microkernel-based operating systems
Distributed computing architecture
Distributed operating systems
Computer science in the Netherlands
Information technology in the Netherlands
Microkernels
X86 operating systems
MIPS operating systems