http://www.pronix.de -> Bücher -> Bücher aus meiner Feder -> Linux-Unix-Programmierung

Linux-Unix-Programmierung



Linux-Unix-Programmierung

ca. 1247 S., geb.,
mit CD
49,90 Euro
3., aktualisierte und erweiterte Auflage
ISBN 978-3-8362-1366-0

Bestellen (bei Amazon.de)
Bestellen (beim Verlag)
Bestellen (bei BOL.de)

oder sofort als ebook (PDF)

Bestellen (bei ciando.com)

Das Themenspektrum des Buchs lässt sich grob in sechs Teilen aufgliedern - Systemprogrammierung, Netzwerkprogrammierung, Programmierung von Datenbankschnittstellen, Terminal- und GUI-Programmierung (Benutzerschnittstellen) und der Umgang mit den Grundlegenden Werkzeugen eines Programmieres. Neu in der dritten Auflage ist außerdem ein komplettes Kapitel zur Shellprogrammierung und eine umfassende Kommandoreferenz. Ich denke, da ist für jeden Geschmack etwas dabei.

Buch-Übersicht

Kapitel 2 beschreibt die grundlegenden E/A-Funktionen (sowohl der niedrigeren als auch der höheren Ebene) – womit man unbedingt vertraut sein sollte, bevor man sich auf die anderen Kapitel einlässt. In Kapitel 3 werden die Attribute von Dateien und Verzeichnissen behandelt – dabei wird auch auf die Links und deren Sinn eingegangen. Wie Sie (als normaler Benutzer) auf Systeminformationen zugreifen können – was eine gerne gestellte Frage ist –, erfahren Sie in Kapitel 4.

Kapitel 5 behandelt den Zugriff auf die Hardware im System. Wobei hier nicht die (tiefe) Hardware-/Kernelprogrammierung gemeint ist, sondern wie Sie über einfache Gerätedateien (auch wieder als einfacher Benutzer) mit einfachen E/A-Funktionen mit der Hardware kommunizieren können. Als Beispiel wird gezeigt, wie Sie mit einem einfachen Konsolenprogramm Audio-CDs abspielen können.

Neu hinzugekommen in der zweiten Auflage ist das Kapitel 6 welches Ihnen zeigt, wie man auf die zentralen System- und Benutzerdateien (wie bspw. /etc/passwd) zugreift. Der Titel von Kapitel 7 (Dämonen, Zombies und Prozesse) mag ein wenig komisch erscheinen, aber das sind nun mal die Fachbegriffe dafür. Speziell bei den Prozessen handelt es sich um ein außerordentlich wichtiges Thema der Systemprogrammierung im Allgemeinen – womit man sich als angehender Linux-/Unix-(System) Programmierer beschäftigen muss. Sie erfahren dabei so ziemlich alles rund um Prozesse – wie man diese erzeugt, killt und wie man daraus einen Zombie (im negativen Sinne gemeint) machen kann. Am Ende erfahren Sie noch, wie Sie einen (Dämon-)Prozess unabhängig von der Steuerung des Terminals im Hintergrund ausführen können.

Kapitel 8 behandelt Signale, die ebenfalls unerlässlich sind, um die Systemprogrammierung zu verstehen. Ausgehend vom Kapitel 7, den Prozessen, erfahren Sie in Kapitel 9, wie die einzelnen Prozesse via Interprozesskommunikationen (IPC) miteinander kommunizieren können. Dabei werden viele grundlegende IPC-Techniken behandelt. Dass es neben den gewöhnlichen Prozessen noch eine andere Form von leichtgewichtigen und meistens auch schnelleren Prozessen gibt, erfahren Sie im Kapitel 10 – der (Linux-)Threadprogrammierung.

Damit Sie Ihre Software um Netzwerkfunktionalitäten erweitern können, finden Sie in Kapitel 11 eine Einführung in die Netzwerkprogrammierung. Kapitel 12 behandelt die Programmierung von Datenbanken – oder besser die Verwendung von C-APIs, welche die Datenbanken mitliefern. Damit sind Sie in der Lage eigene Client-Anwendungen zu erstellen. Behandelt werden im Buch die Schnittstellen zur MySQL- und PostgreSQL-Datenbank. Für alle, die bisher noch nichts mit Datenbanken am Hut hatten, gibt es zu jeder DB einen Crashkurs – somit sind keinerlei Vorkenntnisse hierzu nötig.

Die nächsten drei Kapitel behandeln die Entwicklung von Benutzerschnittstellen. Denn was nützt eine Software, die keiner bedienen kann? Kapitel 13 beschreibt die Entwicklung von Programmen für die Konsole. Auch wenn es ein wenig altertümlich erscheint: Konsolenprogramme sind immer noch eines der ersten Projekte, mit denen ein Programmierer beginnt, und immer noch gerne eingesetzte Programme. Behandelt werden dabei termios, terminfo und curses. Kapitel 14 zeigt Ihnen dann, wie einfach es mit GTK+ ist, ein Programm mit einer grafischen Oberfläche zu versehen. GTK+ hat im Gegensatz zu den fetten Bibliotheken wie Qt oder der GNOME-Bibliothek den Vorteil, nicht so speicherintensiv zu sein. Ein weiterer Vorteil von GTK+ ist es, dass Sie Ihre Anwendung auch jenseits der Linuxwelt portieren können.

Kapitel 15 liefert Ihnen dann einen Überblick zu weiteren gängigen GUI-Bibliotheken in der Linux-Unix- und teilweise auch in der Crossplattform-Entwicklung.

Kapitel 16 ist unerlässlich für jeden Programmierer, der Software entwickelt. Der Umgang mit den grundlegenden Werkzeugen während und nach der Entwicklung ist das A und O jeder ernst zu nehmenden Software. In diesem Kapitel werden eine Menge Open-Source-Werkzeuge beschrieben, die Ihnen das Leben erheblich leichter machen können. Behandelt werden dabei: Programmerstellung mit GNU-GCC und MAKE – Erstellen von statischen und
dynamischen Bibliotheken – eigene Pakete mit RPM erstellen – Versionsverwaltung mit RCS und CVS – Programme testen (Zeitmessung mit TIME, GPROF und GCOV) und debuggen (GNUGDB) – Systemaufrufe mit STRACE verfolgen – Memory Leaks und unerlaubte Speicherzugriffe (EFENCE und VALGRIND).

Neu in der dritten Auflage ist das Kapitel 17 mit einer umfangreichen Einführung in die Shellprogrammierung. Für dieses Kapitel habe ich mich entschieden, weil mir aufgefallen ist, dass viele Programmierer gerne das Rad immer wieder neu erfinden. Häufig werden Lösungen mit aufwändigen Konsolenprogrammen entwickelt, die in der Shellprogrammierung mit ein paar Zeilen erstellt werden.

Im Anhang A finden Sie einige Dinge, die Sie in puncto Sicherheit beachten müssen, und in Anhang B eine kompakte Funktionsreferenz vieler Funktionen, die im Buch verwendet wurden. Neu in der dritten Auflage ist Anhang C mit einer umfangreichen Übersicht (mit Beispielen) zu den Linux-Unix-Kommandos in der Shell. Anhang D listet verschiedene Eigenheiten von Shells wie externe Kommandos, Shell-Optionen, Shell-Variablen usw. auf. Am Ende – im Anhang E – wird die beiliegende Buch-CD, welche ein umfangreiches Bonus-Material bietet, beschrieben.

Buch-CD

CD/DVDNeben den Quellcodes aus diesem Buch finden Sie auf der Buch-CD ein recht üppiges Bonus-Material für weitere und tiefere Recherchen zu vielen Kapiteln und Themen rund um Linux. Es befinden sich dabei u. a. drei (!) weitere Online-Bücher auf der CD wieder:

Aus Platzgründen und um den Buchpreis nicht unnötig in die Höhe zu treiben, finden 126 weitere PDF-Seiten vom Buch ausgelagert auf die CD wieder. Und zwar handelt es sich hierbei um die Kapitel »Xlib – X Window-Programmierung« und »SDL«.

Zu den weiteren Highlights gehören interessante Artikel der Zeitschrift hackin9 und ein Manuskript zum Thema "Sicherheitsrelevante Programmierfehler" von Thomas Biege (SUSE LINUX AG, Security Support & Auditing). Natürlich nicht zu vergessen, das Projekt "SelfLinux", welches eine vollständige Dokumentation zu GNU/Linux beinhaltet. Eine weitere Perle auf dieser Buch-CD finden Sie in der IPv6-Übersicht, die in großen Teilen aus der Diplomarbeit von Herrn Uwe Toenjes entstand und von Mario Fürderer und Thomas Lange erweitert und überarbeitet wurde.