[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/wiki3\/2020\/12\/01\/adaptive-domanenumgebung-fur-betriebssysteme\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/wiki3\/2020\/12\/01\/adaptive-domanenumgebung-fur-betriebssysteme\/","headline":"Adaptive Dom\u00e4nenumgebung f\u00fcr Betriebssysteme","name":"Adaptive Dom\u00e4nenumgebung f\u00fcr Betriebssysteme","description":"Adeos ((Adaptive Dom\u00e4nenumgebung f\u00fcr Betriebssysteme) ist eine Nanokernel-Hardware-Abstraktionsschicht (HAL) oder Hypervisor, die zwischen Computerhardware und dem darauf ausgef\u00fchrten Betriebssystem (OS)","datePublished":"2020-12-01","dateModified":"2020-12-01","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/wiki3\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/wiki3\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/5\/5e\/AdeosArchitecture.png\/220px-AdeosArchitecture.png","url":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/thumb\/5\/5e\/AdeosArchitecture.png\/220px-AdeosArchitecture.png","height":"128","width":"220"},"url":"https:\/\/wiki.edu.vn\/wiki3\/2020\/12\/01\/adaptive-domanenumgebung-fur-betriebssysteme\/","wordCount":2024,"articleBody":"Adeos ((Adaptive Dom\u00e4nenumgebung f\u00fcr Betriebssysteme) ist eine Nanokernel-Hardware-Abstraktionsschicht (HAL) oder Hypervisor, die zwischen Computerhardware und dem darauf ausgef\u00fchrten Betriebssystem (OS) arbeitet.[1][2] Es unterscheidet sich von anderen Nanokernen dadurch, dass es nicht nur eine Schicht auf niedriger Ebene f\u00fcr einen \u00e4u\u00dferen Kern ist. Stattdessen sollen mehrere Kernel zusammen ausgef\u00fchrt werden, was den vollst\u00e4ndigen Virtualisierungstechnologien \u00e4hnelt. Es handelt sich um kostenlose Open-Source-Software, die unter einer GNU General Public License (GPL) ver\u00f6ffentlicht wird. Adeos bietet eine flexible Umgebung f\u00fcr die gemeinsame Nutzung von Hardwareressourcen zwischen mehreren Betriebssystemen oder zwischen mehreren Instanzen eines Betriebssystems, sodass mehrere priorisierte Dom\u00e4nen gleichzeitig auf derselben Hardware vorhanden sein k\u00f6nnen.Adeos wurde erfolgreich unter den Linux-Kernel eingef\u00fcgt und er\u00f6ffnet eine Reihe von M\u00f6glichkeiten, z. B. SMP-Clustering (Symmetric Multiprocessing), effizientere Virtualisierung, Patchless-Kernel-Debugging und Echtzeit-Computing-Systeme (RT) f\u00fcr Linux.Unter HALs ungew\u00f6hnlich, kann Adeos als Linux-ladbares Kernelmodul geladen werden, damit ein anderes Betriebssystem mit ausgef\u00fchrt werden kann. Adeos wurde im Kontext der Echtzeit-Anwendungsschnittstelle (RTAI) entwickelt, um sie zu modularisieren und die HAL vom Echtzeitkern zu trennen. Table of ContentsVorherige Arbeit[edit]Die Architektur[edit]Adeos Interrupt Pipe[edit]Anwendbarkeit[edit]Allgemeine Nutzung von Betriebssystemressourcen[edit]Betriebssystementwicklung[edit]Patchless Kernel Debugger und Prober[edit]Siehe auch[edit]Verweise[edit]Externe Links[edit]Vorherige Arbeit[edit]Es gibt zwei Kategorien von Methoden, mit denen mehrere Betriebssysteme auf demselben System ausgef\u00fchrt werden k\u00f6nnen. Die erste ist simulationsbasiert und bietet eine virtuelle Umgebung, in der zus\u00e4tzliche Betriebssysteme ausgef\u00fchrt werden k\u00f6nnen. Die zweite schl\u00e4gt die Verwendung einer Nanokernel-Schicht vor, um die gemeinsame Nutzung von Hardware zu erm\u00f6glichen.[1]In der Simulationskategorie gibt es Tools wie Xen, VMware, Plex86, VirtualPC und SimOS. Es gibt auch eine Kernel-basierte virtuelle Maschine (KVM), die Adeos \u00e4hnlicher ist[citation needed], ist jedoch nicht RT und erfordert spezielle Unterst\u00fctzung f\u00fcr Virtualisierungshardware. Diese Methoden werden f\u00fcr Benutzer verwendet, die Anwendungen ausf\u00fchren m\u00f6chten, die ihrem Basisbetriebssystem fremd sind. Sie bieten dem Benutzer keine Kontrolle \u00fcber 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\u00e4gt vor, Miniatur-Hardware-Management-Einrichtungen zu erstellen, mit denen anschlie\u00dfend Produktionsbetriebssysteme erstellt werden k\u00f6nnen[citation needed]. Das Problem dieses Ansatzes besteht darin, dass das Problem vorhandener Betriebssysteme und ihrer Benutzerbasis nicht behandelt wird.[1]Adeos adressiert die Anforderungen beider Anwendungskategorien, indem es eine einfache Schicht bereitstellt, die unter einem unver\u00e4nderten laufenden Betriebssystem eingef\u00fcgt wird, und anschlie\u00dfend die erforderlichen Grundelemente und Mechanismen bereitstellt, damit mehrere Betriebssysteme dieselbe Hardwareumgebung gemeinsam nutzen k\u00f6nnen. Adeos versucht nicht, die Verwendung der Hardware durch die verschiedenen Betriebssysteme st\u00e4rker einzuschr\u00e4nken, als dies f\u00fcr den eigenen Betrieb von Adeos erforderlich ist. Stattdessen muss eine solche Einschr\u00e4nkung 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\u00fcckzugeben.[1] Die Architektur[edit] Adeos implementiert eine Warteschlange von Signalen. Jedes Mal, wenn ein Peripherieger\u00e4t ein Signal sendet, werden die verschiedenen Betriebssysteme, die auf dem Computer ausgef\u00fchrt werden, nacheinander aktiviert und m\u00fcssen 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\u00e4chste Betriebssystem in der Kette \u00fcbergeben. Abgebrochene Signale werden nicht an letztere Stufen weitergegeben.[1]Da Adeos einen gleichberechtigten und vertrauensw\u00fcrdigen Zugriff auf die Hardware sicherstellen muss, \u00fcbernimmt es die Kontrolle \u00fcber 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\u00e4ne enthalten, \u00fcber die es die vollst\u00e4ndige Kontrolle hat. Diese Dom\u00e4ne kann einen privaten Adressraum und Software-Abstraktionen wie Prozesse, virtueller Speicher, Dateisysteme usw. enthalten. Adeos versucht nicht, Richtlinien f\u00fcr die Verwendung der Hardware festzulegen, es sei denn, dies ist f\u00fcr den Betrieb erforderlich. Die Aufgabe, die Richtlinie zu bestimmen, bleibt dem Systemarchitekten \u00fcberlassen.[1]Adeos Interrupt Pipe[edit] Adeos verwendet eine Interrupt-Pipe, um Interrupts \u00fcber die verschiedenen Dom\u00e4nen zu verbreiten, die auf der Hardware ausgef\u00fchrt werden. Da einige Dom\u00e4nen m\u00f6glicherweise lieber die ersten sind, die Hardware-Interrupts empfangen, bietet Adeos einen Mechanismus f\u00fcr Dom\u00e4nen, um Zugriff auf das Versenden von Priorit\u00e4ts-Interrupts zu erhalten. Tats\u00e4chlich platziert Adeos den Interrupt-Handler der anfordernden Dom\u00e4ne und die zugeh\u00f6rigen Tabellen, die in der SPACE-Terminologie als Interrupt-Mechanismus bezeichnet werden k\u00f6nnen, in den ersten Phasen der Interrupt-Pipeline. Dom\u00e4nen k\u00f6nnen steuern, ob sie Interrupts akzeptieren, ignorieren, verwerfen oder beenden. Jedes davon hat einen anderen Effekt und wird unterschiedlich gesteuert.[1]Das Akzeptieren von Interrupts ist der normale Zustand des Interrupt-Mechanismus einer Dom\u00e4ne. Wenn Adeos auf eine Dom\u00e4ne st\u00f6\u00dft, die Interrupts akzeptiert, ruft es seinen Interrupt-Handler auf, nachdem die erforderliche CPU-Umgebung und der Stapelinhalt f\u00fcr den korrekten Betrieb des Interrupt-Handlers festgelegt wurden. Das Betriebssystem kann dann entscheiden, eine beliebige Anzahl von Operationen einschlie\u00dflich der Aufgabenplanung auszuf\u00fchren. Sobald das Betriebssystem fertig ist, wird die Pipeline wie geplant fortgesetzt, indem Interrupts in der Pipeline weitergegeben werden.[1]Wenn ein Betriebssystem in einer Dom\u00e4ne aus irgendeinem Grund nicht unterbrochen werden m\u00f6chte, fordert es Adeos auf, die Phase zu blockieren, die seine Dom\u00e4ne in der Interrupt-Pipeline einnimmt. Auf diese Weise gehen Interrupts nicht weiter in der Pipeline und werden in der von der Dom\u00e4ne belegten Phase blockiert. Wenn das Betriebssystem nicht mehr unterbrochen werden m\u00f6chte, 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.[1]Wenn eine Dom\u00e4ne Interrupts verwirft, geht der Interrupt \u00fcber die von der Dom\u00e4ne belegte Stufe und f\u00e4hrt mit den anderen Stufen fort. Wenn eine Dom\u00e4ne Interrupts beendet, werden die von ihr beendeten Interrupts nicht an letztere Stufen weitergegeben. Das Unterbrechen und Beenden von Interrupts ist nur m\u00f6glich, wenn das Betriebssystem in einer Dom\u00e4ne Adeos erkennt.Da einige Betriebssysteme Adeos nicht erkennen, ist es m\u00f6glich, eine Dom\u00e4ne zu erstellen, die nur als Handler f\u00fcr dieses Betriebssystem dient. Daher geht diese Phase in der Interrupt-Pipeline immer der Phase der behandelten Dom\u00e4ne voraus und kann mit Adeos Ma\u00dfnahmen f\u00fcr diese Dom\u00e4ne ergreifen, um dem Betriebssystem der behandelten Dom\u00e4ne die Illusion eines normalen Systembetriebs zu verleihen.Sobald Adeos die Pipeline durchlaufen hat, pr\u00fcft es, ob alle Dom\u00e4nen inaktiv sind. Wenn dies der Fall ist, ruft es seine Leerlaufaufgabe auf. Diese Aufgabe bleibt bis zum Auftreten des n\u00e4chsten Interrupts aktiv. Wenn nicht alle Dom\u00e4nen inaktiv sind, wird der Prozessor auf den Zustand zur\u00fcckgesetzt, den er vor dem Eintritt des Interrupts in die Pipeline hatte, und die Ausf\u00fchrung wird dort fortgesetzt, wo er noch \u00fcbrig war. Da Adeos stark von der Hardware abh\u00e4ngig ist, sind viele Details f\u00fcr eine seiner speziellen Implementierungen spezifisch.[1]Anwendbarkeit[edit]Allgemeine Nutzung von Betriebssystemressourcen[edit]Die gemeinsame Nutzung von Allzweck-Betriebssystemressourcen ist eines der Hauptziele von Adeos, eine Umgebung bereitzustellen, in der mehrere Allzweck-Betriebssysteme dieselbe Hardware gemeinsam nutzen k\u00f6nnen.[1]Betriebssystementwicklung[edit]Das Entwickeln von Betriebssystemen ist normalerweise ein komplizierter Prozess, der manchmal zus\u00e4tzliche Hardware wie In-Circuit-Emulatoren erfordert, um die Hardware zu pr\u00fcfen, auf der ein Betriebssystem ausgef\u00fchrt wird. Mit Adeos wird die Betriebssystementwicklung vereinfacht, da unerw\u00fcnschtes Verhalten von einem geeigneten Domain-Handler gesteuert werden kann. Es kann auch einen Standarddom\u00e4nenhandler f\u00fcr die Betriebssystementwicklung bereitstellen, unter dem Entwickler m\u00f6glicherweise den direkten Zugriff auf die Hardware steuern, die sie steuern sollen. Da Adeos selbst ein Kernel-Modul ist, k\u00f6nnen solche Entwicklungsdom\u00e4nen-Handler unabh\u00e4ngig von Adeos entwickelt werden.[1]Patchless Kernel Debugger und Prober[edit]Adeos bietet Kernel-Debuggern und -Probern die M\u00f6glichkeit, die Kontrolle \u00fcber Linux zu \u00fcbernehmen, ohne Linux zu \u00e4ndern. Wie bei anderen Adeos-Dom\u00e4nen w\u00fcrden diese Einrichtungen als normale Kernelmodule geladen und danach von Adeos eine Ring-Null-Dom\u00e4ne anfordern. Sobald dies erledigt ist, k\u00f6nnen sie das Versenden von Priorit\u00e4tsinterrupts in der Interrupt-Pipeline anfordern. Bevor Linux Interrupts verarbeiten kann, kann es diese Interrupts abfangen und die angeforderten Debugging-Aufgaben ausf\u00fchren. Dies kann auch auf Leistungsprofiler und andere solche Entwicklungswerkzeuge ausgedehnt werden.[1]Siehe auch[edit]Verweise[edit]Externe Links[edit]"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki3\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/wiki3\/2020\/12\/01\/adaptive-domanenumgebung-fur-betriebssysteme\/#breadcrumbitem","name":"Adaptive Dom\u00e4nenumgebung f\u00fcr Betriebssysteme"}}]}]