Übungen im Fach Systemnahe Programmierung
Die Übungen werden in Gruppen durchgeführt. Die Gruppeneinteilung machen wir mit Moodle. Es wird insgesamt 10 Übungsblätter geben, die Sie schriftlich bearbeiten und in Gitlab abgeben. Jede Gruppe bekommt dazu auf Gitlab ein "Repository" zugeteilt.
Bei der schriftlichen Abgabe habe ich folgende Randbedingungen. Sie schreiben den Text in einer Markup-Sprache wie Restructured Text oder Markdown.
- Moodle-Kurs https://moodle.hs-augsburg.de/course/view.php?id=2806
- Gitlab Repositories der Gruppen: https://r-n-d.informatik.hs-augsburg.de:8080/snp
Übung 1
1. Aufgabe
Ein Ziel der ersten Aufgabe ist es, sich auf einem PC mit dem Linux Betriebssystem soweit zurechtzufinden, dass man
- ein Terminalfenster öffnen kann. Das nennt man auch "Konsole". Im Terminalfenster wartet eine Kommandointerpreter - die "Shell" - auf Eingaben. Die Shell ist fast immer die "bash", das ist eine moderne Variante der alten "sh".
- im Terminalfenster eine handvoll ganz elementare Kommandos zur Arbeit mit dem Dateisystem anwenden kann: cd, ls, mkdir, rmdir, mv, cp, rm.
- einen Editor bedienen kann. Es gibt Vi, Vim, Emacs, Gedit und viele andere.
- ein Makefile versteht.
- die "man" Seiten aufrufen kann. Das ist das Hilfesystem, das es auf jedem Unix gibt.
Finden Sie heraus, welche genaue Bezeichnung die CPU in Ihrem Rechner (bzw. in der Virtuellen Maschine) hat. Arbeitet Ihr Rechner im 32- oder im 64-Bit Modus?
2. Aufgabe
- Welche Anwendungsbereiche für systemnahe Programmierung kennen Sie?
(b) Worin unterscheiden sich Programmiersprachen die sich zur maschinennahen (= systemnahen) Programmierung eignen von Sprachen, die man "high-level" Sprachen nennt?
- Nennen Sie zwei high-level Sprachen und zwei maschinennahe Sprachen.
3. Aufgabe
Lesen Sie die Kapitel 1 und 2 im Buch von Bartlett. Beantworten Sie die Fragen am Ende des zweiten Kapitels.