Amoeba (Betriebssystem)
# Amoeba (Betriebssystem)

Amoeba (engl. für Amöbe) ist ein verteiltes Betriebssystem, das von Andrew S. Tanenbaum und seinen Mitarbeitern an der Freien Universität Amsterdam entwickelt wurde. Ziel des Projekts war, jedem Benutzer die Illusion einer eigenen Maschine zu geben, obwohl das System auf vielen Rechnern verteilt ist, die eventuell auch weit entfernt voneinander, etwa in verschiedenen Ländern, stehen können. Die Entwicklung des Projektes wurde eingestellt. Das letzte Update gab es am 30. Juli 1996.

Die Programmiersprache Python wurde ursprünglich für Amoeba entwickelt.

## Das System

Amoeba verwendet für jeden Benutzer einen eigenen, plattenlosen Rechner. Weitere Rechner dienen als Pool-Prozessoren, die bei Bedarf angefordert und wieder freigegeben werden. Spezielle Dienste wie Dateiserver, Verzeichnisdienste und Datenbanken werden von eigenen, speziellen Rechnern zur Verfügung gestellt. Alle lokalen Rechner kommunizieren miteinander über das Fast Local Internet Protocol. Gateways verbinden weit entfernte Rechner miteinander zu einem einheitlichen System.

Das System ist Objekt-basiert, wobei jedes Objekt und die dazu erlaubten Operationen durch sog. capabilities identifiziert werden. Jedes Objekt ist mit einem Serverprozess verbunden, der vom Anwenderprogramm über einen Remote Procedure Call angesprochen wird.

Amoeba verwendet einen Mikrokernel. An der Freien Universität Amsterdam bildeten etwa 80 SPARC-Einprozessorsysteme, die über Ethernet vernetzt sind, einen Amoeba-Prozessorpool. Das System läuft auch auf Intel-x86- und Motorola-68030-Prozessoren. Es war mehrere Jahre im Einsatz.

## Weltweite Vernetzung

Amoeba-Systeme können weltweit vernetzt werden und werden dann in Domänen (domains) eingeteilt. Innerhalb einer Domäne, die normalerweise die Rechner eines LANs umfasst, können die Server für einen Dienst durch einen Netzwerk-Broadcast, die locate-Anforderung, ermittelt werden. Zwischen Domains müssen sie explizit in einen Verzeichnisdienst eingetragen, das heißt publiziert werden. Ein lokaler Server beantwortet die locate-Anforderung und informiert einen Server auf dem entfernten LAN. Die Kommunikation läuft über die Proxy-Server ab. Dies hat die folgenden Vorteile

* Die lokale Kommunikation läuft mit maximaler Geschwindigkeit und ohne Vermittlungsprozess ab.
* Die Kommunikation mit entfernten Rechnern unterscheidet sich für die Server und Clients nicht von der lokalen Kommunikation.
