Systemprogrammierung – Enzyklopädie

Systemprogrammierung oder Systemprogrammierung ist die Tätigkeit des Programmierens [1] von Computersystemsoftware. Das Hauptunterscheidungsmerkmal der Systemprogrammierung im Vergleich zur Anwendungsprogrammierung besteht darin, dass die Anwendungsprogrammierung darauf abzielt, Software zu erstellen, die dem Benutzer Dienste direkt bereitstellt (z. B. Textverarbeitung), während die Systemprogrammierung darauf abzielt, Software und Softwareplattformen zu erstellen, die Dienste für andere Software bereitstellen. Leistungseinschränkungen unterliegen oder beides (z. B. Betriebssysteme, rechnergestützte Anwendungen, Spiele-Engines, industrielle Automatisierung und Software as a Service-Anwendungen). [1]

Die Programmierung von Systemen erfordert ein hohes Maß an Hardwarebewusstsein. Ziel ist es, die verfügbaren Ressourcen effizient zu nutzen, entweder weil die Software selbst leistungskritisch ist oder weil selbst kleine Effizienzverbesserungen für den Dienstleister (cloudbasierte Textverarbeitungsprogramme) direkt zu erheblichen Einsparungen führen.

Übersicht [ Bearbeiten ]

Folgende Attribute charakterisieren die Systemprogrammierung:

  • Der Programmierer kann Annahmen über die Hardware und andere Eigenschaften des Systems treffen, auf dem das Programm ausgeführt wird, und nutzt diese Eigenschaften häufig aus, indem er beispielsweise einen Algorithmus verwendet, von dem bekannt ist, dass er bei Verwendung mit spezifischer Hardware effizient ist. [19659008] Normalerweise wird eine einfache Programmiersprache oder ein Programmiersprachen-Dialekt verwendet, so dass:
    • Programme können in Umgebungen mit eingeschränkten Ressourcen ausgeführt werden.
    • Programme, die so geschrieben wurden, dass sie mit geringem Laufzeitaufwand effizient sind, möglicherweise eine kleine Laufzeitbibliothek haben oder überhaupt keine.
    • Programme können direkte und "unformatierte" Steuerung des Speichers verwenden Zugriffs- und Kontrollfluss
    • Der Programmierer kann Teile des Programms direkt in Assemblersprache schreiben.
  • Oft können Systemprogramme nicht in einem Debugger ausgeführt werden. Das Ausführen des Programms in einer simulierten Umgebung kann manchmal verwendet werden, um dieses Problem zu verringern.

Die Systemprogrammierung unterscheidet sich hinreichend von der Anwendungsprogrammierung, sodass sich Programmierer in der Regel auf die eine oder andere spezialisieren. Anführung erforderlich ]

Bei der Systemprogrammierung stehen häufig begrenzte Programmiermöglichkeiten zur Verfügung. Die Verwendung der automatischen Speicherbereinigung ist nicht üblich und das Debuggen ist manchmal schwierig. Die Laufzeitbibliothek ist, falls überhaupt verfügbar, normalerweise weitaus weniger leistungsfähig und führt weniger Fehlerprüfungen durch. Aufgrund dieser Einschränkungen werden häufig Überwachung und Protokollierung verwendet. Betriebssysteme verfügen möglicherweise über äußerst ausgefeilte Protokollierungssubsysteme.

Das Implementieren bestimmter Teile in Betriebssystemen und Netzwerken erfordert Systemprogrammierung, beispielsweise das Implementieren von Paging (virtueller Speicher) oder eines Gerätetreibers für ein Betriebssystem.

Geschichte Bearbeiten

Ursprünglich schrieben Systemprogrammierer immer in Assemblersprache. Experimente mit Hardwareunterstützung in Hochsprachen führten Ende der 1960er Jahre zu Sprachen wie PL / S, BLISS, BCPL und erweitertem ALGOL für Burroughs-Großsysteme. Forth hat auch Anwendungen als Systemsprache.
In den 1980er Jahren wurde C durch das Wachstum von Unix allgegenwärtig.
In jüngerer Zeit wurde eine Teilmenge von C ++ mit dem Namen Embedded C ++ verwendet, zum Beispiel in den I / O-Kit-Treibern von macOS. [2]

Alternative Verwendung [ edit

For Aus historischen Gründen verwenden einige Organisationen den Begriff Systemprogrammierer um eine Jobfunktion zu beschreiben, die genauer als Systemadministrator bezeichnet wird. Dies gilt insbesondere für Organisationen, deren Computerressourcen in der Vergangenheit von Mainframes dominiert wurden, obwohl der Begriff sogar zur Beschreibung von Jobfunktionen verwendet wird, bei denen es sich nicht um Mainframes handelt. Diese Verwendung ergab sich, weil bei der Verwaltung von IBM-Mainframes häufig benutzerdefinierter Assembler-Code (IBM Basic Assembly Language, BAL) geschrieben wurde, der in Betriebssysteme wie OS / MVS, DOS / VSE oder VM / CMS integriert war. In der Tat hatten einige IBM Softwareprodukte erhebliche Code-Beiträge von Kundenprogrammierern. Diese Art der Programmierung ist zunehmend seltener, aber der Begriff Systemprogrammierer ist immer noch die eigentliche Berufsbezeichnung für Mitarbeiter, die IBM-Mainframes direkt verwalten.

Siehe auch [ bearbeiten ]

Verweise [ bearbeiten

Weiterführende Literatur bearbeiten