Egal wie gut die Validierungswerkzeuge auch sein mögen, letztlich ist es das Gerät mit der Software, das die Zulassung bekommen muss. Das Betriebssystem (Operation System, OS) bildet das Fundament für die Gerätesoftware, daher muss das OS die über die Sicherheit des Geräts getroffenen Aussagen erfüllen. Die Auswahl eines COTS-Betriebssystems, das von Haus aus den für das Gerät geforderten Sicherheitsniveaus wie etwa IEC 62304 oder IEC 61508 entspricht, kann den Aufwand für die Zertifizierung und Tests ganz erheblich reduzieren. Durch Nutzung eines »Clear SOUP«-OS eines Anbieters, der Fehler- und Gefahrenanalysen anbietet, können Zeitaufwand und Kosten für die Zertifizierung deutlich sinken.
Wichtige Anforderungen an das Betriebssystem eines sicheren Systems sind:
Nur ein Echtzeitbetriebssystem (RTOS) kann die deterministischen Antwortzeiten sicherstellen, die für die Verlässlichkeit eines jeden sicheren Softwaresystems unabdingbar sind.
Ein Ausfall einer Komponente eines monolithischen Betriebssystems zieht für gewöhnlich einen Neustart nach sich und kompromittiert somit die Verfügbarkeit des Gerätes. Bei einem RTOS mit Mikrokernel-Architektur liegen Anwendungen, Gerätetreiber, Dateisysteme und Netzwerkstacks außerhalb des Kernels in separaten Adressräumen (siehe Bild). Ein Fehler in einer Komponente führt somit nicht zum Ausfall des Gesamtsystems.
Die Prozesse sollten von einem selbststartenden Software-Watchdog überwacht werden, der einzelne Prozesse stoppen und, wenn die Sicherheit gewährleistet ist, neu starten kann, ohne das System zurücksetzen zu müssen. Ist ein Neustart keine sichere Alternative, muss der Watchdog das System in einen sicheren Zustand (Design Safe State) versetzen.
Um eine hohe Verfügbarkeit der Softwarefunktionen zu garantieren, sollte das RTOS feste oder vorzugsweise adaptive Zeitpartitionierung unterstützen. Bei Letzterer werden CPU-Zeitbudgets zugewiesen; bei einem dynamischen Zuteilungsalgorithmus werden CPU-Zyklen von Partitionen, die ihre Budgets nicht voll ausnutzen, an andere Partitionen »ausgeliehen«, die zusätzliche Rechenzeit gebrauchen können.
Das RTOS sollte eine feingranulare Kontrolle der Privilegierungsstufen im System ermöglichen, um zu vermeiden, dass kompromittierte Prozesse globalen Zugriff auf alle Systemressourcen erhalten – und zwar selbst dann, wenn diese Prozesse mit Root-Berechtigung laufen.