Linux – die Varianten

Linux selbst erstellen oder doch eine Distribution kaufen? Dieser strategischen Entscheidung sollte eine kritische Analyse der Implementierungsvarianten und der eigenen Ressourcen vorausgehen.

Linux selbst erstellen oder doch eine Distribution kaufen? Dieser strategischen Entscheidung sollte eine kritische Analyse der Implementierungsvarianten und der eigenen Ressourcen vorausgehen.

Die Anforderungen an ein Betriebssystem im Industrie- und Automatisierungsbereich sind umfangreich: Echtzeit- Fähigkeit für Steuerungen, umfangreiche Grafikfunktionen für HMI-Terminals und ausgeprägte Kommunikationsfähigkeit mit Feldbussen, Realtime-Ethernet und TCP/IP für die Vernetzung. Dazu kommen Anforderungen wie ein sparsamer Umgang mit CPU- und Speicherressourcen sowie die Unterstützung verschiedener Hardware-Plattformen wie VMEbus, Compact-PCI und in Zukunft voraussichtlich auch MicroTCA. Viele dieser Anforderungen erfüllt Linux inzwischen, die Echtzeit-Fähigkeit des ungepatchten Mainline-Kernels allerdings noch nicht vollständig.

Echtzeit auf Raten

Eine Möglichkeit, Linux mit Echtzeit-Eigenschaften auszustatten, besteht in der Verwendung von Realtime-Extensions. Deren bekannteste Vertreter sind RTLinux, RTAI oder Xenomai. Diese Lösungen basieren auf einem echtzeit-fähigen Mikrokernel, auf dem eine modifizierte Version des Linux-Kernels als Task läuft. Dadurch bleibt die Kompatibilität mit Standard-Linux-Applikationen erhalten. Ihr Nachteil ist, dass die notwendigen Modifikationen am Linux-Kernel vermutlich nicht in den Mainline-Kernel aufgenommen werden und dadurch jedes Release des Linux-Kernels immer wieder angepasst werden muss.

Unabhängig von den Realtime-Extensions begannen etwa seit dem Jahre 2000 die Entwicklungen einer anderen Möglichkeit, den Linux-Kernel mit Echtzeit-Fähigkeit auszustatten. Diese Realtime-Preempt-Patches sind bereits zu etwa 60 % im aktuellen Mainline-Kernel 2.6.22 implementiert. Die fehlenden Teile, wie zum Beispiel das „Interrupt-Threading“, sollen schrittweise in die nächsten drei Kernelversionenen bis Mitte 2008 einfließen – ein Vorgang, der bis Mitte 2008 abgeschlossen sein soll. Bis dahin müssen die jeweils noch nicht im Mainline-Kernel enthaltenen Komponenten der Realtime-Preempt-Patches vor dem Übersetzen des Kernels eingespielt werden.

Bei den kommerziellen Linux-Distributionen gibt es zwei Gruppen: Distributionen von Redhat oder Novell/SuSE haben ihre Domäne im Bereich der Unternehmens-IT als Betriebssystem für Server und Arbeitsplatzrechner. Die Distributionen von Firmen wie Wind River, Monta Vista und anderen sind dagegen auf die speziellen Anforderungen von Embedded-Systemen spezialisiert. Dazu zählen die Unterstützung vieler CPU-Architekturen, die Skalierbarkeit hinsichtlich Speicherbedarf und die Fernwartbarkeit. Beiden Distributionstypen gleich ist die Zeitersparnis beim Einsatz. Nach der Installation und Konfiguration können diese mit kurzer Vorlaufzeit genutzt werden. Vergleichbar sind auch die Maintenance- und Support-Angebote: Die Hersteller aktualisieren ihre Distributionen und bringen mehrmals pro Jahr neue Versionen heraus – natürlich im Rahmen kostenpflichtiger Lizenzvereinbarungen. Einige Anbieter offerieren weitere Dienstleistungen, von der Beratung bis hin zur Entwicklung und Integration spezieller Software oder etwa umfangreiche Entwicklungs- und Testunterstützung wie der Eclipse-basierenden Workbench Development Suite von Wind River.

Bei der Auswahl einer kommerziellen Embedded-Distribution und auch bei der Entscheidung für einen Linux-Service-Provider gilt es einige Punkte zu beachten:

  • Stellt der Anbieter die notwendigen Entwicklungs-Tools wie Compiler, Debugger, aber auch weitergehende Testwerkzeuge wie Diagnosefunktionen zum Aufspüren von Fehlern im laufenden Betrieb eines Geräts bereit?
  • Wird der komplette Source-Code mitgeliefert und lässt sich daraus der ebenfalls ausgelieferte Binärcode (pre-build binaries) exakt nachbauen?
  • Existiert eine verlässliche Produkt-Roadmap, die Planungssicherheit für eigene Projekte gibt?
  • Ist der technische Support in der gleichen Zeit- und Sprachzone ansässig?
  • Gibt es bei Bedarf Training-, Beratung oder Entwicklungsunterstützung?
  • Hat der Anbieter Branchenkenntnis?
  • Passt das Lizenzmodell zum Projekt und der Firmengröße?
  • Gibt es ein Partner-Programm, das Software- und Hardware-Unterstützung für die Embedded-Linux-Distribution anbietet?