Eine Publikation der Swissprofessionalmedia AG
RTEMS hilft OEM und Zulieferern, Abhängigkeiten zu reduzieren : Ausgabe 16/2014, 03.09.2014

User schätzen Verfügbarkeit und Stabilität

In den letzten Jahren haben viele Entwickler die Vorteile von Open-Source-Software schätzen gelernt: Neben den Kostenvorteilen zählen auch die offengelegte Implementierung, die Zertifizierbarkeit und die Anpassbarkeit der Funktionalität an die eigenen Bedürfnisse dazu. Daher gewinnt das Open-Source-Echtzeitbetriebssystem RTEMS immer mehr Marktanteile.

Autor: Thomas Dörfler

Die Entscheidung für eine bestimmte Be-triebssystemplattform hat für viele Firmen auch eine strategische Bedeutung, da sie über viele Jahre und Folgeprojekte stabil bleiben sollte. Hier macht das Prinzip der quelloffenen, freien Software, unabhängig von den Entscheidungen des Betriebssystemanbieters, Sinn. Deshalb gewinnt RTEMS (Real-Time Operating System for Multiprocessor Systems) nicht nur in Luft- und Raumfahrt, sondern auch bei industriellen und automobilen Anwendungen Marktanteile.

Woher rührt das Interesse an RTEMS?

RTEMS hat seine Wurzeln im Bereich der US-Army, wo man es für Steuerungszwecke als Ersatz für ein kommerzielles Echtzeit-Betriebssystem entwickelte. Schon relativ bald wurde sein Quellcode veröffentlicht und unter einer modifizierten GPL (General Public License) nutzbar. Seit diesem Zeitpunkt orientiert sich die Weiterentwicklung einerseits an den Anforderungen der Anwender, andererseits aber an den festen Eckpfeilern Echtzeitfähigkeit, Quelloffenheit und kostenfreie Nutzbarkeit. Diese Stabilität wissen viele Nutzer inzwischen zu schätzen.

Schnellere Time-to-Market ist gefragt

Seit Jahren statten Entwickler immer mehr eingebettete Systeme mit speziellen Betriebssystemen aus. Neben den klassischen Grundfunktionen wie Multitasking und Intertask-Kommunikation gewinnen erweiterte Funktionalitäten wie Dateisysteme für Flash-Karten, aber auch USB- und Netzwerkanbindung immer mehr an Bedeutung. Ein schlüsselfertiges Betriebssystem erleichtert hier die Entwicklung ungemein. Die Entwickler können sich stärker auf die produktspezifischen Herausforderungen konzentrieren und sich auf die fertigen Dienste und Funktionen des Betriebssystems abstützen.

Risiken von Closed Source nicht unterschätzen

Allerdings gibt es ein böses Erwachen, wenn das Betriebssystem aus verschiedensten Gründen plötzlich nicht mehr zur Verfügung steht: sei es, weil der Hersteller einzelne Prozessorarchitekturen nicht mehr unterstützt, sich strategisch neu ausrichtet oder schlicht vom Markt verschwindet. Die Weiternutzung in bestehenden Produkten ist zwar meist noch sichergestellt, allerdings muss man dann ohne Bugfixes oder gar Funktionserweiterungen auskommen. Eine Nutzung desselben Betriebssystems in einem Nachfolgeprodukt ist jedoch unmöglich, das angeeignete Betriebssystem-Know-how und der produktspezifische Quellcode ist in weiten Teilen verloren.

Die Alternative Open Source hat sich bewährt

Das kann mit RTEMS nicht passieren. Das «Open Source»-Prinzip von RTEMS in Verbindung mit einer freien Nutzungslizenz löst diese Abhängigkeit vom Systemhersteller. Der offene Quellcode erlaubt ein tiefer gehendes Verständnis des Betriebssystems; neben gros-sen Erleichterungen bei der Applikations-entwicklung wird dadurch auch der Wissensaustausch von Entwickler zu Entwickler gefördert. Die Anwender können zwar weltweit auf kommerziellen Support zurückgreifen, sind aber nicht abhängig davon. Hinzu kommt noch, dass viele Verbesserungen, die Anwender für RTEMS entwickelt haben, in das System integriert wurden, damit allen Nutzern zur Verfügung stehen und mit dem Betriebssystem kontinuierlich weitergepflegt werden.

Ein Beispiel aus der Praxis

Beispielhaft für die Einsatzvarianten von RTEMS lässt sich hier ein System zur Datenaufzeichnung (Logger) im Rennsportbereich beschreiben, das der Autor mitentwickelt hat. Die Kernanforderungen waren anspruchsvoll:

  • Integration der Hardware in die speziell konzipierte Motorsteuerung
  • Bootzeit unter 5 Sekunden
  • Aufzeichnungsdatenraten im Bereich von 500 bis 1000 KByte/s
  • maximale Aufzeichnungsdauer im Stundenbereich
  • Speicherung der Daten auf Flashkarte
  • Abruf der Daten per Ethernet mit mindestens 80 MBit/s
  • Flexibilität für sich ändernde Einsatzszenarien
  • Ankopplung an den CAN-Bus
  • Die Hardware wurde für diese Anwendung massgeschneidert entwickelt. Als zentraler Mikrocontroller kam dabei ein MPC 5200 von Freescale zum Einsatz, der nicht nur über alle benötigten Schnittstellenmodule verfügt, sondern auch ausreichend Rechenleistung bietet.

Warum RTEMS und kein anderes Betriebssystem?

Nach Analyse der Anforderungen fiel die Wahl auf RTEMS als Betriebssystem: Alle benötigten APIs für die benötigten Funktionalitäten waren vorhanden und durch die quelloffene Struktur war ersichtlich, dass die Anpassungen an die speziellen Anforderungen des Systems unterstützt wurden. Die weitere Entwicklung erfolgte dann in mehreren Schritten:

  • Die Portierung von RTEMS an die spezifische Hardwareplattform und deren Schnittstellen führte ein RTEMS-Support-Center durch.
  • Die Struktur der Applikationssoftware wurde geplant und dann, unterstützt vom RTEMS-Support-Center, von den Softwareentwicklern innerhalb des Rennsportteams durchgeführt.
  • Der Durchsatz der kritischen Datenpfade wurde überprüft und dabei einige Schwachstellen identifiziert, die sich durch die Struktur der eingesetzten Hardware ergaben. Daher optimierte man das Zusammenspiel der beteiligten Softwarekomponenten, begonnen bei den Schnittstellentreibern über die Filesystem-Unterstützung von RTEMS bis zur Applikation.

Durchsatzoptimierung gestaltete sich relativ einfach

Gerade die Durchsatzoptimierung gestaltete sich relativ einfach, da auch die Betriebssystemmodule für eine Analyse offen sind. Der Quellcode zeigt die generelle Struktur und Funktionsweise, erlaubt Änderungen und Anpassungen. So liess sich die Pufferverwaltung im genutzten Dateisystem auf grosse Dateien hin optimieren und die Unterstützung von DMA-fähigen Flash-Treibern verbessern. Damit liessen sich die ehrgeizig gesetzten Ziele erreichen.

Hier zeigen sich exemplarisch die Vorteile des Open-Source-Prinzips von RTEMS: Die Verbesserungen, die für dieses Kundenprojekt am Betriebssystemcode vorgenommen wurden, wurden ins Quellcode-Repository von RTEMS übernommen. Einerseits profitieren heute alle RTEMS-Anwender von den Verbesserungen. Andererseits stehen die Optimierungen dem Kundenprojekt auch in zukünftigen Betriebssystemversionen weiter zur Verfügung, da sie dort weitergepflegt werden.

Das entwickelte System zur Datenaufzeichnung hat sich inzwischen über mehrere Jahre bewährt. Der Erfolg sorgt dafür, dass auch in benachbarten Applikationsfeldern über Einsatzvarianten dieses flexiblen Betriebssystems diskutiert wird.

Details zu RTEMS

Das Betriebssystem ist bereits in vielen Marktsegmenten im Einsatz. Diese umfassen neben dem Automobilmarkt auch fahrerlose Transportsysteme, Satellitentechnik, Telekommunikation, Medizintechnik, Robotik, Audiotechnik, Wehrtechnik und Industrieanwendungen. Mittlerweile ist RTEMS auf einigen 16-Bit- und fast allen 32-Bit-Architekturen einsetzbar. Dazu zählen PowerPC, ARM, SPARC, MIPS, M68k, ColdFire und Microblaze. Für ein minimales System reichen bereits 25 KByte RAM. Der Systemkern teilt Rechenzeit, Speicher und I/O-Ressourcen auf verschiedene Tasks auf. Er unterstützt dabei sowohl das POSIX- als auch das RTEID-API. Zusätzliche Dienste stellen dann unter anderem verschiedene Dateisysteme, USB- und Netzwerkankopplung (Ethernet, CAN und andere) zur Verfügung.

An Entwicklungs-Tools ist alles vorhanden. So stellt die RTEMS-Community speziell an RTEMS angepasste Versionen des GNU C-Compilers (gcc) sowie der zugehörigen Assembler und Linker (binutils) zur Verfügung. Diese Werkzeuge können in viele integrierte Entwicklungsumgebungen (IDE) integriert werden, z.B. auch in Eclipse. Als Debugger kommt häufig der GNU Debugger (gdb) zum Einsatz. Aber auch kommerzielle Debug-Systeme mit erweiterten Fähigkeiten lassen sich nutzen. So bietet der TRACE 32-ICD von Lauterbach eine umfangreiche RTEMS-Awareness zur Anzeige von RTEMS-Objekten.

Viele Schweizer Firmen nutzen RTEMS

Die Lizenzierung gestaltet sich einfach: RTEMS wird unter einer modifizierten GPL (General Public License) V2 veröffentlicht. Die GPL stellt sicher, dass Änderungen und Verbesserungen am RTEMS-Quellcode offengelegt werden. Die RTEMS-spezifische Modifikation bestimmt andererseits, dass proprietärer Quellcode, der mit dem RTEMS-Kernel gelinkt wird, weiterhin unter Verschluss gehalten werden darf. Damit ist die Kontrolle über das produktspezifische Know-how gewährleistet.

Gleichzeitig steht ein umfassender Support zur Verfügung. Neben der offen zugänglichen Dokumentation und dem Projekt-Wiki gibt es Mailing-Listen für den Austausch zwischen RTEMS-Anwendern. Zusätzlich gibt es, massgeschneidert auf die Projektbedürfnisse, kommerziellen Support. In Europa ist hierfür die Firma embedded brains aus Puchheim bei München qualifiziert. Sie führt auch regelmässig Schulungen zu RTEMS durch. Diverse langjährige Kunden von embedded brains in der Schweiz nutzen RTEMS bereits seit vielen Jahren erfolgreich.

Infoservice


embedded brains GmbH
Dornierstrasse 4, DE-82178 Puchheim
Tel. 0049 89 189 474 100, Fax 0049 89 189 474 109
info@embedded-brains.de
www.embedded-brains.de

Auch bei der NASA-Sonde mit dem Curiosity Rover – hier beim Start auf dem Weg zum Mars – spielte Open-Source-Software eine wichtige Rolle


Vereinfachte Darstellung der Grundstruktur der Software


Die Softwarearchitektur des Open-Source-Echtzeitbetriebssystems RTEMS


Blockschaltbild des Datenflusses und der Task-Aufteilung

Autor

Thomas Dörfler ist Geschäftsführer der embedded brains. Er verfügt über mehr als zwanzig Jahre Erfahrung und technische Expertise in der Systementwick-lung, vor allem in den Sparten Automobiltechnik, Telekommunikation und industrielle Automation. Er war zuvor für Unternehmen wie Siemens, BMW, Telenorma, BoschRexroth und Hilf Microcomputer-Consulting als Berater und Mitarbeiter tätig.