Was ist Systemprogrammierung?
Alle Programmierer schreiben ausführbaren Code für Computer, aber was Systemprogrammierer von Anwendungsprogrammierern unterscheidet, ist der Zweck der von ihnen geschriebenen Software. Anwendungsprogrammierung erzeugt Software, mit der die Hardware eines Computers etwas für den Benutzer generiert, sei es eine Kalkulationstabelle oder die Grafiken für ein Spiel. Die Systemprogrammierung erzeugt Software, die auf das Innenleben der Hardware und des Betriebssystems eines Computers zugreift und dieses steuert.
Bei der Anwendungsprogrammierung werden im Allgemeinen Systembefehle ausgegeben, um die Grundfunktionen der Hardware und des Betriebssystems eines Computers zu nutzen, z. B. das Speichern eines bestimmten Datenelements im physischen Speicher des Computers oder eine Datei auf der Festplatte. Diese Art von Programmen befasst sich nicht mit Einzelheiten der Funktionsweise der Festplatte oder des physischen Speichers. Umgekehrt beschäftigen sich Systemprogrammierer mit den Einzelheiten der Funktionsweise eines Betriebssystems und von Hardwarekomponenten. Auf diese Weise können sie die Software erstellen, die Festplatten defragmentiert und die Integrität des physischen Arbeitsspeichers eines Computers überprüft.
Systemprogrammierer sind nicht nur in der Lage, solche Tools zu erstellen, sondern auch Experten für die Kernfunktionen von Betriebssystemen. Alle Programmierer sind mit Systemaufrufen, Thread-Management und Eingabe- / Ausgabehandhabung vertraut, bei der Systemprogrammierung muss der Software-Ingenieur jedoch in der Lage sein, diese Betriebssystemmechanismen zu manipulieren. Auf diese Weise kann ein Systemprogrammierer spezielle Installationen durchführen und Systemwartungsaufgaben automatisieren.
Kenntnisse über den Kern eines Betriebssystems sind auch erforderlich, um die Leistung einer Anwendung auf einer bestimmten Hardwarekonfiguration zu maximieren. Beispielsweise benötigen vielbeschäftigte Online-Einzelhändler ihre Websites und Transaktionsverarbeitungssysteme, um so effizient und zuverlässig wie möglich zu arbeiten. Ein Systemprogrammierer kann mit seinem Wissen über die internen Mechanismen von Betriebssystemen und Hardwarekomponenten, z. B. wie ein bestimmtes Betriebssystem die Thread-Verarbeitung optimiert oder welche Algorithmen auf welchen Hardwarekomponenten am schnellsten ausgeführt werden, die Leistung einer Anwendung optimieren.
Für diesen detaillierten Zugriff auf das Innenleben von Hardware- und Betriebssystemkomponenten muss die Systemprogrammierung in einer Sprache erfolgen, die einen solchen Hardwarezugriff auf niedriger Ebene ermöglicht. Sprachen wie Java®, Python ™ oder Ruby on Rails® werden von Programmierern als Hochsprachen bezeichnet. Dies bedeutet, dass sie die Anwendungsprogrammierung erleichtern, indem der Programmierer nicht mit den feinen Details der Hardwareverwaltung fertig wird. Die Systemprogrammierung erfordert genau diese Art von Zugriff, daher verwenden Systemprogrammierer eine Sprache auf niedriger Ebene wie C oder C ++.