252
4 Systemsoftware
Zusammenfassend lässt sich feststellen, dass uClinux ein funktionierender Ansatz ist, einen Teil der Linux-Funktionalität auf kleinen Mikrocontrollersystemen zu
realisieren. Die auf dem Chip verfügbare Menge an RAM ist aber aktuell auch bei
größeren Mikrocontrollern auf wenige hundert Kilobyte beschränkt. Eine minimale
uClinux-Version benötigt aber rund 8 MB RAM und erfordert daher einen zusätzlichen externen RAM-Baustein. Für Systeme mit geringem Hauptspeicher wird also
auch in Zukunft ein traditionelles Echtzeitbetriebssystem eher das System der Wahl
bleiben.
4.4.6 Evaluation der Nutzung von Linux in eingebetteten Systemen
Neben den technischen Kriterien bringt die Entscheidung, ob ein eingebettetes System auf Linux basieren soll, auch rechtliche und wirtschaftliche Fragen mit sich.
Auf der technischen Seite unterstützt Linux eine große Anzahl an Prozessorarchitekturen, SoCs, Peripherieeinheiten und Kommunikationsprotokollen, die üblicherweise bei eingebetteten Systemen zum Einsatz kommen, wie z.B. das InternetProtokoll TCP/IP, CAN, Bluetooth ® und IEEE802.15.4/ZigBee ® . Linux stellt eine
POSIX-ähnliche Programmierschnittstelle zur Verfügung, welche die Portierung von
existierendem Code erleichtert. Dieser Code muss nicht notwendigerweise in C oder
C++ geschrieben sein, sondern kann auch Skriptsprachen wie Python und Lua oder
gar spezialisiertere Sprachen wie Erlang verwenden. Entwicklungswerkzeuge für
Linux sind kostenfrei verfügbar und lassen sich einfach in existierende IDE-basierte
Entwicklungsprozesse, z.B. mit Eclipse, und Dienste zur kontinuierlichen Integration wie Jenkins integrieren. Im allgemeinen ist die Codebasis von Linux wohlerprobt,
allerdings variiert die Qualität der Unterstützung je nach Plattform. Bei Verwendung
einer weniger verbreiteten Hardwareplattform wird empfohlen, die Stabilität der Unterstützung für den Prozessor und die Gerätetreiber sorgfältig zu prüfen. Ein Nachteil
der Verwendung von Linux ist die Komplexität der großen Codebasis, die einen guten
Einblick in und Erfahrung mit dem System erfordert, um Probleme finden und beheben zu können. Hier bieten aber verschiedene Halbleiterhersteller und Drittanbieter
kommerzielle Unterstützung für eingebettetes Linux an, bis hin zur Verfügbarkeit
kompletter grundlegender Systemportierungen, sogenannter board support software
packages (BSPs), für verschiedene Referenzsysteme.
Aus einem wirtschaftlichen Blickwinkel ist der offensichtliche Vorteil von Linux,
dass der Quellcode kostenfrei zur Verfügung steht. Der Linux-Kern unterliegt der
GPL-Lizenz Version 219. Diese erfordert, dass der Quellcode für Modifikationen
der existierenden Codebasis zusammen mit dem erzeugten Binärcode zur Verfügung gestellt werden muss. Dies kann dazu führen, dass Geschäftsgeheimnisse von
Hardwarekomponenten offengelegt werden oder Vertraulichkeitsvereinbarungen mit
den Anbietern von Hardwarekomponenten gebrochen werden. Für bestimmte Hardware, wie z.B. Grafikkartentreiber, wird dies umgangen, indem binäre Code-„Blobs”
19 Siehe http://www.gnu.org/licenses/gpl-2.0.html.
4 Systemsoftware
Zusammenfassend lässt sich feststellen, dass uClinux ein funktionierender Ansatz ist, einen Teil der Linux-Funktionalität auf kleinen Mikrocontrollersystemen zu
realisieren. Die auf dem Chip verfügbare Menge an RAM ist aber aktuell auch bei
größeren Mikrocontrollern auf wenige hundert Kilobyte beschränkt. Eine minimale
uClinux-Version benötigt aber rund 8 MB RAM und erfordert daher einen zusätzlichen externen RAM-Baustein. Für Systeme mit geringem Hauptspeicher wird also
auch in Zukunft ein traditionelles Echtzeitbetriebssystem eher das System der Wahl
bleiben.
4.4.6 Evaluation der Nutzung von Linux in eingebetteten Systemen
Neben den technischen Kriterien bringt die Entscheidung, ob ein eingebettetes System auf Linux basieren soll, auch rechtliche und wirtschaftliche Fragen mit sich.
Auf der technischen Seite unterstützt Linux eine große Anzahl an Prozessorarchitekturen, SoCs, Peripherieeinheiten und Kommunikationsprotokollen, die üblicherweise bei eingebetteten Systemen zum Einsatz kommen, wie z.B. das InternetProtokoll TCP/IP, CAN, Bluetooth ® und IEEE802.15.4/ZigBee ® . Linux stellt eine
POSIX-ähnliche Programmierschnittstelle zur Verfügung, welche die Portierung von
existierendem Code erleichtert. Dieser Code muss nicht notwendigerweise in C oder
C++ geschrieben sein, sondern kann auch Skriptsprachen wie Python und Lua oder
gar spezialisiertere Sprachen wie Erlang verwenden. Entwicklungswerkzeuge für
Linux sind kostenfrei verfügbar und lassen sich einfach in existierende IDE-basierte
Entwicklungsprozesse, z.B. mit Eclipse, und Dienste zur kontinuierlichen Integration wie Jenkins integrieren. Im allgemeinen ist die Codebasis von Linux wohlerprobt,
allerdings variiert die Qualität der Unterstützung je nach Plattform. Bei Verwendung
einer weniger verbreiteten Hardwareplattform wird empfohlen, die Stabilität der Unterstützung für den Prozessor und die Gerätetreiber sorgfältig zu prüfen. Ein Nachteil
der Verwendung von Linux ist die Komplexität der großen Codebasis, die einen guten
Einblick in und Erfahrung mit dem System erfordert, um Probleme finden und beheben zu können. Hier bieten aber verschiedene Halbleiterhersteller und Drittanbieter
kommerzielle Unterstützung für eingebettetes Linux an, bis hin zur Verfügbarkeit
kompletter grundlegender Systemportierungen, sogenannter board support software
packages (BSPs), für verschiedene Referenzsysteme.
Aus einem wirtschaftlichen Blickwinkel ist der offensichtliche Vorteil von Linux,
dass der Quellcode kostenfrei zur Verfügung steht. Der Linux-Kern unterliegt der
GPL-Lizenz Version 219. Diese erfordert, dass der Quellcode für Modifikationen
der existierenden Codebasis zusammen mit dem erzeugten Binärcode zur Verfügung gestellt werden muss. Dies kann dazu führen, dass Geschäftsgeheimnisse von
Hardwarekomponenten offengelegt werden oder Vertraulichkeitsvereinbarungen mit
den Anbietern von Hardwarekomponenten gebrochen werden. Für bestimmte Hardware, wie z.B. Grafikkartentreiber, wird dies umgangen, indem binäre Code-„Blobs”
19 Siehe http://www.gnu.org/licenses/gpl-2.0.html.
