244
4 Systemsoftware
[142]. Die Integration mehrerer zusätzlicher Softwarekomponenten stellt aber eine
komplexe Aufgabe dar und kann zu Beeinträchtigungen der Funktion wie auch der
Sicherheit eines Systems führen.
Ein anderer Ansatz, der durch das exponentielle Wachstum von Komponentendichten in Halbleitern nach dem Mooreschen Gesetz ermöglicht wird, ist die Anpassung eines Softwaresystems, das die gewünschte Funktionalität bereits enthält und
in einer großen Vielfalt von Umgebungen getestet wurde, an eingebettete Systeme.
In diesem Bereich hat sich Linux13 als Betriebssystem der Wahl für eine große Zahl
komplexer eingebetteter Anwendungen etabliert. Beispiele für diese Anwendungen sind Internetrouter, GPS-Navigationssysteme, Netzwerkspeicher, Fernsehgeräte
mit Internet-Zusatzfunktionen (sogenannte „ Smart-TVs ”) und Mobiltelefone. Diese
Anwendungen profitieren davon, dass Linux einfach portierbar ist. Das System ist
mittlerweile für mehr als 30 Prozessorarchitekturen verfügbar, wie z.B. die in eingebetteten Systemen verbreiteten ARM-, MIPS- und PowerPC-Architekturen. Des
Weiteren bringt Linux den Vorteil mit sich, durch seine Verfügbarkeit unter freien
Softwarelizenzen die ansonsten anfallenden Lizenzkosten für kommerzielle eingebettete Systeme einzusparen.
4.4.1 Struktur und Größe von Linux für eingebettete Systeme
Genau genommen bezeichnet der Begriff „Linux” nur den eigentlichen Kern eines
Linux-basierten Betriebssystems. Ein komplettes, funktionierendes Betriebssystem
benötigt eine Menge an zusätzlichen Komponenten, die auf dem Linux-Kern aufbauen. Die Konfiguration eines typischen Linux-Systems, das auch die systemnahen
Komponenten außerhalb des Kerns beinhaltet, ist in Abb. 4.14 dargestellt. Oberhalb des Linux-Kerns finden sich – meist dynamisch gelinkte – Bibliotheken, die
grundlegende Funktionen für Systemwerkzeuge und Anwendungen bereitstellen.
Gerätetreiber werden in Linux üblicherweise als dynamisch ladbare Kernmodule
realisiert, ein direkter Zugriff von Anwendungen auf die Hardware ist aber auch
möglich.
Die Verfügbarkeit des Linux-Quellcodes ermöglicht es, den Kern und andere Systemkomponenten an die Anforderungen einer gegebenen Anwendung und Plattform
anzupassen. Daraus folgt, dass auch kleine Linux-Systeme realisierbar sind, die auf
Systemen mit wenig Hauptspeicher genutzt werden können.
Eine der zentralen Komponenten eines Unix-artigen Systems wie Linux ist die CBibliothek libc. Diese stellt grundlegende Funktionen wie z.B. Datei-Ein/Ausgabe,
Prozesssynchronisation und -kommunikation, Behandlung von Zeichenketten, arithmetische Operationen und Speicherverwaltung zur Verfügung. Die normalerweise
in Linux verwendete Variante ist die GNU libc (glibc). Diese wurde für Server- und
Desktop-Systeme entwickelt und stellt daher deutlich mehr Funktionalität zur Verfügung als normalerweise in eingebetteten Systemen benötigt wird. Linux-basierte
13 Dieser Abschnitt zu Linux in eingebetteten Systemen wurde von M. Engel (NTNU Trondheim)
beigesteuert.
Précédent

- 264/485

Suivant