Zum Inhalt springen

Systemprogrammierung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Juni 2014 um 19:04 Uhr durch 84.113.238.199 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Als Systemprogrammierung bezeichnet man das Erstellen von Softwarekomponenten, die Teil des Betriebssystems sind oder die möglichst eng mit dem Betriebssystem bzw. mit der darunter liegenden Hardware kommunizieren müssen.

Systemnahe Software dient als Abstraktionsschicht zwischen einer Applikation und dem Betriebssystem. Diese Schicht erleichtert den Zugriff auf die sehr einfach gehaltenen Betriebssystemfunktionen. Aus Performance- und Sicherheitsgründen ist der Zugriff auf das Betriebssystem auf das Notwendige beschränkt. Der Programmierer muss sich selbst um Synchronisation (z. B. mittels Semaphore oder Shared Memory) und Interprozesskommunikation kümmern. Die Programmierung auf Betriebssystemebene ist dadurch umständlich und fehleranfällig.

Im Gegensatz dazu bevorzugen Applikationsentwickler Schnittstellen, die schnell, fehlertolerant und leichgen daher, selbst direkt mit dem System zu kommunizieren.

Systemprogrammierung wird häufig in vergleichsweise minimalistischen Sprachen wie C oder sogar Assembler durchgeführt. Die anderen umfangreichen Hochsprachen wie C++ oder Pascal führen häufig zu großen und wenig effizienten Programmen, die für die systemnahe Programmierung ungeeignet sind. Ausnahmen bilden hier einige eingebettete Systeme, die direkt in Java programmiert werden können. C ist zwar selbst auch eine Hochsprache, bietet aber die Möglichkeit, Assembler-Befehle über Inline-Assembler direkt ins Hochsprachenprogramm einzubinden und z. B. Variablen direkt mit ihren symbolischen Namen abzufragen, die sonst umständlich über den Stack übergeben werden müssten.