Systemprogrammierung unter Linux
von: D.F.
von: D.F.
-
- 1 / 12
-
Lernkarten
Weleche Betriebssystem-Funktionen (Kategorien) werden in Anwendungsprogramme genutzt?
(4 Punkte)
- I/O-Programmierung
- Speichermanagement
- Prozess-Steuerung
- Interprozesskommunikation
Über Wleche zwei Wege kann ein Anwendungsprogramm auf Kernelfunktionen zugreifen?
Was sind jeweils die Vorteile/ Nachteile?
- Systemaufrufe
- Vorteil: Volle kontrolle durch den Programmierer, schneller
- Nachteil: Unter umständen platformabhäng
- Bibiliotheksfunktionen
- Vorteil: platform unabhänig -> da Spezielle Bibliothek je nach Platform
- Nachteil: Kein direkter zugriff auf Systemaufrufe, langsamer
Welche zwei möglichkeiten gibt es um Bibliotheksfunktionen in ein Programm einzubinden?
Was sind jeweils die Vor-/Nachteile?
- Statisch ( Beim Compilieren / Linken)
- Nachteil: Größere Programmfiles
- Vorteil:
- Schneller, da nichts nachgeladen werden muss
- Kein besondere Anforderung an Progrmmumgebung
- Dynamisch ( Nachladen zur laufzeit )
- Vorteil: Bibliotheksfunktionen können von mehreren Programmen genutzt werden, wenn sie sich im Speicher befinden
- Nachteil: Benötigen Laufzeitbibliotheken (Version!)
Mit welchem Befehl lässt sich unter Linux ein C-Programm compilieren?
Mit gcc für GNU-Implementierung sonst mit cc
Wo liegen die Vorteile C-Source Datien zuerst in Object-Code umzuwandeln?
- Schautz von Intelektuellem Eigentum
- Liegt keine Änderung vor muss die Datei nicht erneut Compiliert werden
Mit welchem Befehl kann die die Abbhänigkeit von Laufzeitbibliotheken überprüft werden?
ldd <Programm>
Wo müssen Bibliotheken liegen damit sie gefunden werden können (Dynamisches Binden)?
(3 Punkte)
- Standart Bibliotheksverzeichnis: Steht in "/etc/ld.so.conf"
- Suchpfad mit "/sbin/ldconfig" aktuallisiert sein
- Oder der Pfad muss in LD_LIBRARY_PATH enthalten sein
Bibliothek muss an 3 Stellen beachtet werden:
- Einbinden als *.hpp
- Beim Compilieren (Parameter)
- Beim Ausführen wenn dynamisch
Mit welchem Programm können Systemauftrufe nachverfolgt werden, nenne auch die wichtigsten Parameter?
(3 Parameter)
- strace <Programm>
- -o <Loggdatei> => Lenkt Ausgabe in <Loggdatei> um
- strace –f <Programm> => Verfolgt auch die durch fork() erzeugten
Kindprozesse - –ff –o <Logdatei> <Programm> => Lenkt die Ausgabe für <Programm> und seine Kinder in
<Programm>.PID um
Wie heißt die Grafische Oberfläche für Debugger wie sdb oder gdb?
Der Debugger ddd erlaubt es, C-Programme
- Schrittweise auszuführen
- Haltepunkte zu setzen
- Variablenwerte zu setzen und abzufragen
- Aufrufhierarchien (Stack-Trace) darzustellen
Was wird in einem Makefile alles beschrieben?
(5 Punkte)
Makefiles enthalten
- explizite Regeln (Dateien)
- implizierte Regeln (Dateitypen)
- Variablen
- Direktiven (Ablaufsteuerung)
- Kommentare (wie bei Shellskripten)
Eine genauere Beschreibung zu Makefiles (Syntax, Ablauf, usw) findet sich im Skript "bsys_2016s_v08_Systemprogramierung"