Professional Articles

ELinOS Embedded Linux

Leichtere Entwicklung von Embedded Linux-Anwendungen mit ELinOS

Viele Jahre lang wurden Embedded Linux-Systeme überwiegend in vernetzten Umgebungen eingesetzt. Diese Systeme haben lange Zeit gut funktioniert - getreu dem Motto "Never touch a running system". Dies führt jedoch unweigerlich zu Sicherheitsproblemen und geht damit einher, dass laut dem aktuellen Cyber Security Report [1] von Allensbach und Deloitte die Verantwortlichen eine wachsende Bedrohungslage in ihren IT-Infrastrukturen sehen.

Eingebettete Systeme sind in vielen elektronischen Geräten zu finden - von Spezialgeräten über intelligente Stromzähler bis hin zu Autos. Die globale Vernetzung stellt ein hohes Sicherheitsrisiko dar, auf das jetzt eine grundlegende und nachhaltige Antwort erforderlich ist und das bei der Entwicklung neuer Systeme berücksichtigt werden muss.


Warum braucht es überhaupt eine kommerzielle Distribution?

Die Unterstützung von diversen Boards im Linux-Kernel ist inzwischen Standard und die meisten Board-Hersteller liefern angepasste Versionen aus. Wenn man sich jedoch genauer anschaut was die Hersteller an Board Support Packages (BSP) für Ihre Boards bereitstellen, wird man schnell feststellen, dass es unterschiedliche Ansätze gibt. Während einige solche BSPs selbst entwickeln, nutzen andere fertige BSPs etwa aus dem Yocto-Projekt. Des Weiteren ist es für die Hersteller nicht das Kerngeschäft, diese Systeme mit aktualisierten Paketen und Sicherheitsupdates über mehrere Jahre hinweg zu versorgen. Ihr Fokus liegt darauf, Boards zu verkaufen, und nicht auf der Pflege von Linux-BSPs. Das führt dazu, dass solche BSPs häufig nur über relativ kurze Zeiträume von 1-2 Jahren aktualisiert werden, was gerade bei langlebigen Embedded-Anwendungen problematisch ist.

Diese Lücke füllt SYSGO mit ELinOS aus. ELinOS ist nicht nur eine Linux-Distribution, die auf den Embedded-Markt mit seinen strengen Anforderungen an Safety und Security zugeschnitten wurde, sondern darüber hinaus übernimmt SYSGO auch die Pflege der Pakete, Portierung von sicherheitskritischen Patches sowie den Support. ELinOS’ Ausrichtung ist konsequent minimalistisch und bietet möglichen Angriffsvektoren eine geringe Angriffsfläche. Aber anders als bei Lightweight-Distributionen, wie es sie zu Hauf gibt, kommt ELinOS mit einem Merkmal, das in seiner Benutzerfreundlichkeit ansonsten nicht auf dem Markt für Industrie-Sicherheits-Linuxe zu finden ist: Der Feature Assembler ermöglicht es ELinOS nach den betrieblichen Erfordernissen eines Projekts zu konfigurieren und mit Funktionalitäten zu erweitern. So erhält man einerseits ein schlankes und deshalb sichereres Linux, kann aber auf der anderen auf sehr einfache Weise das Zielsystem anpassen.

Dieses Gesamtpaket unterstützt Entwickler bei Ihren Kernaufgaben, der Implementierung Ihrer Anwendung und Pflege des Produkts über mehrere Jahre hinweg mit dem Vorteil, dass vergleichsweise schnell, sicher und vor allen Dingen einfach Projekte durchgeführt werden können. Dies ist insbesondere in Bezug auf Industrie 4.0 wichtig, wenn Systeme in immer größeren Maßstäben vernetzt und somit potenziell angreifbarer werden und es Überschaubarkeit und Unterstützung bedarf. Eine kontinuierliche Überprüfung aktueller Sicherheitsrisiken und das Versorgen der Pakete mit Patches sind somit unabdingbar – ohne Abstriche beim Funktionsumfang und der grundlegenden Sicherheitsarchitektur machen zu müssen.


Optimiert für Embedded

Mit ELinOS stellt SYSGO seit 1999 und mittlerweile in der Version 7.0 eine für Embedded-Anwendungen optimierte Softwareplattform zur Verfügung, die nun auch Docker in vollem Umfang unterstützt. Über ein einfach zu benutzendes Docker Feature können Entwickler beliebige Docker Images integrieren, die im Netz in großer Zahl zum Download zur Verfügung stehen. Industrielle Stärke und benutzerfreundliche Oberfläche gehen einher mit einem umfassenden Toolset und Long-Term-Support über den gesamten Lebenszyklus hinweg. Insbesondere die Pflege der enthaltenen Pakete sowie ein aktives Monitoring von entdeckten Sicherheitslücken sorgen für ein hohes Maß an Sicherheit. SYSGO bietet darüber hinaus umfassenden technischen Support von Mitarbeitern, die auch in der Kernel-Community aktiv sind. Zudem unterstützt SYSGO die Arbeiten der Linux Foundation.

Um der Vielzahl der heute verfügbaren Embedded-Plattformen und I/O-Möglichkeiten gerecht zu werden, verwendet ELinOS eine aktuelle Auswahl an Paketen für die jeweilige Architektur. Zudem basiert ELinOS auf einem stabilen Linux-Kernel mit Langzeitunterstützung der Community (Long Term Support - LTS).

ELinOS ist eine industrietaugliche Linux-Distribution, die nativ auf einem Zielsystem läuft, aber auch  als Instanz unter SYSGOs Hypervisor PikeOS. Mittels dieses Hypervisors können im Parallelbetrieb zu ELinOS zeitkritische Softwaren ausgeführt werden, ohne dass deterministische Auswirkungen auf sicherheitsrelevante Anwendungen auftreten. Insbesondere das Zusammenspiel zwischen Hypervisor PikeOS und Industrie-Linux ELinOS wurde mittels Custom Pools verbessert in ELinOS 7. ELinOS 7 ist dabei besonders einsteigerfreundlich: Die Distribution eignet sich aufgrund ihres einfachen Einstiegs insbesondere auch für Entwickler, die erstmals mit Embedded-Linux in Berührung kommen. ELinOS enthält die vorkompilierte Cross-Compiling Umgebung, um direkt mit der Entwicklung des Systems starten zu können.

Dank der vergleichsweise einfach zu bedienenden Eclipse-basierten IDE und der Assistenten kann ein System in wenigen Minuten nach Kundenanforderungen angelegt werden. Ein effizientes Build-System mit vorkompilierten Paketen ermöglicht kurze Durchlaufzeiten in kritischen Entwicklungsphasen, und über Skripte können Build-and-Test-Szenarien mit nur einem Klick realisiert werden. Durch die langjährige Erfahrung rund um Linux unterstützt SYSGO seine Kunden von der ersten Planung der Hardware bis hin zu der Realisierung und Anpassung des Systems auf die Bedürfnisse der Anwendungen. Durch die einfache Trennung zwischen Linux-Kernel, BSP und Kundenprojekt ist es möglich in kürzester Zeit neue Treiber einzubinden und Applikationen zu entwickeln.


Breite Hardware-Unterstützung

ELinOS bietet breite Unterstützung für viele Boards und baut diese konsequent aus wie beispielsweise mit einem BSP für Freescale/NXP i.MX8 QXP MEK. OEMs können auf kundenspezifische BSPs zurückgreifen, die auf die spezifischen Hardwareprodukte zugeschnitten sind und die Support-Teams entlasten. Zudem hilft SYSGO bei der Portierung von ELinOS auf kundenspezifische Hardware und bietet Unterstützung bei der Einrichtung auf dem Board. Für Anwendungen im Soft-Echtzeitbereich wurden Linux Realtime (RT) Patches integriert. Bei der Verwendung des PikeOS Hypervisors können sicherheitskritische Systeme durch eine vollständig kompatible Linux Runtime erweitert werden.


Eclipse-basiertes IDE

Als Entwicklungsumgebung für ELinOS fungiert das Eclipse-basierte IDE CODEO. Mit Hilfe von CODEO erhalten Systemarchitekten ein grafisches Konfigurationswerkzeug. Für die Entwicklung von Embedded-Anwendungen enthält CODEO umfangreiche Tools, um Embedded-Projekte zeitsparend und kosteneffizient abzuschließen:

  • Geführte Konfiguration
  • Remote-Debugging (bis auf die Hardware-Befehlsebene)
  • Zielüberwachung
  • Remote-Anwendungsbereitstellung
  • Timing-Analysen

CODEO umfasst Standardfunktionen zur Anwendungsentwicklung wie Debugger, Compiler, Assembler und Linker.

Eine QEMU-basierte Hardware-Simulation unterstützt die Entwickler bei der Simulation der Zielhardware auf dem Entwicklungssystem. Diese Hardware-Simulation ist für alle verfügbaren Architekturen vorhanden und kann über einen grafischen Assistenten direkt in der IDE verwaltet und konfiguriert werden. Dies ermöglicht eine schnelle Softwareentwicklung, frühzeitiges Testen und Debuggen auch ohne echte Zielhardware.

Der Dateisystem-Editor ermöglicht eine effiziente Verwaltung von Dateien und Konfigurationen. Dateien können direkt zum Dateisystem hinzugefügt und entfernt werden. Zusätzlich bietet es eine dynamische Vorschau des endgültigen Layouts, die automatisch aktualisiert wird, wenn die zugehörige Konfiguration, die das Dateisystem direkt betrifft, geändert wird.

Mehrere dedizierte grafische Editieransichten unterstützen den Systemintegrator, um mit Plug-Ins zur Zielanalyse wie Systemüberwachung, Tracing oder Debugging immer den Überblick über wichtige Aspekte der ELinOS-Systemkonfiguration zu behalten.

Projekte können mit Hilfe von wiederverwendbaren Vorlagen einfach definiert und an die Entwicklungsgruppen verteilt werden. Entwickler können vordefinierte Komponenten für ihr Projekt konfigurieren und während des Entwicklungsprozesses weitere Komponenten definieren und hinzufügen.

Als integrierte Entwicklungsumgebung für Embedded Systeme unter Linux bietet ELinOS eine Vielzahl von Tools, unterstützt adäquate Bootstrategien, ist durch die grafische Oberfläche einfach zu handhaben und steht für die etablierte Embedded-Hardware zur Verfügung. Dies ermöglicht ein nahtloses Arbeiten von der Treiberentwicklung bis zur Anwendungsintegration. Die aktuelle Version 7.0 von ELinOS basiert auf dem Linux Kernel 4.19 mit Long-Term Support und Realtime-Erweiterungen und unterstützt nativ 64-Bit-Entwicklungssysteme unter Windows und Linux. Die Toolchain umfasst gcc v8.3 und binutils v2.31; die Standardbibliothek glibc steht in der Version 2.28 zur Verfügung

ELinOS 7.0 ist mit sämtlichen 4.x-Versionen von PikeOS sowie mit PikeOS 5.0 kompatibel und kann dort direkt als Gast-Betriebssystem laufen. Die Integration von ELinOS als Gast in PikeOS kann seit Version 7.0 durch die Unterstützung der Custom Pools von PikeOS sehr einfach erfolgen.

Mehr informationen unter www.sysgo.com/elinos

PikeOS RTOS & Hypervisor

PikeOS
RTOS & Hypervisor

Learn more

PikeOS for MPU

PikeOS for MPU

Learn more

ELinOS Embedded Linux

ELinOS
Embedded Linux

Learn more

Need more Information?


Contact us