6851
Kommentar:
|
6853
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 88: | Zeile 88: |
Aktuelle Hinweise zur "Systemnahen Programmierung"
In diesem Wiki sammle ich Notizen, die sich im Praktikum ergeben haben. Gerne dürfen Sie auch Einträge hinzufügen. Melden Sie sich dazu als "WikiGast" mit Passwort "student" an.
Bei Fragen zur Veranstaltung und zum Praktikum schicken Sie mir bitte eine E-mail an <Hubert.Hoegl@hs-augsburg.de>.
Link zur Homepage der Veranstaltung:
https://hhoegl.informatik.hs-augsburg.de/hhweb/sysprog/
Inhalt
2 WS2014/2015
2.1 Abgabetermin
Der Abgabetermin ist nun immer am Freitag Abend um 21 Uhr.
Der Moodle-Kurs ist hier:
https://moodle.hs-augsburg.de/course/view.php?id=2721
2.2 Tipps zum Arbeiten mit Linux
Zum fundierten Einarbeiten in Linux empfehle ich die unter einer freien Lizenz erschienene Schulungsunterlage "Linux Essentials" vom Linux Professional Institute (LPI):
Sie können dort das 264-seitige Handbuch lxes-de-manual-cc.pdf im PDF Format kostenlos herunterladen.
Eine interessante Textsammlung zu verschiedenen UNIX-Themen wie Vi, Shell, Makefile, C und GDB bietet auch folgende Seite von Norman Matloff:
Es lohnt sich, dort ein wenig zu stöbern!
Arbeiten Sie beim Programmieren NICHT als Root! Installieren Sie am besten das Paket "sudo" und fügen Sie in /etc/sudoers die Zeile
stud ALL=(ALL:ALL) ALL
hinzu.
Hinweis für das virtuelle Linux aus "Programmieren 3": Installieren Sie ein komfortableres Terminal-Programm, z.B. "terminator":
sudo apt-get install terminator
Mit diesem Terminal-Emulator können Sie eine grössere Schrift einstellen und Sie können das Terminal-Fenster horizontal und vertikal teilen. Ausserdem haben Sie einen Scroll-Balken auf der rechten Seite.
Gewöhnen Sie sich an, nur im Terminal-Fenster zu arbeiten. Unsere häufigsten Kommandos sind:
- Navigation im Filesystem (cd, ls)
- Dateien löschen (rm)
- Editieren von Dateien (vim, nano, pico)
- Aufrufen von make, eventuell mit make Targets, z.B. "make clean"
- gelegentliche Administrations-Aufgaben (sudo ...)
- Installieren von Paketen
Ein Textbrowser ist praktisch, wenn man schnell einen Text lesen will. Das Standard-Werkzeug dafür ist less, das man so anwendet:
less text.rst
Man kann sich in ~/.bashrc einen Alias einrichten, z.B.:
alias m="less"
Damit kann man dann etwas kürzer m text.rst schreiben.
2.3 Auswahl eines Editors
- Ich empfehle Vim!
- Um sich in Vim einzuarbeiten, beginnen Sie am besten mit dem Programm vimtutor. Geben Sie vimtutor [RETURN] auf der Kommandozeile ein und befolgen Sie die Anweisungen, die Sie danach am Bildschirm sehen.
2.4 Schreiben von Textdateien
Beispiele für Textdateien: reST Dokument, Assembler Quelltext, Makefile.
Gewöhnen Sie sich daran, den Text nicht breiter als 80 Zeichen zu schreiben. Ein wichtiger Grund dafür ist, dass Braille Blindenschriftzeilen nicht mehr als 80 Zeichen darstellen können. Breite Bildschirme verleiten einen leider gerne, sehr lange Zeilen mit 100 bis 150 Zeichen zu schreiben. Die meisten Editoren können so eingestellt werden, dass Sie automatisch längere Zeilen umbrechen.
In Vim verwende ich z.B. in ~/.vimrc das Kommando
set colorcolumn=80
das mir in Spalte 80 einen vertikalen roten Balken zeigt, über den man nicht schreiben sollte.
Restructured Text (reST)
Die Lösungen zu den Übungsaufgaben geben Sie im reST Format ab. Eine kurze Anleitung ist hier:
http://elk.informatik.hs-augsburg.de/hhweb/etc/uebungen-mit-rst.html
In Moodle geben Sie nur die reST Datei, z.B. uebung1.rst ab. Falls Ihre Abgabe aus mehreren Dateien besteht, packen Sie diese in eine ZIP Datei, z.B. uebung1.zip. Die Dateien sind in einem Verzeichnis untergebracht, das genau so heisst wie das Archiv:
uebung1/ loesung1.rst bild.jpg ...
Prüfen Sie, ob sich Ihr Text auch mit rst2html ohne Fehler in eine HTML Datei umwandeln lässt. Das Kommando:
rst2html --language=de text.rst text.html
sollte ohne Meldungen auf dem Bildschirm ausgeführt werden.
Damit die code-block Abschnitte funktionieren sollten Sie eine Version des docutils Pakets (darin sind u.a. die rst2xxx Kommandos) von mindestens 0.9 haben. Aktuell (Okt 2014) haben wir die Version 0.11.
2.5 Beispielprogramme für Sysprog
Die Beispielprogramme sind in code.tar.gz. Sie entpacken das "tar" Archiv mit der Anweisung:
tar zxvf code.tar.gz
Ich möchte auch anregen, dass Sie eine Verzeichnisstruktur für die komplette Sysprog-Veranstaltung machen, z.B. so:
sysprog-ws1415- uebung1/ uebung2/ ... Code/ <-- das entpackte Archiv code.tar.gz
2.6 GNU Debugger gdb
Den GNU debugger gdb starten Sie mit gdb --tui <Programm>. Das <Programm> ist der Name der ausführbaren Datei.
WICHTIG Damit Sie in gdb den Quelltext des Programmes sehen können, müssen Sie es mit der Option -g übersetzen.
In folgendem Beispiel erzeugt die -g Option die "Debug Informationen" für den gdb. Die -al=main.lst Option erzeugt das Listing main.lst.
as -g -al=main.lst -o main.o main.s
2.7 64-Bit Rechner
Auf Rechnern mit 64-Bit Betriebssystem sollte man den GNU Assembler und Linker in den 32-Bit Modus schalten. Beim Assembler wählt man --32 und beim Linker -m elf_i386, so wie in folgendem Beispiel:
as -g --32 -al=main.lst -o main.o main.s ld -m elf_i386 -o main main.o
Falls man gegen die libc linken moechte, muss man ausserdem die Bibliotheken im 32-Bit Format installieren. Das Paket heisst "ia32-libs". Ein Makefile, das Programme und Bibliotheken im 32-Bit Modus auf 64-Bit Rechnern erzeugt ist in sysprog/pgu/prog-8/Makefile-64.
2.8 Git Repository
Die Programmbeispiele befinden sich nun in einem Git Repository:
git clone git://hhoegl.informatik.hs-augsburg.de/srv/git/sysprog.git