104 - 8.2 Zwischenbilanz: Systemsoftware, C und Betriebssysteme [ID:19932]
50 von 219 angezeigt

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

Teil einer Videoserie :

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

Tags

module programmstruktur Variablen Datentypen Preprozessor Gültigkeit
Einbetten
Wordpress FAU Plugin
iFrame
Teilen