Wulf Alex, Gerhard Bernör: UNIX, C und
Internet. Springer-Verlag ,
Berlin, Heidelberg, New York usw., April 1999, ISBN
3-540-65429-1, XXIV + 646 Seiten, 25 Abbildungen, 155 mm breit,
235 mm hoch, 25 mm stark
Steht (stand?) im Lesesaal der Unibibliothek Karlsruhe unter
Informatik/Unix (inf 4.62), ebenso in der Freihandbücherei
unter Informatik (inf 4.62).
Inhaltsverzeichnis
Über den Umgang mit Computern
Was macht ein Computer?
Woraus besteht ein Computer?
Was muss man wissen?
Wie läuft eine Sitzung ab?
Wo schlägt man nach?
Warum verwendet man Computer (nicht)?
Hardware
Systembus
Prozessoren
Grundbegriffe
Zentralprozessoren
Koprozessoren
Speicher
Grundbegriffe
Arbeitsspeicher
ROM und RAM
Puffer und Caches
Massenspeicher
Lochstreifen, Lochkarten
Disketten
Magnetische Platten
Magnetbänder
Optische Platten
Flash-Speicher
Speicherkarten
Schnittstellen
Grundbegriffe
Serielle Schnittstellen
Parallele Schnittstelle
20 mA Current Loop
Small Computer Systems Interface (SCSI)
Universal Serial Bus (USB)
High Performance Serial Bus IEEE 1394
(Firewire)
Terminals
Grundbegriffe
Bildschirme
Alphanumerische Bildschirme
Grafische Bildschirme
Farb-Bildschirme
Flachbildschirme
Projektoren
Tastaturen
Mäuse und Bälle
Mikrofon, Lautsprecher
X-Terminals
Drucker
Grundbegriffe
Nadeldrucker
Tintendrucker
Laserdrucker
Grafische Geräte
Plotter
Digitalisiertabletts
Scanner
Digitale Kameras
Akustische Geräte
Sensoren -- Aktoren
Datenübertragung
Grundbegriffe
Direkte Verbindung (Nullmodem)
Akustikkoppler
Modems
ISDN
Netze
Stromversorgung und Kühlung
Erdung
Computerarten
Heim-Computer
Personal Computer (PCs)
Workstations
Mehrbenutzer-Systeme und Mainframes
Echtzeit-Systeme
Parallelcomputer
Verteilte Computer
Analogrechner
Geschwindigkeit
UNIX
Grundbegriffe
Braucht man ein Betriebssystem?
Verwaltung der Betriebsmittel
Verwaltung der Daten
Einteilung der Betriebssysteme
Laden des Betriebssystems
Das Besondere an UNIX
Die präunicische Zeit
Entstehung
Vor- und Nachteile
UNIX-Philosophie
Aufbau
Daten in Bewegung: Prozesse
Was ist ein Prozess?
Prozesserzeugung (exec, fork)
Selbständige Prozesse (nohup)
Priorität (nice)
Dämonen
Was ist ein Dämon?
Dämon mit Uhr (cron)
Line Printer Scheduler (lpsched)
Internet-Dämon (inetd)
Mail-Dämon (sendmail)
Interprozess-Kommunikation (IPC)
IPC mittels Files
Pipes
Named Pipe (FIFO)
Signale (kill, trap)
Nachrichtenschlangen
Semaphore
Gemeinsamer Speicher
Sockets
Streams
Memo Prozesse
Übung Prozesse
Daten in Ruhe: Files
Filearten
File-System -- Sicht von unten
File-System -- Sicht von oben
Zugriffsrechte
Set-User-ID-Bit
Zeitstempel
Inodes und Links
stdin, stdout, stderr
Schreiben und Lesen von Files
Archivierer (tar, gtar)
Packer (compress, gzip)
Weitere Kommandos
Memo Files
Übung Files
Shells
Gesprächspartner
Kommandointerpreter
Umgebung
Umlenkung
Shellscripts
Noch eine Scriptsprache: Perl
Memo Shells
Übung Shells
Benutzeroberflächen
Lokale Benutzeroberflächen
Kommandozeilen-Eingabe
Menüs
Zeichen-Fenster, curses
Grafische Fenster
Multimediale Oberflächen
Software für Behinderte
X Window System (X11)
Zweck
OSF/Motif
Memo Oberflächen, X Window System
Übung Oberflächen, X Window System
Writer's Workbench
Zeichensätze und Fonts (oder die
Umlaut-Frage)
Reguläre Ausdrücke
Editoren (ed, ex, vi, elvis, vim)
Universalgenie (emacs)
Joe's Own Editor (joe)
Stream-Editor (sed)
Listenbearbeitung (awk)
Verschlüsseln (crypt)
Aufgaben der Verschlüsselung
Symmetrische Verfahren
Unsymmetrische Verfahren
Angriffe
Formatierer (nroff, LaTeX)
Inhalt, Struktur und Aufmachung
Ein einfacher Formatierer (adjust)
UNIX-Formatierer (nroff, troff)
LaTeX
Hypertext
Was ist Hypertext?
Hypertext Markup Language (HTML)
Computer Aided Writing
Weitere Werkzeuge (grep, diff, sort usw.)
Textfiles aus anderen Welten (DOS, Mac)
Druckerausgabe (lp, lpr)
Memo Writer's Workbench
Übung Writer's Workbench
Programmer's Workbench
Nochmals die Editoren
Compiler und Linker (cc, ccom, ld)
Unentbehrlich (make)
Debugger (xdb)
Profiler (time, gprof)
Bibliotheken, Archive (ar)
Weitere Werkzeuge
Programmverwaltung mit SCCS, RCS und CVS
Memo Programmer's Workbench
Übung Programmer's Workbench
L'atelier graphique
Grundbegriffe
Diagramme (gnuplot)
Zeichnungen und Bilder (xfig, xpaint, gimp)
Graphical Kernel System, OpenGL
Memo Grafik
Übung Grafik
Kommunikation
Message (write, talk)
Mail (mail, mailx, elm)
Neuigkeiten (news)
Message of the Day
Ehrwürdig: UUCP
Memo Kommunikation
Übung Kommunikation
Systemaufrufe
Was sind Systemaufrufe?
Beispiel Systemzeit (time)
Beispiel File-Informationen (access, stat,
open)
Memo Systemaufrufe
Übung Systemaufrufe
Systemverwaltung
Systemgenerierung und -update
Systemstart und -stop
Benutzerverwaltung
Geräteverwaltung
Gerätefiles
Terminals
Platten, File-Systeme
Drucker
Einrichten von Dämonen
Weitere Dienstleistungen
Accounting System
Sicherheit
Betriebssicherheit
Datensicherheit
Störungen und Fehler
Memo Systemverwaltung
Übung Systemverwaltung
Echtzeit-Erweiterungen
GNU is not UNIX
UNIX auf PCs
AT+T UNIX
MINIX
LINUX
Entstehung
Eigenschaften
Distributionen
Installation
GNU und LINUX
XFree - X11 für LINUX
K Desktop Environment (KDE)
Dokumentation
Installations-Beispiel
386BSD, NetBSD, FreeBSD ...
MKS-Tools und andere
Exkurs über Informationen
Programmieren in C/C++
Grundbegriffe
Warum braucht man Programmiersprachen?
Sprachenfamilien
Imperative Programmiersprachen
Objektorientierte Programmiersprachen
Interpreter - Compiler - Linker
Qualität und Stil
Programmiertechnik
Aufgabenanalyse und Entwurf
Aufgabenstellung
Zerlegen in Teilaufgaben
Zusammensetzen aus Teilaufgaben
Prototyping
Flußdiagramme
Memo Grundbegriffe
Übung Grundbegriffe
Bausteine eines Quelltextes
Übersicht
Syntax-Diagramme
Kommentar
Namen
Schlüsselwörter
Operanden
Konstanten und Variable
Typen - Grundbegriffe
Einfache Typen
Zusammengesetzte Typen (Arrays,
Strukturen)
Union
Aufzählungstypen
Pointer (Zeiger)
Weitere Namen für Typen (typedef)
Speicherklassen
Geltungsbereich
Lebensdauer
Operationen
Ausdrücke
Zuweisung
Arithmetische Operationen
Logische Operationen
Vergleiche
Bitoperationen
Pointeroperationen
Ein- und Ausgabe-Operationen
Sonstige Operationen
Vorrangregeln
Anweisungen
Leere Anweisung
Ausdruck als Anweisung
Kontrollstrukturen
Rückgabewert
Memo Bausteine
Übung Bausteine
Funktionen
Aufbau und Deklaration
Pointer auf Funktionen
Parameterübergabe
Kommandozeilenargumente, main()
Funktionen mit wechselnder Argumentanzahl
Iterativer Aufruf einer Funktion
Rekursiver Aufruf einer Funktion
Assemblerroutinen
Memo Funktionen
Übung Funktionen
Funktions-Bibliotheken
Zweck und Aufbau
Standardbibliothek
Übersicht
Standard-C-Bibliothek
Standard-Mathematik-Bibliothek
Standard-Grafik-Bibliothek
Weitere Teile der Standardbibliothek
Xlib, Xt und Xm (X Window System)
NAG-Bibliothek
Eigene Bibliotheken
Speichermodelle (MS-DOS)
Memo Bibliotheken
Übung Bibliotheken
Klassen
Warum C mit Klassen?
Datenabstraktion, Klassenbegriff
Klassenhierarchie, abstrakte Klassen,
Vererbung
Memo Klassen
Übung Klassen
Klassen-Bibliotheken
Standard Template Library (STL)
C-XSC
X11-Programmierung mit dem Qt-Toolkit
Überladen von Operatoren
Präprozessor
define-Anweisungen
include-Anweisungen
Bedingte Kompilation (#ifdef)
Memo Präprozessor
Übung Präprozessor
Dokumentation
Weitere C-Programme
Name
Aufbau
Fehlersuche
Optimierung
curses - Fluch oder Segen?
Ein Herz für Pointer
Nullpointer
Pointer auf Typ void
Arrays und Pointer
Arrays von Funktionspointern
Dynamische Speicherverwaltung (malloc)
X Window System
Obfuscated C
Portieren von Programmen
Regeln
Übertragen von ALGOL nach C
Übertragen von FORTRAN nach C
Exkurs über Algorithmen
Internet
Grundbegriffe
Schichtenmodell
Entstehung
Protokolle (TCP/IP)
Adressen und Namen, Name-Server (DNS)
BelWue
Netzdienste im Überblick
Terminal-Emulatoren (telnet, rlogin, ssh)
File-Transfer (kermit, ftp, fsp)
Anonymous-FTP
Electronic Mail
Grundbegriffe
Mailing-Listen
Privat und authentisch (PGP, PEM)
Neuigkeiten (Usenet, Netnews)
Netzgeschwätz (irc)
Suchhilfen: Archie, Gopher, WAIS
WWW - das World Wide Web
Ein Gewebe aus Hyperdokumenten
Forms und cgi-Scripts
Java, Applets
Cookies
Suchmaschinen
Die eigene Startseite
Navigationshilfen (nslookup, whois, finger)
Die Zeit im Netz (ntp)
Aufgabe
UTC - Universal Time Coordinated
Einrichtung
Informationsrecherche
Informationsquellen
Fakten-Datenbanken
Literatur-Datenbanken
Retrieval-Sprache
Beispiel MATHDI auf STN
Einige technische Datenbanken
Memo Internet
Übung Internet
Computerrecht
Einführung
Zivilrecht
Electronic Commerce
Elektronischer Vertragsschluß
Gewährleistung und Garantie
Allgemeine Geschäftsbedingungen
Widerrufsrechte
Pseudonymer Vertragsschluß
Urheberrecht
Voraussetzungen des Schutzes
Inhalt des Schutzes
Datenbanken
Entstehung des Urheberrechtes
Internationales Urheberrecht, Copyright
Public Domain und Open Source
Folgen von Rechtsverletzungen
Datenschutz
Strafrecht
Ausspähen von Daten
Datenveränderung
Computersabotage
Computerbetrug
Fälschung beweiserheblicher Daten
Öffentliche Aufforderung zu
Straftaten
Verbreitung pornographischer Schriften
Verantwortlichkeit des Providers
Anhang
Zahlensysteme
Zeichensätze
EBCDIC, ASCII, Roman8, IBM-PC
German-ASCII
ASCII-Steuerzeichen
Latin-1 (ISO 8859-1)
Latin-2 (ISO 8859-2)
HTML-Entities
Papier- und Schriftgrößen
Die wichtigsten UNIX-Kommandos
Vergleich UNIX-MS-DOS-Kommandos
Besondere UNIX-Kommandos
printf(3), scanf(3)
vi(1)
emacs(1)
joe(1)
ftp(1)
UNIX-Systemaufrufe
UNIX-Signale
C/C++-Lexikon
Schlüsselwörter
Standardfunktionen
Include-Files
Präprozessor-Anweisungen
Slang im Netz
Beispiele LaTeX
Erste Hilfe im Quelltext
GelateXte Formeln
Formeln in Quelltext
Modem-Kommandos (Hayes)
ISO 3166 Ländercodes
Request For Comments (RFCs)
Ausgewählte RFCs
Alle FYIs
Internet-Protokolle
Zeittafel
Zum Weiterlesen
Sach- und Namensverzeichnis
Besprechung
Die folgenden Zeilen stammen von einem der
intimsten Kenner des Textes und sind daher subjektiv
gefärbt. Das Buch wendet sich an Studenten der
Anfangssemester technischer oder naturwissenschaftlicher
Richtungen der Hoch- und Fachhochschulen, die in ihrem Studium
zum ersten Mal von der vollen Wucht der modernen
Datenverarbeitung getroffen werden und erkennen, daß
außer MS-Windows und BASIC auch noch andere Welten
existieren. Zwar gibt es zentnerweise Bücher über UNIX,
C/C++ und das Internet, dieses Buch versucht jedoch, auf einer
noch tragbaren Seitenzahl (im Bett lesbar) so viel von den drei
miteinander verbundenen Themen zu bringen, daß der Leser
einen Überblick gewinnt, mit der Praxis beginnen kann und
weiß, wie und wo er seine Kenntnisse vertiefen kann. Es ist
stellenweise ein Rundumschlag in der Informatik, der auch einige
Nachbargebiete wie Jura, Geschichte, Literaturwissenschaft, alte
und neue Sprachen, Medizin und Philosophie nicht unberührt
läßt. Ihre ungeheure Belesenheit dokumentieren die
Verfasser mit Zitaten aus dem Lateinischen, Althochdeutschen,
Mittelenglischen, der Bibel und dem New Hacker's Dictionary.
Für Leser, die konzentrierte Trockennahrung bevorzugen, gibt
es ausreichend andere Bücher auf dem Markt.
Die Autoren haben sich zum Ziel gesetzt, jeden Fachbegriff
zumindest kurz zu erklären - eine Erfahrung aus vielen
Vorlesungsstunden. Das Buch enthält daher fünfzig
Seiten über Hardware, wo Begriffe wie Arbeitsspeicher,
Massenspeicher, Terminal, USB, Modem, Workstation und
Analogrechner erläutert werden. Ebenso enthält das Buch
fünfundzwanzig Seiten über Computerrecht, denn wenn man
die Begriffe Public Domain und Copyright gebraucht, sollte man
sie für den angesprochenen Kreis juristischer Laien auch
verständlich darlegen. Die Verfasser haben nicht die
UNIX-Handbücher abgeschrieben, sondern verweisen
hinsichtlich der Einzelheiten der UNIX-Kommandos auf die man
pages bzw. die papiernen Reference Manuals und sparen so viele
Seiten. Bei dieser Breite der Themen darf man nicht erwarten, auf
jede Frage eine ausführliche Antwort oder ein Rezept zum
Abtippen zu erhalten. Allein das Thema "UNIX" wird beispielsweise
in dem Buch von J. Gulbins und K. Obermayr - ebenfalls bei
Springer - auf 800 Seiten behandelt, ein bekanntes Buch nur
über den UNIX-Dämon sendmail beansprucht 1000
Seiten, ein beliebter C++-Primer umfaßt satte 1300 Seiten.
Die vollständige Beschreibung des X Window Systems
füllt Regalmeter. Aber bei den ersten Schritten ist das Buch
ein hilfreicher Begleiter.
Dem pädagogischen Zweck dienen auch gelegentliche Hinweise
auf verbreitete Denkfehler oder -fallen: der Unterschied zwischen
einer Kopie und einem Link, zwischen einer Pipe und einer
Umlenkung, zwischen einer bitweisen und einer ausdrucksweisen
Operation werden deutlich herausgehoben. Die Umlautfrage wird
eingehend behandelt, weil sie immer wieder im Netz auftaucht.
Übungen gibt es natürlich auch. Das
dreißigseitige Sach- und Namensverzeichnis zeugt von dem
Fleiß der Verfasser, denn das erstellt LaTeX nicht ganz
automatisch.
Obwohl das Buch den Anspruch erhebt, UNIX unabhängig von
einem bestimmten Hersteller zu beschreiben, ist eine Ausrichtung
auf die Hard- und Software von Hewlett-Packard sowie auf LINUX
nicht zu übersehen. Die Karlsruher Verhältnisse
(Internet-Adressen u. a.) werden etwas stärker
berücksichtigt als der Rest der Welt. Hier muß der
Leser seinen eigenen Daten ergänzen; das geht nicht anders.
Eine gewisse Ungleichmäßigkeit bei der Behandlung der
Themen fällt auf. Während einige
(Parameterübergabe, Umlaute) nahezu erschöpfend
dargestellt werden, wünscht man sich bei anderen (Grafik,
Sound, X11, emacs, UUCP, C++-Bibliotheken) mehr Substanz. Die
Überschriften einiger - nicht allzu vieler - Abschnitte
scheinen eher Platzhalter für künftige Erweiterungen zu
sein. Daß die C-Funktionen printf() und scanf() im Anhang
unter die UNIX-Kommandos gerutscht sind, deutet zwar auf eine
globale Sichtweise hin, sollte aber im Interesse des korrekten
Ausdrucks vermieden werden. Als Hauptschuldiger gelobe ich
Besserung, so weit es Familie, Beruf, Verein usw. erlauben. Ob
das Buch praxisnah und verständlich geschrieben ist, ob der
schwierige Kompromiss zwischen Breite und Tiefe gelungen ist, ob
die Beispiele nach Anzahl, Länge und Qualität
ausreichen, wage ich nicht zu beurteilen. Für Anregungen bin
ich immer dankbar und aufgeschlossen. Falls Ihnen die vielen
Zitate in dem Buch auf den Chip gehen, darf ich Bertolt Brecht
zitieren (Geschichten vom Herrn Keuner): Der chinesische
Philosoph Dschuang Dsi verfaßte noch im Mannesalter ein
Buch von hunderttausend Wörtern, das zu neun Zehnteln aus
Zitaten bestand. Aber wer liest schon Dschuang Dsi?
Dem Verlag ist es gelungen, die Fülle des Stoffes in einem
erstaunlich kompakten Band unterzubringen. Dank dünnen
Papiers und guter Ausnutzung des Seitenformates enthalten die
zwei Pfund mehr Stoff als manches schwerere Werk. Zu dem Buch
gehören Programmbeispiele, die im Netz per Anonymous FTP zur
Verfügung stehen, eine Alternative zu beigelegten Disketten
oder CD-ROMS.
Sehbehinderte oder blinde Interessenten werden gebeten, sich mit
dem erstgenannten Autor in Verbindung zu setzen. Es gibt
Versuche, den Text auch diesem Kreis zugänglich zu machen
(Großschrift, ASCII-Text für Leseprogramme
(Screenreader)).
Il y a tant de gens dons c'est le gagne-pain de penser, de nos
jours, que ce petit livre refermé et oublié, les
occasions d'être profond ne vous manqueront certainement
pas.