HOME

TheInfoList



OR:

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