Echtzeit-Betriebssystem
VxWorks 7 - Wind River räumt auf
Große Updates haben bei Wind River Seltenheitswert. Die Kunden wünschen sich Stabilität. Aber das Internet mit seinen schnellen technischen Entwicklungen gibt den Takt vor – ein Dilemma, aus der die neue Version einen Ausweg weisen soll.
Der Mars Rover »Curiosity«, gesteuert mit VxWorks, ist eines von Wind Rivers bekanntesten Software-Projekten.
© NASAEtwa alle zehn Jahre gab Wind River eine neue Hauptversion seines Echtzeit-Betriebssystems VxWorks frei. Dieses Jahr ist es wieder so weit. Denn mit Cloud und Internet of Things haben sich die Anforderungen der Kunden geändert. Den Spagat zwischen langfristiger Stabilität und neuen Marktanforderungen will Wind River in Zukunft dynamischer in den Griff bekommen.
Deshalb wurde das Fundament des Betriebssystems neu aufgebaut: Wind River hat das System von einer monolithischen zu einer modularen Architektur umgestellt. Bisher war das gesamte Betriebssystem ein einziger großer Block. Die Schnittstellen zwischen den unterschiedlichen Modulen und Funktionsebenen waren auf natürliche Weise gewachsen und wenn irgendwo etwas geändert wurde, war ein großer Testaufwand nötig, um die Auswirkungen in alle Äste zu verfolgen. Die Integration neuer Funktionen oder Netzwerkprotokolle war aufwendig und deshalb gab es nur ungefähr alle 18 Monate ein Update.
"Bei den ganzen Netzwerkprotokollen gibt es durch neue RFCs ständig Änderungen und bei wichtigen Protokollen wie USB 3.0 oder Bluetooth Low Energy konnten wir die Kunden nicht eineinhalb Jahre warten lassen", sagt Michael Gaudlitz, FAE bei Wind River. Die nun erfolgte Modularisierung habe Wind River einigen Aufwand gekostet, weil Funktionen durch dokumentierte APIs sauber gekapselt werden mussten, sagt Gaudlitz. Dafür können neue Funktionen jetzt einfach "eingehängt" werden, ohne dass Rückwirkungen auf das Gesamtsystem zu befürchten sind. Mehr noch: Es können auch mehrere Versionen etwa eines Dateisystems oder eines Netzwerkprotokolls in der Entwicklungsumgebung koexistieren. Das erleichtert die Abwärtskompatibilität deutlich. Updates soll es in Zukunft geben, wenn es nötig ist – dank der agilen Entwicklung in kleineren Schritten und schnellerer Folge. "Wir werden auch kein VxWorks 7.1 auf den Markt bringen", sagt Gaudlitz, "es wird VxWorks 7 bleiben und wird ständig gepflegt."
Zusätzlicher Mikrokernel: ein »Mini-VxWorks«
Dem VxWorks-Kernel wurde ein neuer Mikrokernel zur Seite gestellt. Das passt für »Big-Little«-Konfigurationen mit einem leistungsfähigen und einem stromsparenden Rechenkern.
© ElektronikFür "Deeply Embedded"-Geräte hat Wind River einen besonders kleinen und schlanken Mikrokernel entwickelt, der von einem seit 2002 bestehenden DSP-Echtzeit-Betriebssystem abgeleitet ist. Dieser Mikrokernel enthält eine Teilmenge der Funktionen des VxWorks-Kernel und benötigt in seiner kleinsten Implementierung mit einer Task nur einen Speicher-Footprint von 2.280 Bytes. Laut Wind River eignet sich dieser Mikrokernel z.B. für heterogene Multicore-Architekturen, in denen ein leistungsfähiger "Number Cruncher" und ein kleiner Steuerprozessor stecken. Der Mikrokernel kann dann für den »kleinen« Prozessorkern eingesetzt werden (siehe Bild). Außerdem führt der verringerte Funktionsumfang zu niedrigeren Zertifizierungskosten, falls das Gerät nach einem Standard für funktionale Sicherheit zertifiziert werden soll. Die Boot-Zeit des Mikrokernel beträgt nur 25 µs und sein API ist auch Bestandteil des VxWorks-Kernels, so dass Mikrokernel-Tasks auch unter VxWorks ausgeführt und getestet werden können. Auch wenn nur ein kleineres API im Mikrokernel steckt: Auf harte Echtzeit, Multithreading, Multicore-Unterstützung und Power-Management-Funktionen muss der Entwickler nicht verzichten.
Hypervisor: Von Para- zu Vollvirtualisierung
Der Hypervisor, der bisher ein separates Produkt war, wurde mit Version 7 mit dem VxWorks-Kernel verschmolzen. Das bedeutet, dass keine eigenen Hypervisor-BSPs mehr nötig sind. Überall dort, wo VxWorks läuft, läuft auch der Hypervisor. Auch am Hypervisor selbst hat sich einiges geändert: Er wurde insofern erweitert, als er statt Paravirtualisierung jetzt Vollvirtualisierung ausführt. Virtualisierung bedeutet u.a., dass kritische Aufrufe des Betriebssystems vom Hypervisor abgefangen werden, um Zugriffskonflikte auf die Prozessor-Hardware zu vermeiden. Bei der Paravirtualisierung ist der Hypervisor auf die Kooperation des Gast-Betriebssystems angewiesen, das dazu modifiziert werden muss. Ab sofort sind diese Modifikationen also nicht mehr nötig. Die Kehrseite davon: Der Hypervisor greift jetzt auf Virtualisierungsfunktionen der Prozessoren zu, was die Vorgänge zwar beschleunigt, aber auch die Prozessorauswahl einschränkt. Derzeit werden ARM A7 und A15, PowerPC-e500-Cores und Intel VTx unterstützt. Die VTd-Befehle der Intel-Funktionen (für die Virtualisierung der Prozessor-Peripherie) werden unterstützt, sind aber nicht zwingend erforderlich, damit der Hypervisor funktioniert. Als Gäste kann der Hypervisor VxWorks (auch ältere Versionen), Windows und Linux (Wind River, Kernel.org, Red Hat) bewirten.
Bei sicherheitsrelevanten Systemen kommt die Integration des Hypervisors in VxWorks ins Spiel: Hier bewirtet VxWorks bzw. der Hypervisor sich sozusagen selbst unter Einsatz eines Sicherheits-Schedulers, der die Prozesse zeitlich und örtlich im Speicher sicher voneinander abschottet. Sicherheitskritische Prozesse können auf diese Weise von nicht kritischen Prozessen getrennt werden, was den Aufwand für die Zertifizierung verringert. So genannte Sicherheitsprofile bilden die Grundlage für Zertifizierungen nach verschiedenen Standards (IEC 61508, IEC 50128, DO-178C u.a.). Der Vorteil des Hypervisors bei diesen Zertifizierungen ist, dass durch die Aufteilung in kritische und unkritische Bereiche der Aufwand begrenzt werden kann, weil wirklich nur Kritisches den Zertifizierungsprozess durchlaufen muss.
Viele Tools integriert
Auch der Sicherheit in Sinne von Security wurde in VxWorks viel Aufmerksamkeit gewidmet. Auf x86-Systemen wird UEFI Secure Boot unterstützt, bei dem nur signierte Images geladen werden. Die Signatur wird anhand privater Schlüssel geprüft, die in einem Trusted Platform Module liegen. Beim Herunterfahren des Systems können alle Daten verschlüsselt abgespeichert werden, so dass auch z.B. beim Austausch einer Festplatte niemand mit den darauf befindlichen Daten etwas anfangen kann. Auch der Code der Anwendungsprogramme kann bei jedem Start überprüft werden, so dass nur noch signierter Code abläuft.
Über Preise spricht man nicht
Grafik war ein Thema, das Wind River bisher externen Partner überließ – bis zum Aufkauf der Firma Tilcon. Anscheinend auf sanften Druck von Intel heißt jetzt die Devise: Wenn ein Board Grafikfähigkeiten hat, werden sie auch unterstützt. Neben dem hauseigenen Tilcon-Entwicklungs-Tool, das die bisherige »WindML« (Wind River Media Library) ersetzt, gibt es auch eine Anbindung an das weit verbreitete Grafik-Framework QT von Digia. Hier muss man Runtime und Grafik-Designer dann von Digia beziehen.
Schließlich wurde auch die Wind River Workbench überarbeitet und insbesondere hinsichtlich ihrer Eclipse-Kompatibilität verbessert. Ein Dorn im Auge vieler Kunden war offensichtlich, dass sich Wind Rivers Workbench, obwohl sie auf Eclipse basiert, mit vielen Eclipse-Plug-ins anderer Hersteller nicht vertrug. Das soll sich nun gebessert haben. Zur Beschleunigung des Entwicklungsvorganges kann jetzt dynamisch Code hinzugefügt und sofort ausgeführt werden (ohne das Gesamtsystem neu zu compilieren und zu booten). Hierbei denkt Wind River etwa an das Einfügen kurzer Debug-Funktionen oder einzelner Code-Zeilen. Für Produktivsysteme wird das allerdings nicht empfohlen.
Das Lizenzmodell von Wind River besteht immer aus einer Laufzeit-Komponente und ist außerdem von der Anzahl der Entwicklungsarbeitsplätze abhängig. Die Kunden können zwischen zwei Lizenzmodellen wählen: einer projektbezogenen Lizenz, die sich auf ein bestimmtes Gerätedesign, eine festgelegte VxWorks-Version und den Support für einen bestimmten Zeitraum bezieht. Alternativ dazu gibt es eine Art »Flatrate«, das sog. Enterprise License Model. Wind-River-Geschäftsführer Gerhard Zehethofer sagt dazu: "Das ist das am häufigsten genutzte Lizenzmodell. Die Kunden schließen dabei einen ein- oder mehrjährigen Vertrag und haben Zugriff auf alle bestehenden Versionen."
Der Preis hängt dann auch noch davon ab, welchen Funktionsumfang die Kunden nutzen möchten. Bisher lieferte Wind River hier sogenannten "Plattformen" – Software-Pakete mit einem für bestimmte Marktsegmente sinnvollen Funktionsumfang. An ihre Stelle sind jetzt die marktspezifischen "Profile" getreten, die es für Industrie, Medizin, Konsum- und Netzwerkgeräte gibt (Tabelle auf der vorigen Seite). Dazu kommen Technologie-Profile, die bestimmte technische Spezialaspekte abdecken. Bisher gibt es drei solcher Profile: Security-, Mikrokernel- und Hypervisor-Profil.
Und was kostet das nun?
Dazu möchte Gerhard Zehethofer sich nicht allzu genau festlegen lassen – zu unterschiedlich sind Kunden, Anforderungen und Projekte. Es sagt: "Der Einstiegspreis für kleinere Projekte liegt unterhalb von 10.000 Euro pro Jahr und skaliert mit den Projektanforderungen und der Projektgröße. Zusätzlich bietet Wind River ein Programm speziell für Universitäten. Im Rahmen dieses Programms erhalten qualifizierte Universitäten im Rahmen ihrer Forschungs- und Lehraktivitäten kostenlos Zugriff auf diese und andere Wind-River-Technologien."
















