Softwareentwicklung unter Linux

Schulung zum Thema Softwareentwicklung unter Linux in C und C++ mit Behandlung von make, gcc, Qt und anderem

Der zunehmende Erfolg von Linux bringt immer mehr Softwareentwickler in die Situation, dass sie neuerdings auch für Linux entwickeln wollen oder sollen. Selbst für erfahrene Fachleute ist der Einstieg in Linux als Zielplattform kein Pappenstiel. Zwar sind die Sprachen C und C++ als solche unabhängig vom Betriebssystem. Aber viele andere Dinge sind unter Linux eben doch anders. Dabei ist der Umgang mit Linux als Arbeitsumfeld nur eine Baustelle. Trotz der verfügbaren grafischen Oberflächen sind Grundkenntnisse auf der Kommandozeile unabdingbar. Der sichere Umgang mit Dateien, das Editieren von Textdateien und die Verwaltung von Prozessen gehört alleine schon zum Installieren und Testen der eigenen Software zum Grundwissen. Ein typischer Linux-Administrationskurs würde dieses Wissen sicher auch vermitteln - aber ein Großteil der für einen Softwareentwickler wichtigen Fragen bliebe dabei unbeantwortet: Wie funktionieren unter Linux Compiler und Linker? Wie arbeitet man mit dynamischen Bibliotheken? Welche Entwicklungsumgebung soll man verwenden? Gerade beim Thema Systemprogrammierung treten die meisten Unterschiede zu Windows zu Tage. So ist zum Beispiel die Art, wie man als Entwickler unter Linux mit Prozessen undere deren Kommunikation umgeht, alles andere als trivial. Unsere Schulung Softwareentwicklung unter Linux verschafft Ihnen als Linux-Neuling nicht nur einen schnellen und zielstrebigen, spezielle auf Entwickler zugeschnittenen Einstieg in Linux. Sie führt Sie auch ein in die gängigen Werkzeuge und Methoden, um unter Linux Software mit C und C++ zu entwickeln. Dabei geben wir Ihnen neben den Compilewerkzeugen und der Systemprogrammierung auch einen Einstieg in die Entwicklung von grafischen Anwendung mit der bekannten Qt-Bibliothek. Die beiden wichtigen Themen Versionsverwaltung mit Subversion und das Erstellen von installierbaren Softarepaketen mit RPM runden den Kurs ab. Das Besondere an diesem praktisch angelegten Workshop ist seine große Stoffvielfalt. Alle relevanten Themen der Softwareentwicklung werden besprochen. Dies ist möglich, weil wir uns geradlinig und zielstrebig auf das Wichtige konzentrieren. Bei jedem Thema zeigen wir Ihnen, wie sie weitere Details effektiv online nachschlagen können.

Kursinhalte

Linux auf der Kommandozeile
Aufbau der Befehlszeile
Tastendrücke, Tricks und komfortables Editieren auf der Kommandozeile
Zugriff auf Onlinehilfe
Linuxgrundlagen
Pfadnamen unter Linux
Navigieren durch das Dateisystem, die Befehle cd und ls
Verzeichnisse anlegen und entfernen mit mkdir und rmdir
Dateien anlegen und löschen mit touch und rm
Dateien kopieren, umbenennen und verschieben mit cp und mv
Suchen nach Dateien mit find
Tipparbeit sparen durch Vervollständigen von Dateinamen und Befehlen mit der Tabulatortaste
Befehle mit Pipes verbinden
Zippen und Zusammenpacken von Dateien mit gzip und tar
Prozesse anzeigen mit ps, pstree und top
Prozesse abschießen mit kill und killall
Textdateien und Editoren
Anzeigen von Textdateien mit cat, less und anderen Befehlen
zwei Textdateien vergleichen mit diff
Suchen von Texten in Dateien mit grep
Textdateien editieren mit dem klassichen UNIX-Editor vi (nur kurz)
der mächtige Texteditor EMACS und sein kleiner Bruder jmacs
farbige Syntaxhervorhebung für Programmierer
automatisches Einrücken
automatisches Ergänzen von Bezeichnern in allen Programmiersprachen
Arbeiten mit mehreren Dateien und Fenstern gleichzeitig
die grafische Entwicklungsumgebung KDevelop
C/C++-Compiler und Linux unter Linux
die GNU-Compiler-Collection (GCC) mit C-Compiler gcc und C++-Compiler g++
der Linker ld
Bibliothekeninformationen abrufen mit ldd
Aufruf und Optionen von Compiler und Linker
Suchpfade für Include-Dateien und Bibliotheken (Libraries) angeben
Definition von Präprozessorvariablen
Compiler-Warnungen konfigurieren
Automatische Compilation mit GNU-Make
Einführung in Make, der Aufbau eines Makefiles
automatisches Erstellen von Compilaten, wenn sich die Ausgangsdateien ändern
spezielle Hilfsvariablen von Make, Definition von Compilationsregeln mithilfe von Mustern (Patterns)
Variablen in Make verwenden, Zusammenhang zwischen Shell-, Umgebungs- und Präprozessorvariablen
Textfunktionen, welche generische Makefiles ermöglichen
mehrzeilige Shellskripte in Makefiles unterbringen
Der GNU-Debugger
Einführung in die Funktionsweise von GDB, dem GNU-Sourcelevel-Debugger
wie man den Quellcode so übersetzt, dass man mit dem Debugger auf Quellcodeeben arbeiten kann
Bedienung des GDB mit der GDB-Kommandozeile, Abrufen von Onlinehilfe
Andocken an bereits laufende Prozesse "im Fluge"
Untersuchen des Aufrufstapels (Callstack), Bewegen zwischen den Stackframes
Untersuchen von Variablen und Werten
Debuggen mit Coredumps (Post-Mortem-Debuggen)
Einführung in Systemprogrammierung unter Linux/Unix
Grundlagen der Systemprogrammierung
wie Sie leicht an gute Onlinedokumentation zu allen Systemaufrufen kommen
Arbeit mit Filedeskriptoren: die Systemcalls open, close, read und write
Verwalten von Dateien: die Systemcalls remove, unlink, chmod, chown und andere
Erzeugen von Prozessen und Laden von Programmen: die Systemaufrufe fork und execve
Interprozesskommunikation mit Pipes, der Systemcall pipe.
Klassische Methode, zu Unterprozessen über eine Pipe zu kommunizieren mit pipe, fork und execve
konzertiertes Warten auf mehrere Dateien und Ereignissen mit select.
Grafische Programme entwickeln mit Qt von Trolltech
Einführung in die Bibliothek Qt Version 4 von Trolltech
Das Prinzip der Signale und Slots
Der Meta Object Compiler (MOC), Makefiles für Qt-Programme schreiben
Masken mit Knöpfen und Eingabefeldern
automatisches dynamisches Layout mit QLayout
Benutzerdialoge mit QDialog
eigene Widgets erzeugen und mit QPainter grafisch malen
Versionsverwaltung mit Subversion (SVN), dem Nachfolger von CVS
Grundlagen von Versionskontrolle und SVN
Anlegen von Repositories, der Befehl svnadmin
Übersicht über alle wichtigen Befehle von SVN
Quellcodes auschecken mit svn co
Dateien und Verzeichnisse hinzufügen und entfernen mit svn add und svn rm
Änderungen Einchecken
Zusammenführen von parallelen Änderungen in der gleichen Datei (Mergen)
Abfragen, wer wann was wo geändert hat
Subversion über SSH (z.B. um über das Internet verschlüsselt auf ein Repository zuzugreifen)
RPM - Pakete bauen mit dem RPM Package Manager
Grundlagen von RPM
Pakete von Hand installieren und entfernen
wie man selbst RPM-Pakete baut
Pakete bauen als normaler Benutzer (ohne root-Rechte)

  • auf Deutsch
  • für 5 Tage
  • ab 1 Teilnehmer
  • €2.356,20 (inkl. Mwst.)
  • für Softwareentwickler
  • Voraussetzungen: Programmiersprache C oder C++ keine Linuxkenntnisse erforderlich!

Nutzen

Nach diesem Training können die Teilnehmer Linux auf der Kommandozeile bedienen und sind in der Lage, alle wichtigen Aufgaben im Test- / Entwicklungszyklus ihrer Software durchzuführen. Sie können eigenständig und mit den unter Linux etablierten Methoden systemnahe Programme schreiben, grafische Anwendungen mit Qt entwickeln, eigene RPM-Pakete erstellen und ihren Quellcode mit Subversion verwalten. Sie beherrschen das Schreiben eigener Makefiles, das richtige Einsetzen von Compiler und Linker und das Debuggen mit dem GNU-Debugger auf Quellcodeebene. Ferner sind Sie in der Lage, sich weiterführende Details zu den angesprochenen Themen selbst zu erarbeiten und alle weiteren Schritte eigenständig zu gehen.