Anbieter zum Thema
Das Konzept des Separation Kernels wurde 1981 von John Rushby in dem Aufsatz “The Design and Verification of Secure Systems” vorgestellt. Rushby präsentierte den Separation Kernel als Lösung für die Schwierigkeiten und Probleme im Zusammenhang mit der Entwicklung und Verifikation großer, komplexer Sicherheitskernel, die auf Allzweck-Mehrbenutzersystemen für einen sicheren Betrieb auf mehreren Ebenen sorgen sollten.
Laut Rushby sei die Aufgabe eines Separation Kernels die Erschaffung einer Umgebung, die sich in nichts von der eines physikalisch verteilten Systems unterscheidet: es müsse so aussehen, als ob jedes Regime eine separate, isolierte Maschine sei und dass Information von einer Maschine zur anderen nur entlang bekannter externer Kommunikationswege fließen könne.
1981 verfügten Embedded Prozessoren noch nicht über die Pferdestärken und Funktionen um wirklich mehrere verarbeitbare isolierte Systeme auf einem einzigen Prozessor anbieten zu können. Mit moderner Prozessortechnologie und mit reichlich in embedded Form verfügbaren Multicore-Realisierungen sind John Rushbys Konzept und der Separation Kernel selbst heute eine Realität zum Einsatz in Embedded Systemen.
Nachdem durch Techniken wie Intels VT-d nun auch die Hardware Virtualisierung unterstützt, handelt es sich bei einem modernen Separation Kernel praktisch um ein Betriebssystem, das andere OS als ‚Subjekte’ ausführen kann. Ein Subjekt ist definiert als ein Bündel von Ressourcen zu einer bestimmten Software, durch das diese Software vom Separation Kernel ausgeführt und kontrolliert werden kann.
Ein Subjekt muss jedoch nicht notwendigerweise ein OS sein, es kann sich auch um ein spezielles Programm handeln, das ohne OS innerhalb eines Separation Kernel-Kontextes läuft. Verschiedene Programmteile dieses Systems würden aufgrund des Separation Kernels geschützt, der die Kommunikation auf unterster Ebene mit der Außenwelt regelt und geschützte Interaktion zwischen den verschiedenen Subjekten sorgt.
Ein Separation Kernel weist diese besonderen Merkmale auf:
- Er erzeugt einen isolierten Kontext für jedes auszuführende Subjekt;
- Er stellt verschiedenen Subjekten die Möglichkeit zum effizienten Hardwarezugriff bereit (I/O, Bildspeicher, DMA, etc.);
- Er setzt die Sicherheitsrichtlinien zwischen verschiedenen Subjekten und gegenüber der Außenwelt durch;
- Er bestimmt die Subjekt-basierte Scheduling-Vorgehensweise;
- Er ermöglicht die Kommunikation zwischen den Subjekten;
- Er hält den Overhead gering.
(ID:39582530)