Freitag, 9. Februar 2007

linux

Eigenschaften des Systems

Linux unterstützt die meisten der Merkmale, die andere Implementierungen von Unix bieten, und darüber hinaus ein paar, die Sie woanders nicht finden werden. In diesem Abschnitt stellen wir Ihnen kurz einige der Eigenschaften des Kernels vor.
Die Versionsnummern von Linux

Die Art und Weise, wie den verschiedenen Bestandteilen der Software Versionsnummern zugewiesen werden, kann für Linux-Neulinge verwirrend sein. Wenn Sie mit Linux anfangen, werden Sie wahrscheinlich eine CD-ROM-Distribution wie »Red Hat Version 5.2« oder »SuSE Version 6.2« in der Hand halten. Es ist wichtig zu verstehen, daß sich diese Versionsnummern nur auf die jeweilige Distribution beziehen (Distributionen sind gepackte Versionen von Linux, die zusammen mit Unmengen von freien Anwendungen normalerweise auf CD-ROM verkauft werden). Deswegen hat die von Red Hat, SuSE oder Debian vergebene Versionsnummer nicht unbedingt etwas mit den Versionsnummern der Software in der Distribution zu tun. Nur weil ein Distributor eine höhere Versionsnummer als ein anderer verwendet, heißt das noch lange nicht, daß die Software auch aktueller ist.

Der Linux-Kernel hat genau wie jede Applikation, Komponente, Bibliothek oder jedes Softwarepaket in einer Linux-Distribution eine eigene Versionsnummer. Beispielsweise verwenden Sie möglicherweise die Version 2.7.2.3 des gcc und die Version 3.3.1 des Fenstersystems XFree86. Sie können sich sicherlich denken, daß die Software um so neuer ist, je höher die Versionsnummer ist. Durch die Installation einer Distribution (wie Red Hat oder SuSE) müssen Sie sich darüber aber keine Gedanken machen, da die Distributionen normalerweise die neuesten Versionen jedes Pakets enthalten.

Der Linux-Kernel hat ein eigenes, merkwürdiges Numerierungssystem, mit dem Sie sich vertraut machen sollten. Wie bereits erwähnt, ist der Kernel der Kern des Betriebssystems, der für die Verwaltung aller Hardware, wie Festplatten, Netzwerkkarten, Speicher usw., in Ihrem Rechner zuständig ist. Im Gegensatz zu Windows-Systemen gibt es im Linux-Kernel keine Bibliotheken oder Fenstersysteme auf Applikationsebene. In gewissem Sinne werden Sie es als Benutzer nie direkt mit dem Kernel zu tun haben, sondern immer über eine Benutzerschnittstelle wie die Shell oder ein GUI (dazu später mehr).

Viele Leute denken jedoch, daß die Versionsnummer des Linux-Kernels die des »gesamten Systems« ist, was ein wenig irreführend ist. Jemand sagt vielleicht: »Ich verwende den Kernel 2.3.32«, aber das hat nicht viel zu sagen, wenn alles andere in seinem System hoffnungslos veraltet ist.

Das Versionssystem des Linux-Kernels sieht folgendermaßen aus. Zu jedem gegebenen Zeitpunkt gibt es zwei »neueste« Versionen des Kernels (die also aus dem Internet heruntergeladen werden können), die stabile und die Entwicklungsversion. Die stabile Version ist für die Mehrzahl der Linux-Anwender gedacht, die nicht an den allerneuesten experimentellen Features herumhacken wollen, sondern ein stabiles, funktionierendes System benötigen, das sich nicht jeden Tag verändert. Die Entwicklungsversion ändert sich dagegen ständig, weil neue Features eingebaut und von den Entwicklern über das Internet getestet werden. Änderungen an der stabilen Version betreffen hauptsächlich Bugfixes, also das Beseitigen von Fehlern, und Sicherheitslücken, während Änderungen an der Entwicklungsversion alles betreffen können - von grundlegenden neuen Subsystemen im Kernel bis zu kleinen Änderungen an einem Gerätetreiber zur Verbesserung der Geschwindigkeit. Die Linux-Entwickler garantieren nicht, daß die Entwicklungsversion bei jedem funktioniert, pflegen aber die stabile Version mit der Absicht, für jeden eine lauffähige Version zu haben.

Die stabilen Versionen haben eine gerade Unterversionsnummer (wie etwa 2.2), während die Entwicklungsversionen eine ungerade Unterversionsnummer (wie 2.3) haben. Beachten Sie, daß die Unterversionsnummer des aktuellen Entwicklungs-Kernels immer um genau eins größer ist als die des aktuellen stabilen Kernels. Wenn der stabile Kernel allerdings bei Version 2.4 angekommen ist, werden die Entwicklungs-Kernel bei 2.5 sein. (Es sei denn, Linus entscheidet sich, Version 2.4 in Version 3.0 umzubenennen, in welchem Falle die Entwicklungs-Kernel natürlich mit 3.1 beginnende Nummern bekommen.)

Jede dieser Kernel-Versionen hat noch eine dritte »Patch-Versionsnummer«, wie etwa 2.2.19 oder 2.3.85. Der sogenannte Patch-Level gibt eine bestimmte Unterversion der Kernel-Version an; höhere Nummern bezeichnen neuere Versionen. Derzeit ist der stabile Kernel bei 2.2.10 und der Entwicklungs-Kernel bei 2.3.11.
Was Linux alles kann

Linux ist ein komplettes Multitasking/Multiuser-Betriebssystem (wie alle anderen Unix-Versionen auch). Das bedeutet, daß viele Benutzer gleichzeitig auf einem Rechner arbeiten können, wobei viele Programme gleichzeitig ausgeführt werden. Darüber hinaus unterstützt Linux Multiprozessorsysteme (wie zum Beispiel Hauptplatinen mit zwei Pentium Pro-Prozessoren) mit bis zu 16 Prozessoren, eine großartige Sache für Hochleistungs-Server und wissenschaftliche Anwendungen.

Das Linux-System ist auf Quellcode-Ebene in vielen Punkten kompatibel zu einigen Unix-Standards (soweit man bei Unix von Standards sprechen kann), darunter Merkmale von IEEE POSIX.1, System V und BSD. Linux wurde unter Berücksichtigung der Portabilität von Quellcode entwickelt. Daraus ergibt sich, daß Sie wahrscheinlich auf einige Eigenschaften stoßen werden, die verschiedenen Implementierungen gemein sind. Ein großer Teil der freien Unix-Software aus dem Internet und aus anderen Quellen läßt sich unter Linux so kompilieren, wie sie bei Ihnen eintrifft.

Wenn Sie über ein wenig Unix-Hintergrundwissen verfügen, interessieren Sie vielleicht andere interne Eigenschaften von Linux wie Job-Kontrolle nach dem POSIX-Standard (wird zum Beispiel von den Shells csh und bash benutzt), Pseudo-Terminals (pty-Devices) und die Unterstützung von länderspezifischen oder anwenderdefinierten Tastaturbelegungen, die mit Hilfe von dynamisch ladbaren Tastaturtreibern realisiert werden. Linux unterstützt außerdem virtuelle Konsolen, die das Umschalten von der Systemkonsole zu mehreren Login-Sitzungen ermöglichen. Den Benutzern des Programms screen wird die Linux-Implementierung der virtuellen Konsolen bekannt vorkommen.

Linux kann problemlos auf einem System koexistieren, auf dem ein anderes Betriebssystem, wie Windows 95/98, Windows NT, OS/2 oder andere Unix-Versionen, installiert ist. Der Boot-Loader von Linux (LILO) läßt Sie beim Booten ein Betriebssystem wählen, Linux ist aber auch kompatibel mit anderen Boot-Loadern wie dem von Windows NT.

Linux läuft auf einer Vielzahl von CPU-Architekturen, darunter Intel x86 (386, 486, Pentium, Pentium Pro, Pentium II/III), SPARC, Alpha, PowerPC, MIPS und m68k. Portierungen auf andere Systeme sind bereits in Arbeit, und es wird erwartet, daß Linux auch problemlos auf den Intel-Prozessoren der nächsten Generation namens »Merced« laufen wird. Es wird sogar daran gearbeitet, Linux auf eingebettete Prozessoren, wie etwa die in 3Coms Palm-Pilot-PDAs, zu portieren.

Icon

Kapitel 3
Kapitel 5


Linux unterstützt mehrere Dateisysteme zum Abspeichern von Daten. Einige davon, etwa das Second Extended-Dateisystem (ext2fs), sind speziell für Linux entwickelt worden. Andere, etwa die Dateisysteme Minix-1 und Xenix, werden ebenfalls unterstützt. Auch das DOS-Dateisystem ist implementiert worden, so daß Sie Windows- oder DOS-Dateien direkt von der Festplatte oder Diskette lesen können. Auch das Dateisystem nach ISO 9660, das alle Standardformate für CD-ROMs liest, wird unterstützt, genauso wie die Dateisysteme von Windows NT, Apple, Atari, Amiga und OS/2. Wir werden in Kapitel 3, Installation und erste Konfigurationsarbeiten, und Kapitel 5, Grundlagen der Systemverwaltung, genauer auf Dateisysteme eingehen.

Icon

Kapitel 15


Netzwerkunterstützung ist eine der großen Stärken von Linux, sowohl hinsichtlich Performanz als auch hinsichtlich Funktionalität. Linux enthält alles, was Sie für die Einbindung in TCP/IP-Netzwerke brauchen. Dazu gehören Treiber für viele bekannte Ethernet-Karten, SLIP (Serial Line Internet Protocol, das Ihnen über eine serielle Schnittstelle den Zugriff auf ein TCP/IP-Netz ermöglicht), Parallel Line Internet Protocol (PLIP), Point-to-Point Protocol (PPP), NFS (Network File System) usw. Sämtliche TCP/IP-Clients und -Dienste werden unterstützt, darunter FTP, Telnet, NNTP und SMTP. Der Linux-Kernel enthält eine vollständige Implementierung von Netzwerk-Firewalls, mit der Sie jeden Linux-Rechner als Firewall (die Netzwerkpakete kontrolliert, um beispielsweise unerlaubten Zugriff auf einen Webserver zu verhindern) konfigurieren können. Linux ist hinsichtlich der Performanz seiner Netzwerkimplementierung anderen Betriebssystemen überlegen. In Kapitel 15, TCP/IP und PPP, gehen wir genauer auf Linux und Netzwerke ein.
Der Kernel

Der Kernel ist das Herz des Betriebssystems - er enthält den Programmcode, der die Schnittstelle zwischen Anwenderprogrammen und der Hardware kontrolliert. Außerdem sorgt der Kernel für die Verwaltung der Prozesse, um das Multitasking zu ermöglichen, und kontrolliert einige andere Aspekte des Systems. Der Kernel ist kein einzelner Prozeß, der auf dem System läuft - statt dessen können Sie sich den Kernel als einen Satz von Routinen vorstellen, die ständig im Speicher gehalten werden und auf die jeder Prozeß zugreifen kann. Kernel-Routinen können auf verschiedene Weise aufgerufen werden. Eine direkte Methode, den Kernel zu benutzen, besteht darin, daß ein Prozeß einen Systemaufruf (system call) ausführt; das ist eine Funktion, die den Kernel veranlaßt, für den Prozeß etwas Programmcode auszuführen. Beispielsweise würde der Systemaufruf read Daten von einem Dateideskriptor lesen. Für den Programmierer sieht das aus wie eine weitere C-Funktion, aber in Wirklichkeit ist der Code für read im Kernel enthalten.

Kernel-Code wird auch in anderen Situationen ausgeführt. Wenn zum Beispiel ein Hardware-Interrupt erfolgt, ist es ebenfalls der Kernel, der mit einer Interrupt-Behandlungsroutine darauf reagiert. Wenn ein Prozeß an eine Stelle gelangt, an der er auf Ergebnisse warten muß, greift der Kernel ein und läßt diesen Prozeß ruhen, um einem anderen Prozeß mehr CPU-Zeit zu gewähren. In ähnlicher Weise teilt der Kernel jeweils einem Prozeß Priorität zu, indem er den Clock-Interrupt (und andere Mittel) benutzt, um von einem Prozeß zum anderen zu wechseln. Das ist im wesentlichen die Art und Weise, wie Multitasking erreicht wird.

Icon

Kapitel 7


Der Linux-Kernel wird auch als monolithischer Kernel bezeichnet, weil alle Gerätetreiber in ihm enthalten sind. Einige Betriebssysteme benutzen eine Mikrokernel-Architektur, bei der Gerätetreiber und andere Komponenten (wie Dateisysteme oder Code zur Speicherverwaltung) kein Bestandteil des Kernels sind, sondern ähnlich wie normale Applikationen behandelt werden. Beide Entwürfe haben ihre Vor- und Nachteile - die monolithische Architektur ist unter Unix-Implementierungen weit verbreitet und wird in klassischen Kernel-Designs wie System V oder BSD benutzt. Linux unterstützt ladbare Gerätetreiber (die durch Befehle des Benutzers in den Speicher geladen und von dort wieder entladen werden können). Im Abschnitt »Ladbare Gerätetreiber« in Kapitel 7, Software und den Kernel aktualisieren, erfahren Sie mehr zu diesem Thema.

Der Kernel ist in der Lage, auf vielen Architekturen FPU-Befehle zu emulieren, so daß auch Systeme ohne mathematischen Koprozessor Programme ausführen können.

Der Linux-Kernel auf Intel-Systemen ist so gestaltet, daß er die speziellen Möglichkeiten des Protected Mode der 80x86er Prozessoren (ab 80386) von Intel nutzen kann. Insbesondere benutzt Linux die auf Deskriptoren beruhende Speicherverwaltung des Protected Mode und viele der anderen fortschrittlichen Merkmale dieser CPUs. Jeder, der sich mit der Programmierung des 80386er Protected Mode auskennt, weiß, daß dieser Prozessor für ein Multitasking-Betriebssystem wie Unix (das eigentlich von Multics inspiriert wurde) entworfen wurde. Linux macht sich diese Funktionalität zunutze.

Der Linux-Kernel unterstützt das Demand-Paged-Loading von Programmcode. Das bedeutet, daß nur diejenigen Teile eines Programms von der Festplatte in den Speicher geladen werden, die gerade abgearbeitet werden. Wenn mehrere Teile eines Programms gleichzeitig laufen, wird nur eine einzige Kopie des Programmcodes im Speicher gehalten.

Um den verfügbaren Speicher zu vergrößern, benutzt Linux außerdem das Disk-Paging; das heißt, daß bis zu 16*128 Megabytes an Swap-Space Fußnoten 1 auf der Festplatte angelegt werden können. Wenn das System mehr physikalischen Speicher braucht, wird es inaktive Speicherseiten auf die Festplatte auslagern. Auf diese Weise können Sie größere Anwendungen laufen lassen, und es können mehr Benutzer gleichzeitig arbeiten. Allerdings kann der Swap-Space nicht physikalisches RAM ersetzen - er arbeitet aufgrund der Plattenzugriffszeiten viel langsamer.

Der Kernel benutzt für Anwendungsprogramme und Platten-Cache einen gemeinsamen Speicher-Pool. Auf diese Weise kann der gesamte freie Speicher als Cache genutzt werden, und die Größe des Cache wird reduziert, wenn große Anwendungen laufen.

Ausführbare Programme benutzen dynamisch gebundene Shared Libraries (gemeinsam genutzte Bibliotheken); das heißt, daß sie Programmcode in einer einzigen Library-Datei auf der Festplatte gemeinsam benutzen. Dies ähnelt dem Shared-Library-Mechanismus von SunOS. Dadurch können ausführbare Programme mit deutlich weniger Platz auf der Festplatte auskommen; insbesondere solche Programme, die auf viele Bibliotheksfunktionen zugreifen. Außerdem befindet sich immer nur eine Kopie des Bibliothekscodes zur Zeit im Speicher, was den gesamten Speicherverbrauch herabsetzt. Es gibt auch statisch gebundene Bibliotheken für diejenigen, die Objektcode debuggen wollen oder die den »kompletten« Programmcode erhalten möchten, ohne auf Shared Libraries angewiesen zu sein. Die Shared Libraries von Linux werden bei der Programmausführung dynamisch dazugebunden; das gibt Programmierern die Möglichkeit, Teile der Libraries durch ihren eigenen Code zu ersetzen.

Icon

Kapitel 14


Um das Debugging zu vereinfachen, erzeugt der Linux-Kernel Core Dumps (Speicherauszüge) zur Analyse nach Programmabstürzen. Mit Hilfe eines Core Dumps und einer ausführbaren Datei, die mit Debugging-Unterstützung gebunden wurde, können Sie feststellen, was ein Programm abstürzen ließ. Im Abschnitt »Eine Core-Datei analysieren« in Kapitel 14, Werkzeuge für Programmierer, werden wir das besprechen.
Fußnoten 1

Swap-Space ist eigentlich ein unpassender Name: Es werden nicht ganze Prozesse ausgelagert, sondern einzelne Speicherseiten. Natürlich werden oft doch ganze Prozesse ausgelagert, aber das muß nicht immer so sein.Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage
Online-Version
Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel
Eigenschaften der Software

In diesem Abschnitt werden wir Ihnen viele der Anwendungsprogramme vorstellen, die es für Linux gibt, und wir werden eine Reihe von Aufgabenstellungen besprechen, die oft mit dem Computer gelöst werden. Schließlich ist der wichtigste Teil des Systems die Spannweite an Programmen, die es dafür gibt. Noch beeindruckender ist, daß der größte Teil dieser Software frei erhältlich ist.
Grundlegende Befehle und Utilities

Icon

Kapitel 4


Nahezu jedes einzelne Utility (Hilfsprogramm), das Sie auf anderen Implementierungen von Unix vorfinden, ist auch nach Linux portiert worden. Dazu gehören grundlegende Befehle wie ls, awk, tr, sed, bc, more usw. Es gibt Linux-Portierungen von den meisten populären Paketen wie Perl, Python, dem Java Development Kit und weiteren. Was auch immer Ihnen einfällt - Linux hat es. Sie können deshalb davon ausgehen, daß Ihre gewohnte Unix-Arbeitsumgebung auch unter Linux existiert. Alle Standardbefehle und -Utilities sind vorhanden. (Linux-Anfänger sollten Kapitel 4, Grundlegende Unix-Befehle und -Konzepte, lesen; dort werden die Unix-Grundbefehle vorgestellt.)

Viele Texteditoren stehen zur Verfügung, darunter vi (einschließlich moderner Varianten wie vim), ex, pico und jove. Ebenso gibt es GNU Emacs und Varianten davon, wie XEmacs (der Erweiterungen für das X Window System enthält) und joe. Egal, mit welchem Texteditor Sie normalerweise arbeiten, mit größter Wahrscheinlichkeit ist er auch nach Linux portiert worden.

Icon

Kapitel 9


Die Wahl eines Texteditors ist eine interessante Angelegenheit. Viele Unix-Benutzer arbeiten immer noch mit »einfachen« Editoren wie vi (auch dieses Buch wurde mit vi und Emacs unter Linux geschrieben). Allerdings unterliegt vi aufgrund seines Alters einigen Beschränkungen, und modernere (und komplexere) Editoren wie etwa Emacs gewinnen an Popularität. Emacs enthält eine komplette, auf LISP basierende Makrosprache sowie einen LISP-Interpreter, hat eine umfangreiche Befehlssyntax und beinhaltet auch einige Spiele. Für Emacs gibt es Makros, die das Lesen von Mail und News ermöglichen, Verzeichnisbäume bearbeiten und sogar eine mit künstlicher Intelligenz ausgestattete Psychotherapie-Sitzung abhalten (ein Muß für den gestreßten Linux-Hacker). In Kapitel 9, Editoren, Textwerkzeuge, Grafiken und Drucken, finden Sie eine komplette Einführung in vi und eine ausführliche Beschreibung von Emacs.

Ein interessantes Detail ist, daß die meisten Linux-Utilities aus der GNU-Softwareschmiede stammen. Diese GNU-Utilities enthalten weitergehende Merkmale, die in den Standardversionen für BSD und AT&T nicht enthalten sind. Zum Beispiel kennt die GNU-Version des Editors vi, elvis, eine strukturierte Makrosprache, die sich vom AT&T-Original unterscheidet. Trotzdem hat man sich bemüht, die GNU-Utilities kompatibel zu ihren Vettern unter BSD und System V zu halten. Viele Leute betrachten die GNU-Versionen dieser Programme als die besseren. Ein Beispiel dafür sind die Kompressionsprogramme gzip und bzip2, die bessere Kompressionsraten erreichen als das ursprüngliche compress.

Für viele Benutzer ist die Shell (Bedienoberfläche) das wichtigste Utility. Die Shell ist ein Programm, das die Befehle des Benutzers interpretiert und ausführt. Viele Shells bieten außerdem Extras wie Job-Kontrolle (damit kann der Benutzer mehrere Prozesse gleichzeitig starten - man muß dabei nicht unbedingt an Orwell denken), die Umleitung von Ein- und Ausgaben oder eine Kommandosprache zum Schreiben von Shell-Skripten. Ein Shell-Skript ist eine Datei, die ein Programm in der Kommandosprache der Shell enthält - das entspricht einer »Batch-Datei« unter DOS.

Es gibt viele Typen von Shells für Linux. Der wichtigste Unterschied zwischen den Shells besteht in der Kommandosprache. So benutzt zum Beispiel die C-Shell (csh) eine Sprache, die der Programmiersprache C ähnlich ist. Die klassische Bourne-Shell benutzt eine andere Kommandosprache. Die Wahl einer Shell hängt oft von der Kommandosprache ab, die die Shell zur Verfügung stellt. Die Shell, für die Sie sich entscheiden, bestimmt in gewissem Grade, wie Ihre Arbeitsumgebung unter Linux aussieht.

Ganz gleich, mit welcher Shell Sie normalerweise arbeiten - ziemlich sicher gibt es eine Version davon für Linux. Die am häufigsten benutzte Shell ist die Bourne Again Shell (bash) von GNU. Dies ist eine Variante der Bourne-Shell mit weitergehenden Möglichkeiten wie Job-Kontrolle, einer History-Funktion für Befehlseingaben, automatischer Komplettierung von Befehlen und Dateinamen, einer Art Emacs-Interface, um die Befehlszeile zu editieren, sowie mächtigen Erweiterungen zur Kommandosprache der Standard-Bourne-Shell. Eine andere beliebte Shell ist tcsh, eine Version der C-Shell mit erweiterten Möglichkeiten, ähnlich denen der bash. Weitere Shells sind die Korn-Shell (ksh), ash von BSD, zsh, eine kleine Bourne-ähnliche Shell, und rc, die Shell des Plan-9-Betriebssystems.

Was ist also das Wichtige an diesen grundlegenden Utilities? Linux bietet Ihnen einzigartige Möglichkeiten, ein spezielles System ganz nach Ihren Wünschen zu konfigurieren. Wenn Sie zum Beispiel der einzige Benutzer Ihres Systems sind und Sie am liebsten mit dem Editor vi und der Shell bash arbeiten, brauchen Sie die anderen Editoren und Shells nicht zu installieren. Dieser »Do it yourself«-Geist ist unter Linux-Hackern und -Benutzern weit verbreitet.
Textverarbeitung

Fast jeder Computerbenutzer braucht irgendein Textverarbeitungssystem. (Wie viele Computerfreaks kennen Sie, die noch mit Papier und t schreiben? Nicht sehr viele, darauf können wir wetten.) In der Welt der PCs herrscht eine andere Art der Textverarbeitung vor als unter Unix (im Englischen als word processing bezeichnet). Dabei werden Texte editiert und formatiert (oft in einer »What-You-See-Is-What-You-Get«-(WYSIWYG-)Darstellung) und komplett mit Abbildungen, Tabellen und anderen Extras fertiggestellt.

Unter Unix findet eine andere Art von Textverarbeitung statt (im Englischen als text processing bezeichnet), die sich erheblich vom klassischen Word Processing unterscheidet. Bei der Textformatierung erstellt der Autor den Text in einer Formatierungssprache (»typesetting language«), die das Aussehen des Textes beschreibt. Statt den Text in einem speziellen Textverarbeitungsprogramm einzugeben, kann der ursprüngliche Text hierbei mit einem beliebigen Texteditor, wie zum Beispiel vi oder Emacs, bearbeitet werden. Sobald der Text (inklusive der Formatierungsanweisungen) fertiggestellt ist, wird er mit einem besonderen Programm (Textformatierer) bearbeitet, das den Quelltext für die Druckausgabe formatiert. Das entspricht etwa der Programmierung in Sprachen wie C; der Text wird sozusagen in seine endgültige Form »kompiliert«.

Unter Linux stehen viele Textformatierungssysteme zur Verfügung. Eines ist groff, die GNU-Version des klassischen Textformatierers troff, der ursprünglich von den Bell Laboratories entwickelt wurde und noch immer auf vielen Unix-Systemen auf der ganzen Welt in Gebrauch ist. Ein anderer moderner Textformatierer ist , der von dem bekannten Informatiker Donald Knuth entwickelt wurde. Auch Dialekte von , etwa , sind vorhanden.

Textformatierer wie und groff unterscheiden sich hauptsächlich in der Syntax ihrer Formatierungssprachen. Die Wahl eines Formatierungssystems hängt auch davon ab, ob die verfügbaren Utilities Ihren Anforderungen gerecht werden; auch persönliche Vorlieben spielen eine Rolle.

Beispielsweise betrachten einige Leute den Textformatierer groff als etwas obskur, und sie arbeiten deshalb lieber mit , dessen Quelltexte einfacher zu lesen sind. Allerdings ist groff in der Lage, reine ASCII-Texte zu produzieren, die auf dem Bildschirm angezeigt werden können. eignet sich eher dazu, Ausgaben für Drucker zu erzeugen. Aber es gibt auch verschiedene Programme, die -formatierte Dokumente in ASCII-Texte umwandeln oder das -Format beispielsweise in das groff-Format wandeln.

Ein anderer Textformatierer ist Texinfo, eine Erweiterung zu , der von der Free Software Foundation für die Softwaredokumentation benutzt wird. Texinfo ist in der Lage, aus einer einzigen Quelldatei entweder ein druckbares Dokument oder ein Hypertext-»Info«-Dokument zu erstellen, das online gelesen werden kann. Info-Dateien sind die wichtigste Art der Dokumentation von GNU-Software wie etwa Emacs.

Textformatierer werden in der EDV-Welt häufig zum Erstellen von schriftlichen Unterlagen, Doktorarbeiten, Zeitschriftenartikeln und Büchern benutzt (auch dieses Buch wurde mit geschrieben, mit einem selbstgebauten SGML-System verarbeitet und mit groff gedruckt). Die Möglichkeit, den ursprünglichen Text inklusive der Formatierungsanweisungen im Klartext zu bearbeiten, bietet eine Chance, den Textformatierer selbst zu erweitern. Da die Quelltexte nicht in irgendeinem obskuren Format gespeichert werden, das nur von einer bestimmten Textverarbeitung gelesen werden kann, haben Programmierer die Möglichkeit, Parser und Übersetzungsprogramme für die Formatierungssprache zu schreiben und damit das System zu erweitern.

Wie sieht so eine Formatierungssprache aus? Im allgemeinen bestehen die Quelltexte einer solchen Sprache aus dem eigentlichen Text, in den »Kontrollcodes« eingebettet sind, die eine bestimmte Formatierung bewirken - etwa einen anderen Font wählen, den Seitenrand einstellen, eine Liste anlegen usw.

Die bekannteste Textformatierungssprache ist HTML, die jetzt mit XML einen jüngeren Bruder bekommen hat. HTML selbst ist ein Abkömmling von SGML, der Sprache, in der dieses Buch geschrieben wurde. Die speziellen Tags, die für dieses Buch verwendet wurden (wie und ), stammen aus Docbook, einer Art Industriestandard für Tags in technischen Dokumentationen, der auch in der offiziellen Linux-Dokumentation (die später in diesem Kapitel noch besprochen wird) verwendet wird. Hier folgt ein typischer Abschnitt aus Docbook:<br /><br /><br /><sect2><title>Grundlegende Befehle und Utilities



Nahezu jedes einzelne Utility (Hilfsprogramm), das Sie auf anderen Implementierungen von
Unix vorfinden, ist auch nach Linux portiert worden. Dazu gehören grundlegende Befehle wie
ls, awk,
tr, sed, bc,
more usw. Es gibt Linux-Portierungen von den meisten populären Paketen
wie Perl, Python, dem Java Development Kit und weiteren. Was auch immer Ihnen einfällt -
Linux hat es. Sie können deshalb davon ausgehen, daß Ihre gewohnte Unix-Arbeitsumgebung
auch unter Linux existiert. Alle Standardbefehle und -Utilities sind vorhanden. (Linux-
Anfänger sollten lesen; dort werden die Unix-
Grundbefehle vorgestellt.)







Auf den ersten Blick mag so eine Sprache obskur wirken, aber eigentlich ist das ganz einfach zu lernen. Die Verwendung eines solchen Systems erzwingt die Einhaltung typographischer Standards. Beispielsweise werden alle Aufzählungslisten in einem Dokument immer gleich aussehen; es sei denn, der Autor verändert die Definition der »Umgebung« für Aufzählungslisten.

Das Hauptziel solcher Formatierungssprachen besteht darin, es dem Autor zu ermöglichen, sich auf das Schreiben des eigentlichen Textes zu konzentrieren und sich nicht um Schriftsatzkonventionen kümmern zu müssen. Wenn das gerade gezeigte Beispiel gedruckt wird, werden die Befehle in den -Tags in dem Font, der Farbe oder sonstigen Konvention, die der Verleger gewählt hat, gedruckt; außerdem kann leicht ein Index mit allen Befehlen erzeugt werden. Außerdem werden an der Stelle, an der der merkwürdig aussehende -Tag steht, automatisch die richtige Kapitelnummer und der richtige Kapiteltitel eingefügt, selbst wenn die Autoren nach dem Schreiben dieses Absatzes noch die Kapitel umstellen.

Es gibt zwar WYSIWYG-Editoren für HTML (und sogar einige wenige für SGML), aber es erfordert andererseits nur wenig Übung, die Tags von Hand einzusetzen. Werkzeuge können dann Ausgaben in Standardformaten wie PostScript oder PDF erzeugen und diese auf dem Bildschirm des Autors darstellen oder an einen Drukker schicken. Zu den in Kapitel 9, Editoren, Textwerkzeuge, Grafiken und Drucken, beschriebenen Formatierungssystemen gehören , sein naher Verwandter Texinfo und troff.

Textverarbeitungen nach dem WYSIWYG-Prinzip sind aus vielen Gründen beliebt; sie bieten eine mächtige (und manchmal komplexe) visuelle Schnittstelle zum Editieren von Dokumenten. Andererseits ist diese Schnittstelle von vornherein auf diejenigen Aspekte des Textlayouts beschränkt, die dem Benutzer angeboten werden. Deshalb bieten viele WYSIWYG-Textverarbeitungen eine spezielle »Formatierungssprache« für die Erstellung komplizierter Ausdrücke an; etwa einen Formeleditor für mathematische Formeln. Der Einsatz eines Formeleditors entspricht der Benutzung eines Textformatierers, allerdings in sehr einfacher Form.

Der feine Unterschied bei der Benutzung von Textformatierern ist, daß Sie genau bestimmen können, was Sie brauchen. Diese Systeme erlauben Ihnen außerdem, die Quelltexte mit beliebigen Editoren zu bearbeiten, und die Quelltexte lassen sich leicht in andere Formate wandeln. Der Nachteil bei dieser Flexibilität und Mächtigkeit ist, daß keine WYSIWYG-Schnittstelle vorhanden ist.

Viele Benutzer von WYSIWYG-Textverarbeitungen sind es gewohnt, bereits beim Editieren den fertig formatierten Text zu sehen. Andererseits muß man sich bei der Arbeit mit einem Textformatierer im allgemeinen keine Gedanken darüber machen, wie der formatierte Text aussehen wird. Der Schreiber lernt, aus den Formatierungsanweisungen im Quelltext zu erkennen, wie der fertige Text aussehen wird.

Es gibt Programme, die es vor dem Ausdruck ermöglichen, das formatierte Dokument auf einem Grafikbildschirm zu betrachten. Das Programm xdvi beispielsweise zeigt eine »geräteunabhängige« Datei an, die mit unter dem X Window System erstellt wurde. Andere Anwendungen wie xfig bieten eine graphische WYSIWYG-Schnittstelle zum Zeichnen von Abbildungen und Diagrammen, die anschließend in das Format eines Textformatierers gewandelt und dann in Ihre Dokumente eingefügt werden können.

Es gibt viele andere Utilities für die Textbearbeitung. Das mächtige METAFONT-System, mit dem Fonts für erstellt werden, gehört zur Linux-Portierung von . Andere Programme sind zum Beispiel ispell, eine interaktive Rechtschreibprüfung, makeindex, mit dem Indizes zu -Dokumenten erstellt werden, sowie viele Makropakete, die auf groff und basieren und mit denen verschiedene Arten von Dokumenten und mathematischen Texten formatiert werden. Außerdem gibt es Konvertierungsprogramme für die Umwandlung von - und groff-Quellen in viele andere Formate.

Icon

Kapitel 9


In Kapitel 9, Editoren, Textwerkzeuge, Grafiken und Drucken, besprechen wir , groff und andere Programme zur Textformatierung im Detail.
Kommerzielle Applikationen

Kommerzielle Softwarehersteller sind mehr und mehr daran interessiert, ihre Software auf Linux zu portieren. Dazu gehören Office-Suiten, Textverarbeitungen, Hilfsprogramme zur Netzwerkadministration und ausgewachsene Datenbanken. In den ersten beiden Auflagen dieses Buches konnten wir nicht viel über verfügbare kommerzielle Applikationen schreiben, aber dies ändert sich in Windeseile - ja sogar so schnell, daß wahrscheinlich eine Unmenge weiterer kommerzieller Applikationen auf Linux portiert worden ist, wenn Sie dies lesen.

Star Division (http://www.stardivision.de ) hat die Office-Suite Star Office 5.0 für Linux veröffentlicht, die es auch für Windows 98, Windows NT und andere Unix-Systeme gibt. Diese Suite ist im großen und ganzen ein Microsoft Office-Clone und enthält eine Textverarbeitung, eine Tabellenkalkulation, einen HTML-Editor, ein Präsentationsprogramm und andere Programme. Sie kann diverse Dateiformate lesen (darunter die von Microsoft Office) und steht für den nichtkommerziellen Einsatz zum freien Download bereit.

Corel hat WordPerfect 8 auf Linux portiert, das eine Textverarbeitung, eine Tabellenkalkulation, ein Präsentationsprogramm, einen persönlichen Informationsmanager und andere Applikationen enthält. Für den privaten Gebrauch ist dieses Programm gratis, für alle anderen Einsatzzwecke kann eine Einzellizenz für etwa 150 DM direkt von Corel und möglicherweise etwas billiger von anderen Distributoren bezogen werden.

Firmen wie Oracle, IBM, Informix, Sybase und Interbase haben kommerzielle Datenbanken veröffentlicht, die auf Linux portiert worden sind. Von IBMs DB2-Datenbank-Server kann eine Beta-Version der Linux-Version gratis von IBMs Webserver (http://www.ibm.com ) heruntergeladen werden. Diese Beta-Version unterstützt kein Clustering und andere fortgeschrittene Merkmale der anderen DB2-Versionen, unterstützt aber Multiprozessormaschinen. IBM hat auch angekündigt, das beliebte AFS-Netzwerkdateisystem auf Linux portieren zu wollen.

Von Caldera stammt NetWare for Linux 1.0, mit dem Linux-Server Datei-, Druck- und Verzeichnisdienste in NetWare-Umgebungen bereitstellen und Daten mit Novell-NetWare-basierten Servern teilen können. Es ist kompatibel mit NetWare 4.10b und NetWare-Clients für Windows 3.1/95/98, DOS, Linux, Macintosh und UnixWare.
Programmiersprachen und -Utilities

Linux stellt eine komplette Unix-typische Programmierumgebung bereit, die alle Standardbibliotheken, Programmierwerkzeuge, Compiler und Debugger enthält, die Sie auch auf anderen Unix-Systemen vorfinden. In der Welt der Softwareentwicklung für Unix geschieht die Anwendungs- und Systemprogrammierung normalerweise mit C oder C++. Der Standard-Compiler für C und C++ unter Linux ist der gcc von GNU; das ist ein ausgereifter, moderner Compiler mit vielen Optionen. gcc kann C++-Programme (einschließlich der AT&T-3.0-Optionen) ebenso kompilieren wie Objective-C, einen anderen objektorientierten Dialekt von C.

Java, noch ein Neuling in der Szene der Programmiersprachen, wird unter Linux voll unterstützt. Die Version 1.2 des Java Development Kit von Sun (auch »Java 2« genannt) ist auf Linux portiert worden und funktioniert vollständig. Java ist eine objektorientierte Programmiersprache und Laufzeitumgebung, die einen großen Bereich von Applikationen - wie Applets in Webseiten, internetbasierte Distributionssysteme, Datenbankanbindungen und vieles andere mehr - unterstützt. In Java geschriebene Programme können auf jedem System (unabhängig von der CPU-Architektur und dem Betriebssystem) laufen, auf dem es eine Java Virtual Machine gibt. Die Möglichkeiten, die sich durch Java ergeben, haben in der Presse für große Aufregung gesorgt.

Neben C, C++ und Java sind viele andere Compiler- und Interpreter-Sprachen nach Linux portiert worden, zum Beispiel Smalltalk, FORTRAN, Pascal, LISP, Scheme und Ada. Außerdem gibt es mehrere Assembler, mit denen sich Maschinencode schreiben läßt, sowie die Favoriten aller Unix-Hacker: Perl (die Skriptsprache, die alle anderen Skriptsprachen überflüssig macht), Tcl/Tk (ein Shell-ähnliches System zur Verarbeitung von Befehlen, das auch die Entwicklung von einfachen Anwendungen für das X Window System unterstützt) und Python (die erste von Grund auf objektorientierte Skriptsprache).

Der ausgereifte Debugger gdb ist nach Linux portiert worden. Sie haben damit die Möglichkeit, ein Programm schrittweise auszuführen, um Fehler zu finden oder die Ursache eines Absturzes mit Hilfe eines Core Dumps zu untersuchen. gprof, ein Profiling-Utility, erstellt Statistiken zum Zeitverhalten Ihres Programms und zeigt damit auf, wo Ihr Programm während der Ausführung wieviel Zeit verbringt. Der Texteditor Emacs bietet eine interaktive Arbeitsumgebung zum Editieren und Kompilieren verschiedener Programmiersprachen. Andere auf Linux portierte Werkzeuge sind GNU make und imake, mit denen Sie die Kompilierung großer Anwendungen steuern, sowie RCS, ein System zur Versionskontrolle.

Linux eignet sich hervorragend zur Entwicklung von Unix-Anwendungen. Es bietet eine moderne Programmierumgebung mit allen erdenklichen Extras. Professionelle Unix-Programmierer und Systemverwalter können Linux benutzen, um Software zu Hause zu entwikkeln, die dann auf Unix-Rechner am Arbeitsplatz übertragen wird. Fußnoten 1 So können Sie nicht nur eine Menge Zeit und Geld sparen, sondern auch bequem in den eigenen vier Wänden arbeiten. Informatikstudenten können mit Linux die Programmierung unter Unix lernen und andere Aspekte des Systems, etwa die Kernel-Architektur, erforschen.

Unter Linux haben Sie nicht nur Zugang zu sämtlichen Bibliotheken und Utilities, sondern Sie haben auch den kompletten Kernel und den Quellcode der Bibliotheken im Zugriff.

Icon

Kapitel 13
Kapitel 14


Kapitel 13 und 14 beschäftigen sich mit den Programmiersprachen und -werkzeugen, die unter Linux zur Verfügung stehen.
Das X Window System

Das X Window System ist die graphische Standardschnittstelle auf Unix-Rechnern. Es ist eine umfangreiche Bedienoberfläche, unter der viele Anwendungen laufen können. Bei der Arbeit mit X kann der Benutzer mehrere Terminalfenster gleichzeitig auf dem Bildschirm haben, von denen jedes eine andere Login-Sitzung darstellt. In der Regel wird die X-Schnittstelle mit der Maus bedient.

Eine der ganz großen Stärken des X Window Systems liegt darin, Aussehen und Bedienung nahezu perfekt den Benutzervorlieben anpassen zu können. Es ist möglich, die Umgebungen von Windows 95/98, dem Macintosh und NeXTStep unter X zu emulieren, aber auch völlig neue Desktop-Konfigurationen zu erschaffen (viele Linux-Benutzer ziehen es vor, etwas Eigenes zu gestalten).

Viele X-spezifische Anwendungen sind bereits geschrieben worden, darunter Spiele, Grafik-Utilities, Programme zur Erstellung von Texten usw. Mit Linux und X wird Ihr System zu einer echten Workstation. Wenn Sie Ihren Rechner dann noch mit TCP/IP vernetzen, können Sie sogar X-Anwendungen auf Ihrem Bildschirm darstellen, die auf einem anderen Rechner ablaufen - genau wie auch andere Systeme unter X das tun können.

Das X Window System wurde ursprünglich am MIT (Massachusetts Institute of Technology) entwickelt und wird ohne Einschränkungen weitergegeben. Allerdings haben einige kommerzielle Hersteller firmeneigene Erweiterungen zur Originalsoftware auf den Markt gebracht. Die Version von X, die in Linux enthalten ist, ist unter dem Namen XFree86 bekannt und ist eine Portierung von X11R6, die unter anderem für 80386er Unix-Systeme wie Linux frei weitergegeben werden darf. XFree86 unterstützt eine ganze Reihe von Videohardware, darunter VGA, Super VGA und eine Reihe beschleunigter Grafikkarten. Linux enthält die komplette X-Software mit dem X-Server selbst, vielen Anwendungen und Utilities, den Programmbibliotheken sowie der Dokumentation.

Zu den Standardanwendungen für X gehören xterm (ein Terminalemulator, der für die meisten textbasierten Anwendungen innerhalb eines X-Fensters benutzt wird), xdm (der X-Session-Manager, der Logins handhabt), xclock (zeigt eine Uhr an), xman (ein Programm zum Lesen der Manpages unter X) und andere. Es gibt zu viele X-Anwendungen für Linux, um sie hier alle aufzuzählen, aber die Basisdistribution von XFree86 enthält alle »Standard«-Programme aus der originalen Distribution des MIT. Daneben sind viele andere X-Anwendungen separat erhältlich, und theoretisch sollte sich jedes für das X Window System geschriebene Programm ohne Probleme auch unter Linux kompilieren lassen.

Das Look-and-Feel von X wird weitgehend vom Window-Manager bestimmt. Dieses nette Programm erledigt die Anordnung der Fenster und ermöglicht es, sie in ihrer Größe anzupassen, sie als Icon darzustellen, sie zu verschieben sowie das Aussehen der Fensterrahmen zu bestimmen usw. Die Standarddistribution von XFree86 enthält twm, den klassischen Fenstermanager des MIT, obwohl es auch leistungsfähigere Manager (etwa den Open Look Virtual Window Manager olvwm) gibt. Ein Fenstermanager ist unter Linux-Benutzern besonders beliebt: fvwm2. Das ist ein kleiner Manager, der weniger als die Hälfte des Speichers beansprucht, den twm braucht. fvwm2 zeigt die Fenster dreidimensional an und stellt einen virtuellen Desktop bereit - wenn der Benutzer die Maus zum Rand des Bildschirms bewegt, verschiebt sich die Anzeige so, als ob die Arbeitsfläche in Wirklichkeit viel größer sei. fvwm2 ist in hohem Maße konfigurierbar, und alle Funktionen sind sowohl über die Tastatur als auch per Maus erreichbar. Viele Linux-Distributionen benutzen fvwm2 als Standard-Fenstermanager.

XFree86 enthält Programmbibliotheken und Include-Dateien für die ausgefuchsten Programmierer, die X-Anwendungen entwickeln möchten. Verschiedene Widget-Sets, wie zum Beispiel Athena, Open Look und Xaw3D, werden unterstützt. Sämtliche Standard-Fonts, Bitmaps, Manpages und jede Menge Dokumentation werden mitgeliefert. Auch PEX (eine Programmierschnittstelle für 3-D-Grafik) wird unterstützt, desgleichen Mesa, eine freie Implementierung des 3-D-Standards OpenGL.

Icon

Kapitel 10
Kapitel 11


In Kapitel 10, Das X Window System installieren,, und Kapitel 11, Die X Arbeitsoberfläche anpassen, werden wir besprechen, wie Sie das X Window System auf Ihrem Linux-System installieren und benutzen.
KDE und GNOME

KDE und GNOME sind zwei neue und bemerkenswerte Projekte, die in der Linux-Welt für viel Aufregung gesorgt haben. Beide Systeme haben die Absicht, eine vollständige, integrierte graphische Desktop-Umgebung bereitzustellen, die auf dem X Window System aufsetzt. Durch die Entwicklung einer leistungsfähigen Sammlung von Entwicklungswerkzeugen, Bibliotheken und Anwendungen, die in die Desktop-Umgebung integriert sind, wollen KDE und GNOME die nächste Ära der Linux-Desktops einläuten. Beide Systeme stellen eine reichhaltige graphische Benutzeroberfläche, Hilfsprogramme und Applikationen bereit, die mit den Features von Systemen wie dem Windows 98-Desktop mithalten oder diese sogar übertreffen können. KDE verfügt darüber hinaus über einen sehr leistungsfähigen, eigenen Window-Manager.

Mit KDE und GNOME können sich auch Gelegenheitsanwender gleich bei Linux wie zu Hause fühlen. Die meisten Distributionen konfigurieren bei der Installation automatisch eine dieser beiden Desktop-Umgebungen (üblicherweise KDE), wodurch es nicht mehr zwingend notwendig ist, überhaupt mit der Kommandozeile in Berührung zu kommen.

Zwar zielen sowohl KDE als auch GNOME darauf ab, Unix benutzerfreundlicher zu machen, aber die Schwerpunkte sind doch verschieden. Die Hauptziele von KDE sind einfache Benutzbarkeit, Stabilität und (optionale) Kompatibilität der Benutzeroberfläche mit anderen Umgebungen (wie etwa Windows 95). GNOMEs wichtigste Ziele sind dagegen gutes Aussehen und maximale Konfigurierbarkeit.
Die Vernetzung

Linux ist eines der leistungsfähigsten und robustesten Netzwerksysteme überhaupt - da ist es kein Wunder, daß immer mehr Leute feststellen, daß Linux eine exzellente Wahl für einen Server ist. Linux unterstützt die beiden wichtigsten Netzwerkprotokolle für Unix-Systeme: TCP/IP und UUCP. TCP/IP (Transmission Control Protocol/Internet Protocol, für die Fans von Akronymen) umfaßt eine Reihe von Vereinbarungen, die es Systemen überall auf der Welt ermöglichen, in einem einzigen Netzwerk namens Internet miteinander zu kommunizieren. Wenn Sie Linux, TCP/IP und einen Anschluß an dieses Netzwerk haben, können Sie mit Benutzern und Rechnern per elektronischer Post, Usenet-News, mittels Datenfernübertragung per FTP und auf andere Art und Weise kommunizieren.

Die meisten TCP/IP-Netze benutzen Ethernet als physikalisches Transportmedium. Linux unterstützt viele weitverbreitete Ethernet-Karten und -Interfaces für PCs und Laptops. Außerdem unterstützt Linux Fast Ethernet, Gigabit Ethernet, ATM, ISDN, drahtlose LAN-Adapter, Token Ring, Packet Radio und eine Reihe von besonders leistungsfähigen Netzwerkschnittstellen.

Weil aber nicht jedermann einen Ethernet-Anschluß zu Hause hat, unterstützt Linux auch SLIP und PPP, die einen Anschluß an das Internet via Modem ermöglichen. Um SLIP oder PPP zu benutzen, brauchen Sie Zugang zu einem Einwahl-Server, also einem Rechner, der eine direkte Verbindung zum Netz hat und der das Einwählen per Modem gestattet. Viele Unternehmen und Universitäten bieten solche Server an. Wenn zu Ihrem Linux-System eine direkte Ethernet-Verbindung und ein Modem gehören, können Sie es sogar als Einwahl-Server für andere Rechner konfigurieren.

Linux unterstützt eine große Anzahl von Webbrowsern (darunter Netscape Navigator und dessen freie Variante Mozilla sowie den textbasierten Browser Lynx). Mit einem Webbrowser und einem mit dem Internet verbundenen Linux-Rechner können Sie im Web surfen, E-Mail lesen und schreiben, chatten, News lesen und viele andere webbasierte Dienste nutzen.

Icon

Kapitel 16


Linux unterstützt darüber hinaus auch eine Reihe von Webservern (einschließlich des beliebten und freien Servers Apache). Es wird sogar angenommen, daß die Kombination Linux/Apache die am weitesten verbreitete Webserver-Plattform ist. Die Einrichtung und Verwendung von Apache ist einfach; wir zeigen Ihnen in Kapitel 16, Das World Wide Web und E-Mail, wie das geht.

Samba ist eine Software, mit der Linux-Rechner Datei- und Druckdienste für Windows-Rechner leisten können. NFS ermöglicht Ihrem System die gemeinsame Nutzung von Dateien mit anderen Rechnern in einem Netzwerk. FTP (File Transfer Protocol) ermöglicht den Austausch von Dateien mit einem anderen Rechner im Netz.

Es gibt eine ganze Reihe von Mail-Programmen und News-Readern für Linux. Dazu gehören Elm, Pine, rn, nn und tin. Egal, welche Programme Sie bevorzugen: Sie können Ihr Linux-System so konfigurieren, daß es weltweit elektronische Post und News versendet und empfängt.

Weitere Netzwerkfunktionalitäten sind unter anderem NNTP-basierte elektronische Nachrichtensysteme wie C News und INN, die Mail Transfer Agents sendmail, exim und smail; telnet, rlogin, ssh und rsh, mit denen Sie sich auf anderen Rechnern im Netzwerk einloggen und dort Befehle ausführen können, sowie finger, womit Sie Informationen über andere Internetbenutzer abfragen können. Es gibt massenweise TCP/IP-basierte Anwendungen und Protokolle.

Wenn Sie bereits auf anderen Unix-Systemen Erfahrungen mit TCP/IP-Anwendungen gemacht haben, werden Sie schnell mit Linux vertraut sein. Linux enthält ein Standard-Interface für die Programmierung von Sockets, so daß beinahe jedes Programm, das mit TCP/IP arbeitet, nach Linux portiert werden kann. Der X-Server von Linux unterstützt ebenfalls TCP/IP, so daß es möglich ist, Anwendungen auf Ihrem System darzustellen, die auf einem anderen System ablaufen. Die Administration der Netzwerkdienste von Linux wird all jenen, die Erfahrungen mit anderen Unix-Systemen haben, vertraut sein, denn die Werkzeuge zur Konfiguration und zur Überwachung ähneln denen aus der BSD-Umgebung.

Icon

Kapitel 15


In Kapitel 15, TCP/IP und PPP, werden wir die Konfiguration von TCP/IP, einschließlich SLIP, für Linux besprechen. Dort wird auch die Konfiguration von Mail-Software, Webbrowsern und Webservern behandelt.

UUCP (Unix to Unix Copy) ist eine etwas ältere Methode der Dateiübertragung. UUCP-Rechner sind untereinander per Modem und Telefonleitung verbunden, aber UUCP kann Daten auch über ein TCP/IP-Netz transportieren. Falls Sie keinen Zugang zu einem TCP/IP-Netz oder einem SLIP/PPP-Server finden, können Sie Ihr System so konfigurieren, daß es Dateien und elektronische Post via UUCP versendet und empfängt.
Telekommunikation und BBS-Software

Telekommunikationssoftware unter Linux ist der von Windows oder anderen Betriebssystemen sehr ähnlich. Jedem, der schon einmal ein Telekommunikationsprogramm benutzt hat, wird das entsprechende Programm unter Linux vertraut vorkommen. Wenn Sie ein Modem haben, sind Sie auch in der Lage, mit anderen Rechnern zu kommunizieren, indem Sie eines der Datenübertragungspakete für Linux einsetzen. Viele Leute benutzen Datenübertragungssoftware für den Zugriff auf Bulletin Board Systems (BBSs) und kommerzielle Dienste. Andere Leute setzen ihr Modem ein, um sich mit einem Rechner am Arbeitsplatz oder der Ausbildungsstätte zu verbinden. Mit einem Modem und Ihrem Linux-System können Sie sogar Faxe verschicken.

Icon

Anhang H


Eines der am weitesten verbreiteten DFÜ-Programme für Linux ist Seyon, eine X-Anwendung mit einer konfigurierbaren, ergonomisch gestalteten Bedienoberfläche und mit eingebauter Unterstützung für verschiedene Datenübertragungsprotokolle wie Kermit, ZModem usw. Andere Programme für die Datenfernübertragung sind C-Kermit, pcomm und minicom. Diese ähneln Datenübertragungsprogrammen, die man auf anderen Betriebssystemen findet, und sind sehr einfach zu benutzen. Zmodem für Linux wird in Anhang H, Zmodem-Dateiübertragung, besprochen.

Falls Sie keinen Zugang zu einem PPP-Server haben (siehe auch den vorherigen Abschnitt), können Sie term benutzen, um Ihre serielle Verbindung zu multiplexen. term läßt Sie über die Modemverbindung mehrfache Login-Sitzungen auf einem fremden Rechner öffnen. term ermöglicht außerdem über eine serielle Leitung das Umlenken von Verbindungen mit einem X-Client an Ihren lokalen X-Server, so daß Sie fremde X-Anwendungen auf Ihrem Linux-System darstellen können. Ein anderes Softwarepaket, KA9Q, implementiert ein ähnliches, SLIP-artiges Interface.

Falls Sie keinen Zugang zu einem TCP/IP-Netz oder einem UUCP-Rechner haben, können Sie unter Linux auch mit BBS-Netzen kommunizieren, wie etwa dem Fidonet, um elektronische Post und News über die Telefonleitung auszutauschen.
Die Zusammenarbeit mit Windows und MS-DOS

Es existieren verschiedene Utilities für den Zugriff auf die Welt von Windows 95, Windows 98 und MS-DOS. Die bekannteste Anwendung ist ein Projekt namens Wine - ein Windows-Emulator für das X Window System unter Linux. Das Ziel dieses Projekts, das sich noch in der Entwicklung befindet, ist es, Microsoft Windows-Applikationen direkt unter Linux ablaufen lassen zu können, wie es auch mit dem proprietären Windows-Emulator WABI von Sun Microsystems möglich ist. Wine befindet sich in ständiger Weiterentwicklung und kann bereits eine Vielzahl von Windows-Programmen ausführen, darunter viele Desktop-Applikationen und mehrere Spiele. Unter http://www.winehq.com können Sie die Fortschritte in der Entwicklung des Projekts verfolgen.

Linux stellt eine nahtlose Schnittstelle für die Übertragung von Dateien zwischen Linux und Windows zur Verfügung. Sie können eine Windows-Partition oder -Diskette unter Linux in Ihren Dateibaum einhängen und auf die Windows-Dateien wie auf alle anderen zugreifen. Außerdem gibt es das Paket mtools, das direkten Zugriff auf MS-DOS-formatierte Disketten ermöglicht, und das Paket htools, das das Äquivalent für Macintosh-Disketten ist.

Eine weitere Anwendung ist der MS-DOS-Emulator von Linux, der das Starten von DOS-Anwendungen aus Linux heraus ermöglicht. Obwohl Linux und DOS völlig verschiedene Betriebssysteme sind, gestattet es der Protected Mode der x86-CPUs bestimmten Tasks, sich wie Programme im 8086-Emulationsmodus zu verhalten, wie es auch DOS-Anwendungen tun.

Der MS-DOS-Emulator befindet sich noch in der Entwicklung, aber viele bekannte Anwendungen laufen bereits unter ihm. Es ist verständlich, daß solche DOS-Programme, die irgendwelche bizarren und esoterischen Möglichkeiten des Systems nutzen, wahrscheinlich keine Unterstützung finden werden, weil es sich nur um einen Emulator handelt. Sie würden zum Beispiel nicht erwarten, daß Programme, die die Möglichkeiten des Protected Mode nutzen (wie Microsoft Windows), im x86 Enhanced Mode laufen.

Zu den Anwendungen, die erfolgreich unter dem MS-DOS-Emulator von Linux laufen, gehören 4DOS (ein Befehls-Interpreter), Foxpro 2.0, Harvard Graphics, MathCad, Turbo Assembler, Turbo C/C++, Turbo Pascal, Microsoft Windows 3.0 (im real-Modus) und WordPerfect 5.1. Standard-DOS-Befehle und -Utilities (wie PKZIP usw.) arbeiten ebenfalls unter dem Emulator.

Der MS-DOS-Emulator ist hauptsächlich als eine spezielle Lösung für die gedacht, die MS-DOS nur für wenige Anwendungen brauchen, aber alles andere unter Linux erledigen. Der Emulator soll keine vollständige Implementierung von MS-DOS sein. Selbstverständlich können Sie MS-DOS und Linux auf demselben System installieren, wenn Sie mit dem Emulator nicht zufrieden sind (aber nicht zur gleichen Zeit benutzen). Mit dem Boot-Loader LILO können Sie beim Booten angeben, welches Betriebssystem hochgefahren werden soll. Linux kann auch mit anderen Betriebssystemen wie zum Beispiel OS/2 koexistieren.

Icon

Kapitel 12


Wir zeigen Ihnen im Abschnitt »DOS-Emulatoren: Dosemu und xdos« in Kapitel 12, Kompatibilität mit Windows und Samba, wie man den MS-DOS-Emulator benutzt, zusammen mit anderen Methoden, Linux und Windows zusammenzubringen.
Andere Anwendungen

Eine riesige Zahl von verschiedenen Anwendungen ist unter Linux verfügbar, wie man es von einem solchen zusammengewürfelten Betriebssystem erwarten würde. Linux wird im Augenblick überwiegend als Unix-System im privaten Bereich eingesetzt, aber das ändert sich schnell. Es erscheinen mehr geschäftliche und wissenschaftliche Anwendungen, und kommerzielle Anbieter fangen an, den Bestand an Software zu erweitern.

Zu den wissenschaftlichen Anwendungen gehören FELT (ein Programm zur Analyse finiter Elemente), gnuplot (ein Programm zum Plotten und zur Analyse von Daten), Octave (ein Paket für symbolische Mathematik, das MATLAB ähnlich ist), xspread (eine Tabellenkalkulation), xfractint (ein Programm zur Erzeugung von Fraktalen unter X), xlispstat (ein Statistikpaket) und einige andere. Weitere verfügbare Anwendungen sind Spice (für den Entwurf und die Entflechtung von Leiterplatten) und Khoros (ein Bildbearbeitungssystem).

Natürlich gibt es noch viel mehr solcher Anwendungen, die bereits nach Linux portiert worden sind oder aber portiert werden können. Egal, auf welchem Gebiet Sie arbeiten - es sollte kein Problem sein, Unix-Anwendungen nach Linux zu portieren. Linux stellt dafür eine komplette Unix-Programmierumgebung bereit, die als Basis für jegliche wissenschaftliche Anwendung ausreichen sollte.

Wie zu jedem Betriebssystem gehören auch zu Linux einige Spiele. Darunter sind klassische, textbasierte Abenteuerspiele wie Nethack und Moria; MUDs (MultiUser Dungeons, in denen viele Benutzer gemeinsam in ein textbasiertes Abenteuer verstrickt sind) wie DikuMUD und TinyMUD; eine Reihe von Spielen für das X Window System wie xtetris, netrek und Xboard (das X-Frontend von gnuchess). Das Interesse an graphisch aufwendigen Spielen unter Linux steigt, und iD Software hat Quake, Quake II, Quake III und Doom auf Linux portiert. Eine Reihe von anderen Herstellern von PC-Spielen stellt ebenfalls Linux-Versionen bereit, und viele von ihnen geben sogar zu, daß sie ihre Software fast ausschließlich unter Linux entwikkeln.

Für Audiophile bietet Linux Unterstützung einiger Soundkarten und damit zusammenhängender Software, zum Beispiel CDplayer (ein Programm, das Sie ein CD-ROM-Laufwerk wie einen herkömmlichen CD-Spieler bedienen läßt - hätten Sie's gedacht?), Sequenzer und Editoren für MIDI (mit denen Sie Musik komponieren können, die anschließend von Synthesizern oder anderen MIDI-Geräten abgespielt wird) sowie Editoren für digitalisierten Sound.

Sie können die gesuchte Anwendung nicht finden? Freshmeat, im WWW zu finden unter http://www.freshmeat.net , ist ein beliebtes Verzeichnis freier Software, die fast ausnahmslos unter Linux läuft. Dieses Verzeichnis ist zwar bei weitem nicht vollständig, enthält aber trotzdem sehr viel Software. Schauen Sie sich das allein schon deswegen an, um zu sehen, wieviel Code schon für Linux geschrieben worden ist.

Wenn Sie absolut nicht das finden, was Sie brauchen, können Sie immer noch versuchen, die Anwendung von einer anderen Plattform nach Linux zu portieren. Oder Sie können, wenn alle Stricke reißen, das Programm selbst schreiben. Das ist der Geist der Freien Software: Wenn Sie wollen, daß etwas richtig gemacht wird, machen Sie es doch selbst!
Fußnoten 1

Die Autoren verwenden ihre Linux-Systeme, um X-Anwendungen zu Hause zu entwickeln und zu testen. Diese Anwendungen können dann unmittelbar auf anderen Workstations übersetzt werden.

Keine Kommentare: