Windows und Echtzeit: Vergleich von Windows Echtzeit-Erweiterungen
Windows Echtzeiterweiterungen im Vergleich
Nicht alle Echtzeiterweiterungen für Windows sind auf die gleiche Art und Weise realisiert, daraus ergeben sich für Anwender teilweise erhebliche Vorteile bzw. es sind ggf. einschränkende Kompromisse zu schließen. Auch wenn auf den ersten Blick der Eindruck erweckt wird ist es nicht so, dass eine Echtzeiterweiterungen Windows selbst zu einem Echtzeitbetriebssystem (RTOS) verwandeln. Bestehende Windows-Anwendungen verhalten sich also nicht automatisch wie Echtzeitanwendungen, wenn eine Windows-Echtzeiterweiterung implementiert wird.
In der Regel implementieren Windows-Echtzeiterweiterungen einen proprietären Echtzeitkernel (oder eine proprietäre Echtzeitumgebung) parallel zu Windows oder sogar lediglich in Windows eingebettet. In diesen Lösungen muss jede Anwendung, die eine Echtzeitanwendung mit Echtzeitverhalten sein möchte, in dem proprietären Kernel oder in dieser proprietären Echtzeitumgebung ausgeführt werden. Dies kann eine Herausforderung für Entwickler sein, da sie die proprietäre Umgebung für die Entwicklung ihrer Echtzeitanwendungen lernen und verwenden müssen. Darüber hinaus müssen sie sich auf die Funktionen beschränken, die vom Hersteller des Echtzeit-Kernels oder der Echtzeitumgebung implementiert wurden. Es können daher Funktionen fehlen oder einige Zeit in Anspruch nehmen, bevor diese vollständig verfügbar sind.
LxWin von acontis unterscheidet sich von proprietären Lösungen
Die neue Windows-Echtzeiterweiterung von acontis, LxWin, funktioniert anders als eine herkömmliche Lösung, um unter Windows Echtzeit zu erhalten und bietet eine interessante Alternative, die Benutzer und Implementierer von Echtzeitanwendungen in Betracht ziehen sollten.
Erstens verwendet LxWin einen stärker getrennten Ansatz für die Echtzeitanwendungen und den Nicht-Echtzeit-Windows-Teil. Anstatt ein proprietäres RTOS oder eine Echtzeitumgebung zu verwenden, bettet LxWin einen harten Linux-Echtzeitkernel in eine Hypervisor-Umgebung ein. Diese Hypervisor-Umgebung ist der Schlüssel und gewährleistet eine viel bessere Isolierung von Windows und der Echtzeit im Vergleich zu herkömmlichen Echtzeiterweiterungen.
Echtzeit Linux ist heute das de-facto Standard RTOS
Darüber hinaus verwendet LxWin das Open Source Linux als RTOS, und damit also keine proprietäre Lösung. Dies ist eine entscheidende Eigenschaft, da Linux in den letzten Jahren zum am häufigsten verwendeten Betriebssystem für industrielle Echtzeitanwendungen geworden ist. Es bedeutet auch, dass Entwickler alle gängigen Tools und Software-Pakete verwenden können, die bereits in der Open Source-Community oder auch als kommerzielle Lösungen für Linux verfügbar sind, ein Erlernen eines neuen proprietären RTOS ist überflüssig.
Die Verwendung von Linux als RTOS in einer Windows-Echtzeiterweiterung ist für industrielle Anwendungen, die Echtzeitverhalten benötigen, daher absolut sinnvoll. Ursprünglich wurde die Echtzeit-Linux-Entwicklungsaktivität vom Open Source Automation Development Lab (OSADL) vorangetrieben, und große Unternehmen wie AMD, Intel, BMW, Roche, Phoenix Contact und KUKA waren alle Mitglieder dieser Organisation. Im Jahr 2016, als die Entwicklung von Echtzeit-Linux immer wichtiger wurde, übernahm die Linux Foundation die Verwaltung des Projekts, um den Mainline-Linux-Kernel selbst in ein Echtzeit-Betriebssystem zu verwandeln. Dieses Ziel wird voraussichtlich im Jahr 2020 oder 2021 erreicht werden. Weitere Informationen finden Sie auf der Real Time Linux-Projektwebsite.
Acontis ist in der seltenen Position, den Trend für industrielle Anwendungen und die am häufigsten verwendeten Betriebssysteme zu erkennen. Unsere EtherCAT Master-Software EC-Master, die heute über 25 verschiedene Betriebssysteme unterstützt, muss normalerweise in einem Echtzeitbetriebssystem ausgeführt werden, um die beste und schnellste Leistung zu erzielen. Heute sehen wir Linux als die am häufigsten verwendete Lösung mit über 35% aller EC-Master-Kunden, und immer mehr Neukunden entscheiden sich für Linux, sodass wir davon ausgehen, dass dieser Prozentsatz steigen wird.
Wir sehen diesen Trend auch auf ganz allgemein im Bereich Industrial, weit über EtherCAT-Anwendungen hinausgehend. Global führende Unternehmen, die Maschinen-, Bewegungs- und Robotiksteuerungen sowie SPSen, Halbleiterfertigungsmaschinen sowie Test- und Messlösungen anbieten, haben begonnen, Echtzeit Linux anstelle anderer älterer Echtzeitbetriebssysteme zu verwenden.
Herausforderungen beim Erstellen des Linux-Kernels in Echtzeit
Es gibt einige Herausforderungen bei der Verwendung von Linux für Echtzeitanwendungen. Eine der schwierigsten Aufgaben ist die Konfiguration des Linux-Kernels für Echtzeitverhalten. Damit der Mainline-Linux-Kernel vollständig als Echtzeit-Kernel realisiert ist, müssen Entwickler heute den Kernel patchen und den Kernel speziell konfigurieren, um Echtzeit zu erreichen. Dies wird oft als RT-PREEMPT-Patch bezeichnet, aber in Wirklichkeit können es viele Patches sein, und nicht alle funktionieren einwandfrei.
Vorteile von Linux
Linux selbst ist nicht nur ein Echtzeit-Kernel, sondern bringt auch viele sehr nützliche Vorteile mit sich. Anspruchsvolle Funktionen wie Netzwerk-Sockets, eine vollständige POSIX-API, Isolation des Benutzers vom Betriebssystem-Bereich (dem Kernel), Multitasking und Multiprocessing sind verfügbar. Für fast jede derzeit auf dem Markt erhältliche Hardware steht ein Linux-Treiber zur Verfügung. Dies bedeutet, dass Entwickler nicht darauf warten müssen, dass ein bestimmter Treiber vom Hersteller einer proprietären Echtzeit-Erweiterungsplattform implementiert und freigegeben wird. Schließlich gibt es unter Linux eine Fülle von Softwarebibliotheken, Protokoll Stacks und Middleware (sowohl Open Source- als auch Closed Source-Produkte): C ++ STL, Boost, Corba, OPC / UA, DDS, AVB / TSN, EtherCAT, PROFINET, Software-basierte SPS, Motion Control-Bibliotheken, CNC-Lösungen und vieles mehr.
Aufgrund der Open-Source-Natur von Linux ist natürlich der gesamte Quellcode, einschließlich der von acontis gelieferten Linux-Komponenten von LxWin, auch Open Source, und Kunden können bei Bedarf sogar tief im Kernel debuggen. Kunden von LxWin können die gesamte Linux-Seite der Lösung im Quellcode erhalten, um maximale Kontrolle über ihre Software zu gewährleisten. Dies wäre mit einer proprietären RTOS-Implementierung niemals möglich.
Schließlich müssen Entwickler, die LxWin verwenden, ihre bevorzugte Microsoft-Entwicklungsumgebung nicht aufgeben. Die Softwareentwicklung und das Debuggen von Echtzeitanwendungen werden mit Microsoft Visual Studio vollständig unterstützt.