Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références ».
Amoeba est un système d'exploitation distribué développé par Andrew Tanenbaum avec d'autres personnes à l'université libre d'Amsterdam. Le projet Amoeba avait pour objectif de mettre en place un système de partage de temps (processeur) faisant en sorte que tout un réseau d'ordinateurs apparaisse à l'utilisateur comme une seule machine[4].
Le développement à l'université libre d'Amsterdam est interrompu : le code source de la dernière version (5.3) a été modifié pour la dernière fois le [5].
Le langage de programmation Python a été développé à l'origine pour cette plate-forme[6].
Projet
Le but du projet Amoeba était de faire un système d'exploitation pour les réseaux d'ordinateurs avec lesquels un utilisateur interagirait comme s'il s'agissait d'une seule machine.
Un réseau d'Amoeba est composé de plusieurs stations de travail connectées à un groupe de processeurs. Exécuter un programme le fait tourner sur n'importe quel processeur disponible, tandis que le système d'exploitation gère la répartition de charge. Mais Amoeba ne gérait pas la migration de processus, à l'inverse de son contemporain Sprite. Les stations de travail servaient surtout de terminaux connectés. Outre les stations et les processeurs, d'autres machines pouvaient servir de serveurs de fichiers, services d'annuaires, connections TCP/IP, etc.
Amoeba est un système d'exploitation micro-noyau. Il gère le multi thread et un mécanisme de RPC (remote procedure call) pour la communication entre threads, en utilisant le réseau le cas échéant. Les threads du kernel utilisent le même système. Chaque thread a un « port », un numéro de 48 bits unique sur tout le réseau, qui sert d'adresse pour la communication.
Unix a servi de modèle pour l'interface utilisateur et les API de Amoeba, une compatibilité POSIX ayant même été partiellement implémentée. Une partie du code pour l'émulation Unix provenait d'utilitaires de MINIX, l'autre système d'exploitation d'Andrew Tanenbaum. Les premières versions utilisaient un système d'affichage « maison » que les auteurs considéraient « plus rapide »
, « à nos yeux, plus propre » et « plus petit, bien plus facile à comprendre ». Mais la version 4.0 utilise le X Window System. Le protocole réseau utilisé était FLIP (Fast Local Internet Protocol).