%*
%* Copyright (c) 2007 by Lukas Ruf (lukas.ruf@lpr.ch)
%*
%* Create: 2007-01-30:1600
%* Modify: 2007-01-30:1611
%* Commit: $Id: related.tex 272 2007-03-06 21:45:29Z ruf $
%*


\chapter{Related Work}
\label{related}
\label{topsy}
In seiner heutigen Form realisiert TOPSY v3 \cite{topsyv3} beispielhaft einen radikalen Microkernel-Approach, der aus Sicherheits- und Stabilitätsüberlegungen den mit vollen Privilegien auszuführenden Code auf ein Minimum zu beschränken sucht. Im Unterschied zu den gängigsten Betriebssystemen werden nicht nur Kernel- und User-Mode \cite{patterson} unterstützt, sondern praktisch beliebig viele, voreinander geschützte sogenannte Protection Domains, welche mit unterschiedlichen Rechten und Prioritäten versehen werden und die Ausführung von Anwendungsprogrammen -- aber auch von Device Drivern oder den Modulen des Kernels selbst -- mit feinkörniger Staffelung der Zugriffsprivilegien gestatten. \\
Während viele andere Betriebssysteme hinsichtlich herausragender Performance optimiert wurden, steht bei TOPSY der Einsatz im Lehrbetrieb im Vordergrund. TOPSY wurde als Anschauungsmodell und für praktische Übungen in der Vorlesung ``Technische Informatik II'' der ETH Zürich, und an weiteren Universitäten im deutsch- und englischsprachigen Ausland, verwendet, um den Studenten die Grundlagen der OS-Programmierung zu veranschaulichen, ohne sie mit den komplizierten Algorithmen und Architekturen der üblicherweise produktiv eingesetzten Betriebssysteme wie Linux, Unix oder Windows vertraut machen zu müssen. Deshalb wurde bei der Entwicklung von TOPSY stets auf übersichtliche Architektur und verstänlichen, leserlichen Code Wert gelegt, auch wenn damit stellenweise Einbussen bei der Performance in Kauf genommen werden mussten. Ausserdem erlaubt die rigorose Trennung von hardwarenahem und hardwareunabhängigem Code die einfache Portierung auf eine Vielzahl von unterschiedlichen Plattformen. \\
Inzwischen läuft die Familie der TOPSY-Betriebssysteme nebst der Referenzarchitektur MIPS R3000 \cite{mips} auch auf den Intel x86- \cite{pentium}, StrongARM- \cite{strongarm} und Motorola Dragonball 68000-Plattformen \cite{dragonball} sowie als Applikation im Linux-User-Mode, und unterstützt damit Desktop-PCs, Erweiterungskarten für Server sowie einzelne Handhelds von Palm und Compaq. Seit der Fertigstellung dieser Semesterarbeit wird auch eine PCI-Erweiterungskarte auf Basis des Intel IXP2400-Netzwerkprozessor unterstützt. \\
Im folgenden werden einige Vorgängerarbeiten vorgestellt, die für das Erreichen dieses Ziels von besonderer Bedeutung waren. \\

\section{TopsyIXP (Semesterarbeit)}
\label{related:project1}

\subsection{Motivation und Fokus}
\label{related:project1:motivation}
Nachdem TOPSY 1.1 erfolgreich entwickelt und in der Lehre eingesetzt worden war, verfolgte diese Semesterarbeit das Ziel, TOPSY auch auf den Core-Prozessor der damals neuartigen und viel beachteten Intel-IXP1200-Netzwerkprozessoren zu portieren. Damit konnte einerseits die Portierbarkeit des Systems beispielhaft unter Beweis gestellt werden, andererseits rückte dadurch auch die Vision des Einsatzes als Node~OS, also auf einem eingebetteten Netzwerksystem, näher. 

\subsection{Leistungen und Resultate}
\label{related:project1:achievements}
In der zur Verfügung stehenden Zeit implementierten die Autoren den Start-Up-Code von TOPSY auf dem IXP1200, passten das Memory Management an die neuen Gegebenheiten an und vervollständigten die hardwarenahen Codebereiche. Ausserdem schufen sie die Grundlage für spätere Versionen von TOPSY auf der IXP1200-Plattform und demonstrierten, dass sich TOPSY auch für den Einsatz auf Netzwerkprozessoren eignet.

\subsection{Einschränkungen und Möglichkeiten zur Weiterentwicklung}
\label{related:project1:shortcomings}
Aufgrund von Qualitätsmängeln der eingesetzten Hardware traten während des Projekts Verzögerungen auf, die in der zur Verfügung stehenden Zeit nicht mehr wettgemacht werden konnten. Diese Verzögerungen führten dazu, dass das Resultat der Arbeit zwar die meisten Module des Betriebssystems selbst in lauffähiger Form enthielt, aber keine Möglichkeit, zusätzliche Programme zur Ausführung zu bringen. Diese Mängel konnten erst nach dem Ende der Semesterarbeit in einem separaten Projekt behoben werden. \\
Zudem baute diese Arbeit auf der Codebasis von TOPSY 1.1 auf, und konnte damit nicht an den Leistungen partizipieren, die im Rahmen der Entwicklung von TOPSY v3 (siehe \ref{related:project2}) erbracht wurden. Und während die eingesetzte Hardware zum Zeitpunkt der Entwicklung als sehr modern galt, ist der IXP1200-Prozessor inzwischen technisch überholt.

\section{TOPSY v3 (Masterarbeit)}
\label{related:project2}

\subsection{Motivation und Fokus}
\label{related:project2:motivation}

Nach und nach setzte sich in der TOPSY-Entwicklergemeinde die Überzeugung durch, dass dieses Betriebssystem noch mehr zu leisten im Stande wäre. Bei der Entwicklunng von TOPSY 1.1 wurden -- im Interesse der Einhaltung von Zeitplänen, aber auch in Übereinstimmung mit den damals vorherrschenden Paradigmen -- viele die Struktur von TOPSY betreffenden Entscheide getroffen, die die weitere Entwicklung des Projekts grundsätzlich einschränkten. Um diese Beschränkungen zu überwinden, entschlossen sich die Autoren dazu, eine neue Version zu erarbeiten, die sich durch eine fortschrittliche Architektur auch für den Forschungs- und produktiven Einsatz auf eingebetteten Systemen eignen sollte, ohne aber die Prinzipien von TOPSY und dessen Einsetzbarkeit in der Lehre in Frage zu stellen.

\subsection{Leistungen und Resultate}
\label{related:project2:achievements}
Im Rahmen dieser Diplomarbeit entstand die Architektur von TOPSY v3, die die Grundlage unserer Arbeit bildet, und lauffähige Implementationen auf dem MIPS R3000- und dem StrongARM-Core des Intel IXP1200-Prozessors. Im Unterschied zur Architektur von TOPSY 1.1 wurde das Microkernel-Modell um das fortschrittliche Konzept der Protection Domains für die Speicherverwaltung erweitert, und die dafür notwendigen internen Anpassungen vorgenommen, ohne die bewährten Interfaces zu den User-Programmen zu verändern. So wurde sichergestellt, dass bestehende Anwendungen mit minimalen Änderungen auch auf dem neuen System ausführbar sein würden. Ausserdem wurde die Trennung zwischen Verwaltungsteilen des Betriebssystems und dem auf die jeweilige Hardware angepassten Code noch strikter vorgenommen, um die Portierung auf weitere Plattformen zu erleichtern.

\subsection{Einschränkungen und Möglichkeiten zur Weiterentwicklung}
\label{related:project2:shortcomings}
Obschon die Arbeit nebst der Implementation auf der MIPS-Referenzplattform als proof of concept eine erste Portierung auf der IXP1200-Plattform enthielt, wurde dadurch nicht bewiesen, dass die Trennung zwischen Kernel- und hardwarenahem Code konsequent vollzogen wurde und sich die neue Architektur auch von Aussenstehenden effizient auf eine neue Plattform portieren lässt. Zudem ist die IXP1200-Plattform inzwischen in die Jahre gekommen und damit als Plattform für ein eingebettetes Betriebssystem nur noch von beschränktem Interesse.

\section{Porting Topsy To The iPAQ Pocket PC (Semesterarbeit)}
\label{related:project3}

\subsection{Motivation und Fokus}
\label{related:project3:motivation}
Nach der Fertigstellung von TOPSY v3 wurde in dieser Arbeit die erste unabhängigen Portierung auf eine neue Plattform in Angriff genommen. Die Zielplattform war ein Taschencomputer der iPAQ~3700-Serie, und damit stellte diese Arbeit die erste eigenständige Portierungsleistung von TOPSY v3, und gleichzeitig die erste Portierung auf eine mobile Plattform dar. Der iPAQ, der einen Intel StrongARM-Prozessor \cite{strongarm} einsetzt, stand dabei stellvertretend für eine ganze Klasse von mobilen und Netzwerkgeräten.

\subsection{Leistungen und Resultate}
\label{related:project3:achievements}
Seit der Fertigstellung dieser Arbeit läuft TOPSY v3 auch auf dem StrongARM-Prozessor eines mobilen Geräts, und unterstützt das Laden und Ausführen von User-Programmen. Die Portabilität von TOPSY~v3 wurde erfolgreich deomnstriert, und abgesehen von einigen Einzelheiten wurde ein störungsfreies Zusammenspiel zwischen Hardware und Betriebssystem erreicht.

\subsection{Einschränkungen und Möglichkeiten zur Weiterentwicklung}
\label{related:project3:shortcomings}
Verzichtet wurden wegen des beschränkten Zeitrahmens und der Zielsetzungen des TOPSY-Projekts auf die Implementation von Stromsparmechanismen, iPAQ-spezifischen Eingabe- und Anzeigegeräten und weiteren Eigenheiten der mobilen Hardware. Ausserdem verwendet das beschriebene iPAQ-Modell einen Intel StrongARM-Prozessor, und damit Hardware, die insbesondere dem im Rahmen der Entwicklung von TOPSY v3 verwendeten Intel IXP1200-Prozessor sehr ähnlich ist. Die Hauptleistung dieser Arbeit bestand nicht in der Portierung an sich, sondern im Erkennen und Beheben von Problemen, die sich bei der Entwicklung und Portierung von Betriebssystemen auf mobilen Plattformen stellen.