Über dieses Buch 

Wer sollte das Buch lesen?
Jeder, der möchte, darf, soll oder muss. Ein solch umfangreiches Buch hat natürlich auch eine recht breit gestreute Zielgruppe – und trotzdem möchten wir den jeweils individuellen Ansprüchen unserer Leser gerecht werden.
Anfänger, Fortgeschrittene
Anfänger werden im gesamten Buch neue Informationen finden. Wir empfehlen, gegebenenfalls zuerst die Installationsanleitungen im Anhang sowie das folgende Einleitungskapitel zu lesen. Fortgeschrittene hingegen können die Installationsanleitungen sowie die Einführung zu Linux und BSD getrost überspringen und mit dem ersten, anspruchsvolleren Kapitel zum Kernel beginnen. Wahlweise können Sie auch weitere Grundlagenkapitel, etwa die Ausführungen zur Shell oder das Kapitel zu Desktops und Window-Managern, überspringen.
Profis
Professionelle Anwender sollten in unseren technischen Kapiteln, in denen wir haupsächlich Hintergrundinformationen vermitteln, auf ihre Kosten kommen. Dazu zählen unter anderem die Kapitel zum Kernel, zur Administration des Systems und des Netzwerks, zu Prozessen und zur Interprozess-Kommunikation, zu den Dateisystemen, zur Programmierung, zum Bootstrap-Vorgang und zur Sicherheit von Unix-Systemen.
Referenz
Außerdem können Sie dieses Buch immer wieder als Nachschlagewerk nutzen. Wir haben darauf geachtet, einen möglichst umfangreichen Index zu erstellen, der alle wichtigen Begriffe des Buches enthält. Des Weiteren sind alle Kapitel so aufgebaut, dass sie der Reihe nach gelesen werden können, man aber auch einzelne Themen zum Nachschlagen herausgreifen kann. Das Ganze rundet schließlich eine Kommandoreferenz im Anhang ab, in der die wichtigsten Befehle samt zugehöriger Optionen und den Referenzen zu den entsprechenden Stellen im Buch zu finden sind.
Aufgaben
Außerdem gibt es noch diverse Aufgaben am Ende der einzelnen Kapitel, deren Lösungen Sie im Anhang finden und die Ihnen dabei helfen sollen, das neue Wissen zu verinnerlichen.
Kapitelüberblick
Welche Kapitel gibt es im Einzelnen und welche Themen werden darin behandelt?
Einleitung
In der Einleitung soll es zunächst um die Entstehungsgeschichte von Unix, Linux und BSD gehen. Wir erörtern auch die wichtigsten Unterschiede und Gemeinsamkeiten von BSD und Linux. Diese Unterschiede sind beispielsweise die Ports und die Lizenzen. Des Weiteren setzen wir uns kurz mit einem recht interessanten Thema soziologischer Natur auseinander und zeigen die wichtigsten Informationsquellen auf, die Ihnen helfen, wenn Sie mit Linux oder BSD einmal nicht weiter wissen.
Die Installation
Im zweiten Kapitel führen wir Sie an die Installation von Linux und BSD heran. Zunächst werden die Installationsvoraussetzungen und -vorbereitungen besprochen. Anschließend wird die Installation verschiedener Distributionen beispielhaft gezeigt.
Erste Schritte
Kapitel 3 führt Sie in die allerwichtigsten Begriffe der grafischen Oberflächen KDE und GNOME ein, damit Sie grundlegende Tätigkeiten mit Linux verrichten können.
Linux als Workstation
Da das aber nicht genügt und wir Sie möglichst gleich zu Beginn mit Linux arbeiten lassen möchten, zeigen wir in Kapitel 4, wie Sie mit Office arbeiten, im Internet surfen und ein E-Mail-Programm konfigurieren können.
Der Kernel
Im fünften Kapitel geht es um den Kern des Betriebssystems – den Kernel. Es beginnt mit einer Erklärung der wichtigsten Bestandteile des Computers und der Aufgaben des Betriebssystems. Dazu zählen zum Beispiel die Abstraktion und die Virtualisierung. Anschließend werfen wir einen ersten Blick auf die Definitionen von Prozessen, Tasks und Threads sowie auf das Speichermanagement und befassen uns mit der Ein- und Ausgabe.
Grundlagen
Nachdem Kapitel 5 die wichtigsten Grundlagen zum Verständnis des Unix-artigen Betriebssystems vermittelt hat, geht es in Kapitel 6 um die Grundlagen aus Anwendersicht. Das Kapitel gibt einen Einblick in die Unix-Philosophie, den Startvorgang und den Login. Außerdem werden die wichtigsten Befehle vorgestellt, die man bei der täglichen Arbeit verwendet oder mit denen man auf die Dokumentationen des Betriebssystems zugreift.
Shell
Der zweite Teil des Buches beschäftigt sich auf etwa 150 Seiten intensiv mit der Shell, die in der Regel die primäre Arbeitsumgebung unter Unix-artigen Systemen darstellt. Kapitel 7 befasst sich mit der Definition und grundlegenden Anwendung der Shell. Dazu zählen der Start von Programmen, die Verwendung von Shell-Variablen sowie die Ein- und Ausgabeumlenkung. Außerdem zeigen wir Ihnen bereits dort, wie Sie sogenannte Pipes einsetzen und möglichst effektiv mit der Shell arbeiten können.
Reguläre Ausdrücke
Das achte Kapitel befasst sich mit den sogenannten regulären Ausdrücken, einem besonders wichtigen Thema. Nach einer kurzen theoretischen Einführung in reguläre Ausdrücke wird gezeigt, wie man diese mit dem Stream-Editor sed und dem Tool grep anwendet. Außerdem lernen Sie die Programmierung mit der Skriptsprache AWK, die in der Shellskriptprogrammierung sehr häufig Verwendung findet.
Tools
Kapitel 9 stellt wichtige Tools vor, die Sie innerhalb der Shellskriptprogrammierung benötigen, um mit Dateien zu arbeiten.
Editoren
Bevor es dann endlich mit der richtigen Shellskriptprogrammierung losgeht, behandeln wir in Kapitel 10 noch Editoren. Editoren erleichtern die Shellskriptprogrammierung in hohem Maße. Im Besonderen werden die beiden bekannten Editoren vi und emacs vorgestellt.
Shellskript- programmierung
Kapitel 11, das letzte Kapitel des Shell-Teils, befasst sich mit der Programmierung der Bourne-Shell und der Bourne-Again-Shell (sh und bash). Wir zeigen, wie ein Shellskript aufgebaut ist und wie man es ausführbar macht und anwendet. Außerdem lernen Sie, wie Sie in der Shell Berechnungen durchführen, Arrays benutzen, bedingte Anweisungen und Schleifen verwenden und Menüs bilden. Ebenfalls sehr wichtig ist das Thema der Funktionen, das wir natürlich nicht vernachlässigen.
C-Shell
Als Exkurs dient Kapitel 12, das die C-Shell vorstellt.
Benutzer- verwaltung
Der dritte Teil des Buches behandelt die System- und Netzwerkadministration – ein weiteres spannendes Thema. Kapitel 13 befasst sich zunächst mit der Benutzerverwaltung. Zunächst wird die lokale Benutzerverwaltung unter Unix besprochen. Dazu gehören zum Beispiel das Erstellen von neuen Benutzerkonten, das Wissen zu Passwortdateien und zur Shadowsuite, aber auch die Administration von Benutzergruppen. Zudem wird gezeigt, wie man als »jemand anderes« arbeiten kann. Für die fortgeschrittenen Benutzer behandeln wir zudem die Administration von NIS- und LDAP-Servern.
Verwaltung
Kapitel 14 geht auf die Rechteverwaltung ein, auf die Installation von neuer Software – wir behandeln natürlich auch die BSD-Ports – und auf die Automatisierung von Tätigkeiten. Außerdem erläutern wir das Logging, die Dateisystemverwaltung und – ganz wichtig – das Kompilieren eines neuen Kernels, das Laden von Kernelmodulen sowie die Anpassung des Systems an die deutsche Sprache und die deutsche Tastaturbelegung.
Netzwerk
Ab Kapitel 15 geht es dann um die Netzwerkkonfiguration, der fünf Kapitel gewidmet sind, da dieses Thema besonders wichtig und auch für fortgeschrittene sowie für professionelle Anwender hochinteressant ist. Kapitel 15 befasst sich zunächst mit den Grundlagen des TCP/IP-Netzwerks und klärt die wichtigsten Begriffe wie IP-Adresse, Port (TCP/IP) oder Layer. Danach wird die Netzwerkkonfiguration durchgeführt und das Routing wird aufgesetzt. Auch Netzwerkverbindungen werden betrachtet. Dazu zählt auch, dass man aktive TCP-Verbindungen, das Datenaufkommen an Schnittstellen oder den ARP-Cache unter die Lupe nimmt. Wer sich nun fragt, wie er mit Linux ins Internet kommt, wird ebenfalls in diesem Kapitel fündig.
Client- Anwendungen
Die diversen Anwendungen für Netzwerk-Clients werden anschließend in Kapitel 16 besprochen. Dazu zählen zum Beispiel Telnet, die R-Tools, der FTP-Client, die bekanntesten Mailprogramme sowie IRC-Clients. Außerdem besprechen wir Usenet-Clients und den RSS-Reader snownews.
Netzwerk-Dienste
Kapitel 17 setzt den ersten Schritt in die Serverwelt und behandelt bekannte Standarddienste. Dazu gehören die »Superserver« inetd und xinetd sowie diverse Standarddienste. Außerdem werden verschiedenste Server aufgesetzt: DHCP-Server, NNTP-Server, Mailserver, ein Network-Filesystem-Server (NFSd), ein FTP-Server sowie Samba.
Mailserver
Wie ein Mailserver funktioniert, dieser eingerichtet und grundlegend vor SPAM gesichert wird, erfahren Sie in Kapitel 18.
Webserver, LAMP
LAMP steht für Linux-Apache-MySQL-PHP. Apache ist der weltweit bekannteste und populärste Webserver und gehört zum Standardumfang von Linux. Als solcher wird er natürlich auch in unserem Buch besprochen (siehe Kapitel 19). Darüber hinaus setzen wir noch die MySQL-Datenbank auf und gehen auf die PHP-Programmierung ein.
DNS-Server
Kapitel 20 behandelt eine ebenfalls sehr wichtige Thematik: das Domain Name System. Aufbauend auf den Grundlagen aus Kapitel 17 wird hier das Setup der Server erläutert. Wir behandeln in diesem Buch den populären BIND-Server, der zum Standardumfang eigentlich aller Linux-Distributionen und BSD-Derivate zählt, sowie den Caching-Dienst des djbdns. Zudem befassen wir uns mit den wichtigsten Tools zum Durchführen von DNS-Anfragen.
Secure Shell
Wahrscheinlich haben Sie sich bereits gefragt, warum wir die Secure Shell (SSH) nicht im Client-Kapitel besprechen. Der Grund ist der, dass wir der Secure Shell inklusive des Servers und des Clients ein eigenes Kapitel (21) widmen, da es leichter ist, beide Themen zusammen zu behandeln und zu verstehen.
X11
Der vierte Teil des Buches behandelt die grafische Oberfläche, das X-Window-System oder kurz X11. Kapitel 22 geht zunächst nur auf das Grundsystem, dessen Funktionsweise und Konfiguration sowie auf das Prinzip der Window-Manager und Desktops ein. Wir befassen uns außerdem mit dem grafischen Login und einigen zusätzlichen Features wie Xinerama und DualHead.
Window-Manager
Window-Manager und Desktops werden in Kapitel 23 besprochen. Wir gehen auf drei besonders populäre Systeme ein. Nämlich KDE, GNOME und den WindowMaker. Darüber hinaus geben wir noch einen kurzen Überblick über alternative Window-Manager und Desktops.
X11-Tools
Unter X11 gibt es natürlich noch diverse Anwenderprogramme. Dazu zählen etwa das Textsatz-System LaTeX und diverse Dokumenten-Betrachterprogramme. Diese Programme sowie einzelne X11-Editoren und weitere populäre Programme, etwa the GIMP oder k3b, werden in Kapitel 24 vorgestellt.
Multimedia, Spiele
In Kapitel 25 geht es zum einen darum, das System für Audio- und Videoausgabe zu konfigurieren, und zum anderen um die Verwendung von TV-Karten und Webcams. Außerdem sprechen wir darüber, wie man Linux dazu bekommt, einen Drucker zu verwenden, und welche Spiele zur Verfügung stehen.
Systeminterna
Wir haben uns dazu entschlossen, einen weiteren, etwas unüblichen Schritt zu gehen, der darin besteht, recht anspruchsvolle Hintergrundinformationen zu vermitteln. Wir möchten Ihnen zeigen, wie Linux und BSD wirklich funktionieren. Deshalb geht es im sechsten Teil des Buches um die Systeminterna.
Prozesse und IPC
Kapitel 26 setzt sich zunächst mit den Prozessen und ihrer Administration auseinander. Es erklärt, wie Signale funktionieren und Hintergrundprozesse gehandhabt werden. Wir gehen zudem auf Scheduling und Prozessprioritäten ein. Es folgt die Interprozess-Kommunikation (IPC, Inter Process Communication). Hier erläutern wir Pipes, FIFOs, Semaphoren, Message Queues, Shared Memory und Unix Domain Sockets und stellen Ihnen die wichtigsten damit verbundenen Funktionen zur Systemprogrammierung vor.
Bootstrap und Shutdown
Einen genauen Einblick in den Bootstrap- und Shutdown-Mechanismus von Linux und BSD liefert Kapitel 27. Zunächst wird erklärt, wie es bis zum Start des Kernels kommt und wie die Bootmanager (LILO und GRUB) administriert werden. Danach erklären wir init unter BSD und Linux, gehen auf getty und login ein und behandeln den System-Shutdown.
Dateisysteme
In Kapitel 28 behandeln wir die Dateisysteme und deren Administration unter Linux und BSD. Es geht um den physikalischen und logischen Aufbau der Dateisysteme sowie um das virtuelle Dateisystem. Wir besprechen die einzelnen Dateisysteme wie ext2, ext3, ext4, reiserfs, FFS, UFS/UFS2, ISO9660, das Loop-Device, die Ramdisk, Swap, DevFS, ProcFS und das Netzwerk-Dateisystem NFS. Anschließend erklären wir die einzelnen Dateitypen wie Verzeichnisse (die unter Unix eigentlich nur Dateien sind), Links, Sockets und Named Pipes. Schließlich kommen wir auf die Inodes zu sprechen. Im letzten Abschnitt geht es um die Administration des Dateisystems mit disklabel, hdparam, fdisk, fsck, tune2fs und Co.
Virtualisierung
Emulatoren und Virtualisierungssoftware für die verschiedensten Systeme und Programmformate lernen Sie in Kapitel 29 kennen.
Programmierung und Sicherheit
Nachdem Sie durch die vorherigen sechs Teile dieses Werkes bereits sehr viel über die Anwendung, die Administration und die Interna von Linux und BSD gelernt haben und sich auch mit der Shell und ihrer Programmierung auskennen, führt der siebte Teil des Buches in die anspruchsvolle Softwareentwicklung und die Sicherheit von Unix-artigen Betriebssystemen ein.
Programmierung
Mit der Shellskriptprogrammierung und AWK soll es in diesem Buch nicht getan sein, daher behandelt Kapitel 30 die Softwareentwicklung. Es werden die wichtigsten unterstützten Interpreter und Compiler aufgeführt, Shared Libraries und der Umgang mit dem Debugger erläutert. Außerdem behandeln wir – anders als fast alle Linux-Bücher – Software-Profiling und Tracing. Es folgt ein Einblick in integrierte Entwicklungsumgebungen wie KDevelop. Danach werden sehr bekannte und mächtige Tools behandelt, die Sie zum Teil ebenfalls kaum in anderen Linux-Büchern finden: make, flex, yacc und bison. Zum Schluss geht es noch um die Veröffentlichung eigener Unix-Software, die Erstellung von Manpages, um das Versionsmanagement und um wichtige Bibliotheken.
C und Perl
Einen Crashkurs für C und Perl finden Sie in Kapitel 31. Dort können Sie auch nachlesen, warum wir uns für diese beiden Sprachen entschieden haben.
Sicherheit
Der fünfte Teil des Buches schließt mit zwei Kapiteln zur Sicherheit von Linux- und BSD-Systemen (Kapitel 32 und 33). Sie werden lernen, das System grundlegend abzusichern, Backups zu erstellen und unter Linux mit iptables eine Firewall zu konfigurieren.
Anhang
Lösungen
Mit den Aufgaben am Ende der einzelnen Kapitel lassen wir Sie auch nicht im Regen stehen: Anhang A enthält die Lösungen.
Kommando- referenz
Die Kommandoreferenz im Anhang B bietet nur eine Auswahl. Sie behandelt nicht immer alle Parameter eines Programms, sondern geht nur auf die wichtigen ein. Generell finden Sie zunächst eine kurze Erklärung zum Programm selbst sowie den Pfad der Binärdatei und anschließend eine Tabelle, die wichtige Parameter beschreibt.
Weitere Teile des Anhangs
Die weiteren Teile des Anhangs enthalten Beispiele, Informationen zur Buch-DVD sowie die obligatorischen Bestandteile: das Glossar, das Literaturverzeichnis sowie den Index.