Nun starten wir mal mit der Systemprogrammierung 1 und hier
Leerziele, C, Unix, Einleitung als ein so ein Block, mal kurz zusammengefasst und da
Billions zu gezogen. Lehrziel war systemnahe Software, das heißt Systemprogrammierung und hier
eben Softwareprogramme, die eben Teile eines Betriebssystems letztendlich ausmachen oder
die zumindestens mit den Betriebssystemen, das zugrunde liegt, eben direkt interagieren muss,
möglicherweise auch direkt mit der Hardware unterhalb des Betriebssystems, des Rechensystems
interagieren muss. Systemsoftware, die halt wesentlich ist und praktisch genau,
denn diese Hardware eben auch für ein bestimmtes Anwendungsszenario betreiben zu können. Nun,
indem man sowas tut, hatte ich ja anfangs auch darauf hingewiesen und vielleicht ist es ja auch
klar geworden im Rahmen der Veranstaltung, dass man mit der Entwicklung solcher Software,
den eigentlich durchaus zwischen zwei Stühlen sitzt. Einerseits geht es darum, Anwendungssoftware
zu unterstützen. Das heißt, man müsste jetzt die Anforderungen genau identifizieren können,
die aus der Anwendungssoftware kommen, um dann halt die entsprechenden Funktionen und auch das
entsprechende Systemverhalten anbieten zu können. Andererseits nach untenblickend geht es ja um die
Hardware, um die Plattformsysteme auf, denen praktisch dieses System Software denn zur Ausführung
kommen muss und wo denn diese Plattformsysteme eben anwendungsspezifisch und problemorientiert
betrieben werden müssen. Und zwischen diesen beiden Sichten, die man da hat, da gibt es dann
durchaus so eine Unterschiede, dass man es häufig sehr schwer hat praktisch hier eine saubere nahtlose
Beziehung zwischen diesen beiden Bereichen denn hinzubekommen. Es ist nicht selten der Fall, dass
praktisch in der Bereitstellung von System Software gewisse nachteilige Eigenschaften denn existieren
und dann geht es letztendlich auch darum, diese nachteiligen Eigenschaften zu erkennen, die diese
Plattform denn letztendlich bietet und dann vielleicht zu versuchen durch schlaue, geschickte
System Software Programmierung, die dann halt verbergen zu können für die Anwendungsebene oberhalb
dieser Plattformsysteme, sodass dann sozusagen gewisse negative Effekte einfach nicht bis nach
oben hin durchschlagen können und Anwendungssoftware halbwegs übertragbar wird von der einen Maschine
auf die andere Maschine. So grob kann man praktisch systemnahe Software und den Zweck der systemnahen
Software bezeichnen. Nun man hat die systemnahe Software in C programmiert. C ist eine Programmiersprache,
eine recht alte Programmiersprache, die hat nun mittlerweile über 50 Jahre Geschichte, auf diese
zurückblicken kann. Die ist mit dem Unix-System entstanden. Man kann auch sagen, das Unix-System
wäre ohne diese Programmiersprache C überhaupt gar nicht so erfolgreich gewesen. Es war eine zu
der damaligen Zeit eben sehr zukunftsweisende systemnahe Programmiersprache. Sie ist entwickelt
worden, um Betriebssysteme vor allen Dingen und System Software vernünftig programmieren zu können
und weniger um Anwendungsprogramme denn halt zu schreiben. Deshalb auch die Wahl dieser Sprache
für diese Lehrveranstaltung. Nun man hat die kennengelernt, die Schlüsselwörter, die so typischerweise
in der Sprache C existieren. Das ist nur so ein Auszug von den Schlüsselwörtern, die man kennt. Man
ist auf die Operatorenselektoren und diese besonderen Satzzeichen, also die Klammernkonstrukte, ist man
sicherlich aufmerksam geworden. Beginn und End gibt es so in der Form überhaupt gar nicht, was man von
Algo-ähnlichen Sprachen denn kennt, sondern dass man halt hier, wie auch in Java schon
kennengelernt, sicherlich mit den schweifenden Klammern umgehen muss. Und denn man durchaus den
Effekt haben kann, dass C-Programme aufgrund dieser besonderen Satzzeichen, die man für die
Strukturierung von Programmen verwendet, nicht unbedingt zwingend leicht liestbar sind. Aber sie
sind dafür sehr kompakt. Das wird auch als Vorteil für diese Sprache halt immer wieder
durchaus genannt. Nun und so ist man denn durchaus in der Lage, einfach auch die Frage zu beantworten,
was denn die typischerweise dieses Programm denn machen würde. Ein ganz einfaches C-Programm, mal
nicht Hello World, sondern hier ein Programm, das dann nachher bei der Ausführung die Prozess-ID oder
die Identifikation des Prozesses ausgibt, der dieses Programm praktisch ausführt. GetPit ist
also eigentlich ein Systemaufruf, ein klassischer Unix-Systemaufruf oder POSIX-Systemaufruf und
liefert praktisch die Identifikation des Prozesses zurück, der diesen Systemaufruf tätigt. Und das
gibt ein Printf eben aus. Nun gut, man kann aber auch Folgendes machen. Man kann hingehen und
GetPit einfach selbst programmieren. Normalerweise kommt GetPit aus einer Bibliothek heraus, wird als
Presenters
Zugänglich über
Offener Zugang
Dauer
00:24:21 Min
Aufnahmedatum
2020-07-20
Hochgeladen am
2020-07-20 23:46:23
Sprache
de-DE