Die Komplexität monolithischer Betriebssysteme ist in sicherheitskritischen Systemen und Infrastrukturen ein kritisches Zulassungsrisiko. Angesichts zehntausender Codezeilen stoßen herkömmliche Ansätze bei der Zertifizierung und Cybersecurity an ihre Grenzen. Erfahren Sie in diesem Beitrag, wie Microkernels (Mikrokerne) durch strikte Modularität und Isolation das Fundament für sichere, flexible und updatefähige Software Defined Produkte (SDX) bilden. Wir zeigen Ihnen, warum der Wechsel von monolithischer Software zu einer Microkernel-Architektur der entscheidende Wettbewerbsvorteil für die nächste Generation industrieller Systemsoftware ist.
Was ist ein Microkernel? Definition und Architektur
Ein Microkernel stellt eine spezielle Architektur eines Kernels dar. Der Kernel (»Betriebssystemkern«) ist das Fundament auf dem Betriebssysteme aufbauen und besitzt somit privilegierten Zugriff auf die Hardware. Die Architektur eines Kernels unterscheidet sich dabei welche Fähigkeiten dem Kernel-Mode und welche dem User-Mode zugeordnet werden. Hierbei geht es z.B. um die Ressourcenverwaltung von Speicher, Prozessen (Scheduling), Bereitstellung des Dateisystems und Netzwerk, sowie die grundsätzliche Bereitstellung der Schnittstelle zur Hardware (Treiber, Zugriff auf Prozessor, weitere Peripherie).
Während bei einem Monolithischen Kernel der gesamte Funktionsumfang im privilegierten Kernel-Modus integriert ist, setzt ein Microkernel auf eine minimalistischere Architektur. Bei einem Microkernel sind lediglich rudimentäre Fähigkeiten (z.B. Interprocess Communication, Scheduling, virtueller Speicher) im Kernel-Modus verfügbar. So sind bspw. Geräter-Treiber und das Dateisystem dem User-Modus zugeordnet und können individuell vom Systembetreiber implementiert werden.
Man spricht bei Microkernels auch von der überschaubaren »Trusted Computing Base«, also extrem sicherheitskritischen Code, dem aufgrund von Validation und Verifikation getraut werden kann. Diese Basis ist faktoriell kleiner als bei monolithischen Kernels, was den entscheidenden Vorteil bei Zertifizierungsprozessen darstellt.

Meine Beobachtung: Heutige Nutzer- und Kundenanforderungen sind häufig nur noch mit Fähigkeiten von Betriebssystemen realisierbar. Seit den 1990ern und spätestens mit dem Einzug der Smartphones sind Betriebssysteme allgegenwärtig. Solche gewohnte Funktionalitäten werden sich auch auf Fahrzeugen, Flugzeugen, Schiffen, kritischen Infrastrukturen etc. gewünscht. Dabei entstehen Systeme, die unterschiedliche Safety Integrity Levels (SIL) berücksichtigen müssen. Sogenannte Mixed-Criticality-Systems (MCS) entstehen, wofür herkömmliche Betriebssysteme aus dem Konsumentenbereich eine Gefährdung sind. Funktionale Sicherheit, softwarebasierte Innovation und User/Developer-Experience sollten kein Widerspruch sein!
Die Komplexitätsfalle: Warum monolithische Systeme bei Software Defined X (SDX) scheitern
Die Komplexität von Software in Fahrzeugen, Luft- und Raumfahrt, Schiffen, Maschinen, Telekommunikation, Medizin und kritischen Infrastrukturen nimmt weiter drastisch zu. Ein Treiber dieser Entwicklung sind Anforderungen an die Unternehmen, softwaredefinierte Produkte (Software Defined X Paradigma) herzustellen, die App-Store-Funktionen, neue Features durch Software und kontinuierliche Software-Updates für einen verlängerten Produktlebenszyklus vorsehen. Um diese Anforderungen zu erfüllen, sind betriebssystemartige Funktionen notwendig. Doch gerade in sicherheitskritischen und zulassungspflichtigen Produkten übersteigt die Komplexität von herkömmlichen Betriebssystemen (z.B. Linux Ubuntu mit geschätzten 50 Mio. Zeilen an Code) den grundsätzlichen Zulassungsprozess (Zertifizierung einer Codezeile dauert geschätzt ca 3 Stunden) sowie Sicherheitsgarantien in Safety (z.B. Determinismus) und Security (robust ggü. Hacker-Angriffen). Außerdem ist eine Fehlfunktion von Produkten in den zuvor genannten Bereichen kritisch und somit ein beliebtes Ziel von bösartigen Akteuren (vgl. Salt Typhoon Hacker-Gruppe mit Fokus auf krit. Infrastruktur). Nicht außer Acht zu lassen ist zudem auch menschliches Versagen in der Entwicklung und Pflege der Software-Updates. Diese Systeme bauen auf einer monolithischen Architektur auf, welche zu Schwierigkeiten bei sich schnell ändernden Anforderungen führt. Denn bei kleinen Anpassungen muss das gesamte Betriebssystem aktualisiert werden, mit oft unüberschaubaren Auswirkungen. Durch diese Fehleranfälligkeit werden die Effizienz und Flexibilität von softwaredefinierten Lösungen behindert. Um in Deutschland und Europa weiterhin zukunftsfähige Produkte und Systeme herzustellen, benötigt es einen Paradigmenwechsel.

Die Microkernel-Lösung: Safety, Security und Performance gewährleisten
Microkernels können hierbei das entsprechende Fundament sein, um innovative und softwaredefinierte Vorhaben unter Garantie von Safety, Security und Performance zu realisieren.
Die 3 Vorteile von Microkernel-Architekturen für die Industrie sind der Schlüssel, um Systeme und Produkte mit den zuvor genannten Anforderungen zu realisieren.
1. Modulare Architektur und Baukastenprinzip für schnellere Zertifizierung
- Durch den Minimalismus des Microkernels werden Software- und Hardwareentwicklern Flexibilität und Anpassbarkeit gewährleistet. Es besteht ein geringerer Anteil an Abhängigkeiten im Kernel selbst, da einige Komponenten ohnehin an das Entwicklungsteam ausgelagert werden. Hierbei kann das Entwicklungsteam ein individuelles und feinteiliges Systemdesign implementieren, ohne Einschränkungen in Kauf nehmen zu müssen. Dabei können Komponenten auch wiederverwendbar und portabel entwickelt werden, um nach einem Baukastenprinzip künftige Systeme zu entwickeln und dabei (Entwicklungs-)Kosten zu sparen.
- Warum ist dies wichtig für softwaredefinierte Vorhaben?
- Schnellere Zertifizierung ist durch Modularität effizienter zu erreichen, da die Software in überschaubarem Umfang geprüft wird. Allen voran ist durch den überschaubaren Umfang ein deterministisches Verhalten der Software überprüfbar, im Gegensatz zu monolithischen Systemen (siehe hier den Vergleich der Lines of Code, Abbildung unten). Einmal geprüft, ist unter Umständen durch die Modularität sogar im neuen Zielsystem keine Re-Zertifizierung der Komponente mehr nötig.
- Softwarebasierte Innovation kann einfacher und schneller entstehen, da die neue Möglichkeit der Kombination und Erweiterung einzelner Komponenten besteht.
2. Starke Isolation für Stabilität, Cybersecurity und App-Store-Funktionen
- Ein entscheidender Vorteil, der durch die modulare Architektur gegeben ist, ist die starke Isolation von Komponenten (Dateisystem, Treiber…) im User-Space. Dadurch entstehen Stabilität und Sicherheit. Stabilität durch Isolation kann gewährleistet werden, da sich bei fehlerhaftem Verhalten die Komponenten nicht das gesamte System beeinträchtigen. Dadurch wird auch die Cybersecurity durch Isolation erhöht, da bösartige Komponenten nicht automatisch (ohne weitere Konfiguration) Sicherheitslücken ausnutzen können. Einen entscheidenden Beitrag leistet hierzu auch die überschaubare »Trusted Computing Base«
- Warum ist dies wichtig für softwaredefinierte Vorhaben?
- App–Stores stellen »untrusted 3rd party«-Software dar und könnten potenziell Schadcode enthalten, weshalb erhöhte Sicherheitsmaßnahmen notwendig sind, derartige Software auf eigenen Produkten auszuführen.
- Updatefähigkeit stellt gleichzeitig ein Risiko dar, denn neuartige Software kann auf unerwartete Weise Bestandssoftware beeinflussen und zu unerwünschtem oder gar sicherheitskritischem Verhalten führen. Insofern muss solch fehlerhaftes Beeinflussen eingedämmt werden – z.B. mit automatischer Isolation.
3. Effiziente Wartbarkeit: Längerer Produktlebenszyklus durch feingranulare Updates
- Durch die feingranulare Systemstruktur, die sich durch einen Microkernel ergibt, sind Updateprozesse in puncto Dauer und Risiko effizienter möglich.
- Ein monolithisches Betriebssystem ist äußerst risikoreich zu aktualisieren, da eine Vielzahl von Kernel-Abhängigkeiten und User-Space-Abhängigkeiten beeinträchtigt sind. Auch die Größe des Updates ist bei einem Microkernel erheblich niedriger, da nur die gewünschte Komponente verarbeitet werden muss.
- Warum ist dies wichtig für softwaredefinierte Vorhaben?
- Ein verlängerte Produktlebenszyklus ist ein zentrales Versprechen und so ist die gezieltere Wartbarkeit insbesondere relevant bei ressourcenbeschränkten Endgeräten und niedriger oder eingeschränkter Bandbreite zur Übertragung.
- Aus Aspekten der Cybersecurity ist eine fortlaufende Wartung immer förderlich, um fortlaufend gehärtete Systeme ohne Ausfallzeiten im Betrieb zu haben.
Microservice vs. Microkernel: Trends in der Systemsoftware
Ziemlich zu Beginn der 2010er Jahre prägte das Konzept der Microservices das gesamte IT-Umfeld. Hierbei traf Cloud-Computing und DevOps auf die Notwendigkeit große monolithischer Anwendungen auf Informationssystemen flexibler, wartbarer und skalierbarer zu gestalten. Abstrakt betrachtet also genau das gleiche Prinzip wie bei den Microkernels – nur natürlich hardwarenah (low-level), während Microservices eher auf der oberen Schicht des OSI-Layers angesiedelt sind. Dennoch ist gesamtheitlich ein Trend zu beobachten, dass die Domäne der eingebetteten Systeme und die Domäne der Informationssysteme sich gegenseitig mit fortlaufender Zeit immer mehr angleichen.

Microkernel aus der Forschung in die Anwendung skalieren

Das Konzept Microkernel ist mindestens so alt wie die ersten Computer und war zunächst viel mehr Theorie als Praxis. Mitte der 1980er Jahre wurden mit MINIX oder MACH (Grundlage für Apple XNU, folglich z.B. von Apple iOS, watchOS, iPadOS, tvOS) historische Meilensteine in der Microkernel-Entwicklung gelegt. Besonders wegweisend waren auch die Arbeiten des deutschen Informatikers Jochen Liedtke, der die heutige Kategorie der L4-Microkernels prägte.
Microkernels geben Entwickler:innen große Freiräume in der Systemgestaltung. Um die Freiräume zu nutzen und die Vorteile von Microkernels ausspielen zu können, bedarf es Expertise und Schulung. Das Fraunhofer IESE steht Ihnen zur Seite bei der Evaluierung des Einsatzes von Microkernels in Ihrem Vorhaben, sowie bei der neutralen Technologieauswahl von Microkernels.
Bekannte Microkernel, die ihr Potenzial in der Industrie auf Millionen Systemen bewiesen haben, sind z.B.:
- QNX (Blackberry, kommerziell)
- seL4 (einzig formal verifizierter Microkernel, Open Source)
- PikeOS (SYSGO, kommerziell)
- L4Re (Kernkonzept, kommerziell und Open Source)
- Und viele weitere Unter- und hybride Gruppierungen
Microkernels als Fundament für softwaredefinierte Systeme
Der Reifegrad von Microkernels und die Anforderungen aus der Wirtschaft bezüglich Software Defined X treffen nun aufeinander. Microkernels haben in all den Jahren die Mehrwerte auf Millionen von Systemen unter Beweis gestellt. Sei es im Bereich von Automobil, Industrie 4.0, Medizin/Pharma, Luftfahrt, Raumfahrt, Schifffahrt, Verteidigung, kritischen Infrastrukturen oder Telekommunikation. Bislang arbeiteten Microkernels aber oft in Spezialvorhaben der einzelnen Industrien. Doch an den Anforderungen heutiger Produkte (Updatefähigkeit, App-Store, Safety- und Security-Zertifizierung) stoßen traditionelle Software-Engineering-Prozesse an ihre Grenze. Microkernels erscheinen hierbei als ein äußerst effizienter Ansatz, um betriebssystemartige Funktionen sicher und wartbar zu realisieren.
Planen Sie den Umstieg auf eine modulare Systemarchitektur? Gerne helfen wir Ihnen weiter, Software Defined X mit Hilfe von Microkernels für Ihr Unternehmen zu evaluieren. Kontaktieren Sie uns!
