Adaptive Domänenumgebung für Betriebssysteme - Adaptive Domain Environment for Operating Systems

Adaptive Domänenumgebung für Betriebssysteme
Ursprüngliche Autor (en) Karim Yaghmour,
Philippe Gerum
Erstveröffentlichung 3. Juni 2002 ; Vor 18 Jahren ( 03.06.2002 )
Betriebssystem Linux
Plattform IA-32
Verfügbar in Englisch
Art Nanokernel- Hardware-Abstraktionsschicht ( HAL ), Hypervisor
Lizenz GPL
Webseite www .opersys .com / Adeos

Adeos ( Adaptive Domain Environment für Betriebssysteme ) ist eine Nanokernel- Hardware-Abstraktionsschicht ( HAL ) oder Hypervisor , die zwischen Computerhardware und dem darauf ausgeführten Betriebssystem (OS) arbeitet. Es unterscheidet sich von anderen Nanokernen dadurch, dass es nicht nur eine Schicht auf niedriger Ebene für einen äußeren Kern ist. Stattdessen sollen mehrere Kernel zusammen ausgeführt werden, was den vollständigen Virtualisierungstechnologien ähnelt . Es handelt sich um kostenlose Open-Source-Software, die unter einer GNU General Public License (GPL) veröffentlicht wird.

Adeos bietet eine flexible Umgebung für die gemeinsame Nutzung von Hardwareressourcen zwischen mehreren Betriebssystemen oder zwischen mehreren Instanzen eines Betriebssystems, sodass mehrere priorisierte Domänen gleichzeitig auf derselben Hardware vorhanden sein können.

Adeos wurde erfolgreich unter den Linux-Kernel eingefügt und bietet eine Reihe von Möglichkeiten, wie z. B. SMP-Clustering ( Symmetric Multiprocessing ), effizientere Virtualisierung, Patchless-Kernel-Debugging und Echtzeit-Computing- Systeme (RT) für Linux .

Unter HALs ungewöhnlich, kann Adeos als Linux-ladbares Kernelmodul geladen werden , damit ein anderes Betriebssystem mit ausgeführt werden kann. Adeos wurde im Kontext der Echtzeit-Anwendungsschnittstelle ( RTAI ) entwickelt, um sie zu modularisieren und die HAL vom Echtzeitkern zu trennen.

Vorherige Arbeit

Es gibt zwei Kategorien von Methoden, mit denen mehrere Betriebssysteme auf demselben System ausgeführt werden können. Die erste ist simulationsbasiert und bietet eine virtuelle Umgebung, in der zusätzliche Betriebssysteme ausgeführt werden können. Die zweite schlägt die Verwendung einer Nanokernel-Schicht vor, um die gemeinsame Nutzung von Hardware zu ermöglichen.

In der Simulationskategorie gibt es Tools wie Xen , VMware , Plex86 , VirtualPC und SimOS . Es gibt auch eine Kernel-basierte virtuelle Maschine (KVM), die Adeos ähnlicher ist, jedoch nicht RT ist und spezielle Unterstützung für Virtualisierungshardware erfordert. Diese Methoden werden für Benutzer verwendet, die Anwendungen ausführen möchten, die ihrem Basisbetriebssystem fremd sind. Sie bieten dem Benutzer keine Kontrolle über das Basisbetriebssystem. Die Simulation sollte niemals in einer Produktionsumgebung verwendet werden. In der Kategorie Nanokernel gibt es Tools wie SPACE, Cache-Kernel und Exokernel . All dies schlägt vor, Miniatur-Hardware-Management-Einrichtungen zu erstellen, die anschließend zum Erstellen von Produktionsbetriebssystemen verwendet werden können. Das Problem dieses Ansatzes besteht darin, dass das Problem vorhandener Betriebssysteme und ihrer Benutzerbasis nicht behandelt wird.

Adeos adressiert die Anforderungen beider Anwendungskategorien, indem es eine einfache Schicht bereitstellt, die unter einem unveränderten laufenden Betriebssystem eingefügt wird, und anschließend die erforderlichen Grundelemente und Mechanismen bereitstellt, damit mehrere Betriebssysteme dieselbe Hardwareumgebung gemeinsam nutzen können. Adeos versucht nicht, die Verwendung der Hardware durch die verschiedenen Betriebssysteme stärker einzuschränken, als dies für den eigenen Betrieb von Adeos erforderlich ist. Stattdessen muss eine solche Einschränkung vom Systemadministrator oder vom Systemprogrammierer auferlegt werden . Dies setzt das System Missmanagement aus, aber die Idee hinter Adeos ist es, Systemadministratoren und Programmierern die Kontrolle zurückzugeben.

Die Architektur

Adeos Architektur.
Adeos Architektur.

Adeos implementiert eine Warteschlange von Signalen . Jedes Mal, wenn ein Peripheriegerät ein Signal sendet, werden die verschiedenen Betriebssysteme, die auf dem Computer ausgeführt werden, nacheinander aktiviert und müssen entscheiden, ob sie das Signal akzeptieren (verarbeiten), ignorieren, verwerfen oder beenden. Signale, die nicht von einem Betriebssystem verarbeitet (oder verworfen) werden, werden an das nächste Betriebssystem in der Kette übergeben. Abgebrochene Signale werden nicht an letztere Stufen weitergegeben.

Da Adeos einen gleichberechtigten und vertrauenswürdigen Zugriff auf die Hardware sicherstellen muss, übernimmt es die Kontrolle über einige Hardwarebefehle, die von den verschiedenen Betriebssystemen ausgegeben werden. Es darf jedoch auch nicht zu sehr in das normale Verhalten der verschiedenen Betriebssysteme eingreifen. Jedes Betriebssystem ist in einer Domäne enthalten, über die es die vollständige Kontrolle hat. Diese Domäne kann einen privaten Adressraum und Software-Abstraktionen wie Prozesse, virtueller Speicher, Dateisysteme usw. enthalten. Adeos versucht nicht, Richtlinien für die Verwendung der Hardware festzulegen, es sei denn, dies ist für den Betrieb erforderlich. Die Aufgabe, die Richtlinie zu bestimmen, bleibt dem Systemarchitekten überlassen.

Adeos Interrupt Pipe

Adeos Interrupt Pipe.
Adeos Interrupt Pipe.

Adeos verwendet eine Interrupt- Pipe , um Interrupts über die verschiedenen Domänen zu verbreiten, die auf der Hardware ausgeführt werden. Da einige Domänen möglicherweise lieber die ersten sind, die Hardware-Interrupts empfangen, bietet Adeos einen Mechanismus für Domänen, um Zugriff auf die Prioritäts-Interrupt-Dispatching zu erhalten. Tatsächlich platziert Adeos den Interrupt-Handler der anfordernden Domäne und die zugehörigen Tabellen, die in der SPACE-Terminologie als Interrupt-Mechanismus bezeichnet werden können, in den ersten Phasen der Interrupt-Pipeline. Domänen können steuern, ob sie Interrupts akzeptieren, ignorieren, verwerfen oder beenden. Jedes davon hat einen anderen Effekt und wird unterschiedlich gesteuert.

Das Akzeptieren von Interrupts ist der normale Zustand des Interrupt-Mechanismus einer Domäne. Wenn Adeos auf eine Domäne stößt, die Interrupts akzeptiert, ruft es seinen Interrupt-Handler auf, nachdem die erforderliche CPU-Umgebung und der Stapelinhalt für den korrekten Betrieb des Interrupt-Handlers festgelegt wurden. Das Betriebssystem kann dann entscheiden, eine beliebige Anzahl von Operationen einschließlich der Aufgabenplanung auszuführen. Sobald das Betriebssystem fertig ist, wird die Pipeline wie geplant fortgesetzt, indem Interrupts in der Pipeline weitergegeben werden.

Wenn ein Betriebssystem in einer Domäne aus irgendeinem Grund nicht unterbrochen werden möchte, fordert es Adeos auf, die Phase zu blockieren, die seine Domäne in der Interrupt-Pipeline einnimmt. Auf diese Weise gehen Interrupts in der Pipeline nicht weiter und werden in der von der Domäne belegten Phase blockiert. Wenn das Betriebssystem fertig ist und nicht unterbrochen werden möchte, fordert es Adeos auf, die Pipeline zu installieren. Danach folgen alle Interrupts, die in der entsprechenden Phase blockiert wurden, ihrer Route zu den anderen Phasen der Pipeline.

Wenn eine Domäne Interrupts verwirft, geht der Interrupt über die von der Domäne belegte Stufe und fährt mit den anderen Stufen fort. Wenn eine Domäne Interrupts beendet, werden die von ihr beendeten Interrupts nicht an letztere Stufen weitergegeben. Das Unterbrechen und Beenden von Interrupts ist nur möglich, wenn das Betriebssystem in einer Domäne Adeos erkennt.

Da einige Betriebssysteme Adeos nicht erkennen, ist es möglich, eine Domäne zu erstellen, die nur als Handler für dieses Betriebssystem dient. Daher geht diese Phase in der Interrupt-Pipeline immer der Phase der behandelten Domäne voraus und kann mit Adeos Maßnahmen für diese Domäne ergreifen, um dem Betriebssystem der behandelten Domäne die Illusion eines normalen Systembetriebs zu verleihen.

Sobald Adeos die Pipeline durchlaufen hat, prüft es, ob alle Domänen inaktiv sind. Wenn dies der Fall ist, ruft es seine Leerlaufaufgabe auf. Diese Aufgabe bleibt bis zum Auftreten des nächsten Interrupts aktiv. Wenn nicht alle Domänen inaktiv sind, wird der Prozessor auf den Zustand zurückgesetzt, den er vor dem Eintritt des Interrupts in die Pipeline hatte, und die Ausführung wird dort fortgesetzt, wo er noch übrig war. Da Adeos stark von der Hardware abhängig ist, sind viele Details für eine seiner speziellen Implementierungen spezifisch.

Anwendbarkeit

Allgemeine Nutzung von Betriebssystemressourcen

Die gemeinsame Nutzung von Ressourcen für Allzweckbetriebssysteme ist eines der Hauptziele von Adeos, eine Umgebung bereitzustellen, in der mehrere Allzweckbetriebssysteme dieselbe Hardware gemeinsam nutzen können.

Betriebssystementwicklung

Das Entwickeln von Betriebssystemen ist normalerweise ein komplizierter Prozess, der manchmal zusätzliche Hardware wie In-Circuit-Emulatoren erfordert , um die Hardware zu prüfen, auf der ein Betriebssystem ausgeführt wird. Mit Adeos wird die Betriebssystementwicklung vereinfacht, da unerwünschtes Verhalten von einem geeigneten Domain-Handler gesteuert werden kann. Es kann auch einen Standarddomänenhandler für die Betriebssystementwicklung bereitstellen, unter dem Entwickler möglicherweise den direkten Zugriff auf die Hardware steuern, die sie steuern sollen. Da Adeos selbst ein Kernel-Modul ist, können solche Entwicklungsdomänen-Handler unabhängig von Adeos entwickelt werden.

Patchless Kernel Debugger und Prober

Adeos bietet Kernel-Debuggern und -Probern die Möglichkeit, die Kontrolle über Linux zu übernehmen, ohne Linux zu ändern. Wie bei anderen Adeos-Domänen würden diese Einrichtungen als normale Kernelmodule geladen und danach von Adeos eine Ring-Null-Domäne anfordern. Sobald dies erledigt ist, können sie das Versenden von Prioritätsinterrupts in der Interrupt-Pipeline anfordern. Bevor Linux Interrupts verarbeiten kann, kann es diese Interrupts abfangen und die angeforderten Debugging-Aufgaben ausführen. Dies kann auch auf Leistungsprofiler und andere solche Entwicklungswerkzeuge ausgedehnt werden.

Siehe auch

Verweise

Externe Links