21.15 Zusammenfassung
Sprachen
Unter Linux- und BSD-Systemen stehen Ihnen neben den populären Compilern und Interpretern für C, C++, Perl, Java oder Tcl auch einige für etwas exotischere Programmiersprachen wie Erlang, Scheme, GNU Smalltalk, Common Lisp oder LUA zur Verfügung. Die meisten dieser Interpreter und Compiler sind Open-Source-Software und unterliegen der GNU General Public License, der BSD-License oder sind zumindest frei erhältlich.
Debugging
Zum Debugging steht unter anderem der GNU-Debugger (gdb) zur Verfügung. Er ist ein konsolenbasierter Debugger und mag einigen Entwicklern etwas unmodern erscheinen. Dafür kann man jedoch auf die grafische X11-Oberfläche xxgdb oder besser auf ddd zurückgreifen. Einige freie Entwicklungsumgebungen wie Kdevelop integrieren den Support für gdb ebenfalls.
Profiler & Tracing
Weitere wichtige Tools sind der GNU-Profiler gprof sowie die Tools zum Tracing von Programmen. Mit ihnen ist das Verfolgen von Syscalls möglich. Unter Linux verwendet man dafür strace, unter BSD ktrace und kdump.
make & autotools
Bei Open-Source-Softwareprojekten unter Unix ist es üblich, eine Make- file ins Projekt zu integrieren. Diese erlaubt die systematische und übersichtliche Übersetzung eines Projekts aus dem Quellcode. Falls man die Makefile nicht selbst erstellen möchte, bieten sich die GNU autotools an, für die lediglich Konfigurationsanweisungen übergeben werden müssen. Diese Tools erstellen basierend auf diesen Konfigurationsanweisungen Skripts, die den Quellcode portabel gestalten und zudem für jedes System automatisch ein Makefile generieren.
(f)lex, yacc & bison
lex und flex fungieren als Lexer, zerlegen einen ASCII-Stream also in Tokens, die anschließend von einem Parser wie yacc oder bison auf ihre syntaktische Korrektheit hin überprüft werden können. Auf diese Art und Weise lassen sich mittels regulärer Ausdrücke und Syntaxvorgaben beispielsweise Skriptsprachen interpretieren oder auch Konfigurationsdateien auf ihre Korrektheit hin überprüfen und einlesen.
Open-Source- Projekte
Veröffentlicht man freie Software für Unix, so sollten einige grundlegende Dinge beachtet werden. Zum einen sollte die Software klar unter einer eigenen oder fremden Lizenz veröffentlicht werden. Zum anderen sollten wichtige Dateien wie AUTHOR(S), INSTALL, README, LICENSE und CHANGELOG im Projekt vorhanden sein.
Manpages
Des Weiteren sind für Unix-Projekte Manpages wichtig. Manpages werden mit dem Programm groff formatiert und beschreiben die grundlegende Anwendung und Funktionsweise eines Projekts.
CVS & Subversion
Damit mehrere Entwickler gleichzeitig an einem oder mehreren Projekten arbeiten können, empfiehlt sich die Nutzung eines Versionsmanagement-Systems wie CVS oder der neueren Variante Subversion. Mit diesen Projekten ist ein zentraler Speicherort für Quelldateien geschaffen, wobei Veränderungen an diesen Dateien protokolliert und beobachtet werden können.
Qt, Gtk, Pcap und Co.
Neben diesen Möglichkeiten kann noch auf diverse bekannte Libraries (Bibliotheken) zugegriffen werden. Darunter befinden sich solche zur Entwicklung grafischer Oberflächen (unter anderem sind dies Xlib, (Open)Motif, LessTif, Gtk(+), Qt), aber auch verschiedene andere, etwa LibPCAP zum Abfangen von Paketen auf Layer 1 im TCP/IP-Stack oder Libraries zur Kompression von Daten, zur Betrachtung und Manipulation von Bilddateien, zur Programmierung von USB-Geräten oder zur Entwicklung mit XML.