TOPSY
# TOPSY

TOPSY (a Teachable OPerating SYstem) ist ein multithreaded, sehr portables Betriebssystem, welches an der Eidgenössischen Technischen Hochschule (ETH) Zürich am Computer Engineering und Networks Laboratory entwickelt wurde.

Der Kernel ist ein von George Fankhauser in ISO-C geschriebener multithreaded Mikrokernel, welcher zirka 20 KB umfasst. TOPSY bietet Einblicke in die Bereiche Nebenläufigkeit, Treiberprogrammierung und Betriebssystemkonzepte und wird deshalb ausschließlich für Unterrichtszwecke verwendet. Obwohl TOPSY portabel ist, wurde die eigentliche hardwareabhängige Implementation ursprünglich für die Plattform IDT MIPS R3052E geschrieben. In verschiedenen Semester- und Diplomarbeiten wurde TOPSY auf eine PC-kompatible (Lukas Ruf und George Fankhauser), Palm-V- (Gabriele Giambonini und Lukas Ruf), IXP1200- (David Reist, Silvio Dragone, Boris Lutz, Claudio Jeker und Lukas Ruf) und HP-iPAQ-Plattform (Thomas Brunner und Lukas Ruf) portiert.

TOPSY zeichnet sich durch folgende Eigenschaften aus:

* Einfachheit: Im Gegensatz zu mächtigen Kernels wird TOPSY bewusst einfach gehalten. Dies gilt insbesondere für die Algorithmen, da sie nicht auf Geschwindigkeit optimiert sind.
* Lesbarkeit: Der Betriebssystemcode ist einfach lesbar, es wird nur das Minimum an nötiger Hardware unterstützt
* Hardware-Unabhängigkeit: Da TOPSY einfach gehalten wird, ist die Portierung auf andere Systeme einfacher
* Transparenz: Das Betriebssystem ist für Lernzwecke sauber geschrieben und nicht auf Effizienz optimiert

Moderne Betriebssystemkonzepte wurden in der Diplomarbeit von Boris Lutz und Claudio Jeker zu TOPSY v3 unter der Leitung von Lukas Ruf umgesetzt. TOPSY v3 unterstützt u. a. folgende Konzepte:

* Priorisierbare Protection Domains
* Dynamisch aus Komponenten zusammensetzbarer Netzwerkstack
* Nachladen von Komponenten
* Effiziente Inter-Protection-Domain-Kommunikation

Die Lehre und Forschung mit TOPSY wird durch MIPS-R3052E-Emulatoren unterstützt. Ein plattformunabhängiger, Java-basierter Emulator (George Fankhauser) und ein hinsichtlich Ausführungsgeschwindigkeit optimierter, modularer C++-basierter (GNU C++) (Florian Kaufmann und Lukas Ruf) stehen zur Verfügung.

TOPSY wird an der ETH Zürich und verschiedenen Universitäten in Europa und Australien in der Lehre eingesetzt. Eine mehr als 70-seitige Dokumentation und Übungsunterlagen stehen zur Verfügung. Eine Mailingliste sowie ein Wiki-FAQ unterstützen den Erfahrungsaustausch.

