ISBN: 3-540-65429-1
TITLE: UNIX, C und Internet
AUTHOR: Alex, Wulf; Bernr, Gerhard
TOC:

1 ber den Umgang mit Computern 1
1.1 Was macht ein Computer? 1
1.2 Woraus besteht ein Computer? 4
1.3 Was mu man wissen? 5
1.4 Wie luft eine Sitzung ab? 9
1.5 Wo schlgt man nach? 11
1.6 Warum verwendet man Computer (nicht)? 12
2 Hardware 15
2.1 Systembus 15
2.2 Prozessoren 16
2.2.1 Grundbegriffe 16
2.2.2 Zentralprozessoren 17
2.2.2.1 Einzelprozessoren 17
2.2.2.2 Parallelprozessoren 18
2.2.3 Koprozessoren 18
2.2.3.1 Arithmetikprozessoren, Gleitkommadarstellung 18
2.2.3.2 Grafikprozessoren, Signalprozessoren 21
2.3 Speicher 21
2.3.1 Grundbegriffe 21
2.3.2 Arbeitsspeicher 22
2.3.2.1 ROM und RAM 22
2.3.2.2 Puffer und Caches 22
2.3.3 Massenspeicher 23
2.3.3.1 Lochstreifen, Lochkarten 23
2.3.3.2 Disketten 23
2.3.3.3 Magnetische Platten 24
2.3.3.4 Magnetbnder 26
2.3.3.5 Optische Platten 27
2.3.3.6 Flash-Speicher 28
2.3.3.7 Speicherkarten 28
2.4 Schnittstellen 28
2.4.1 Grundbegriffe 28
2.4.2 Serielle Schnittstellen V.24/RS 232, RS 422, RS 485 29
2.4.3 Parallele Schnittstelle (Centronics, IEEE 1284) 29
2.4.4 20 mA Current Loop 30
2.4.5 Small Computer Systems Interface (SCSI) 30
2.4.5.1 Was ist SCSI? 30
2.4.5.2 SCSI-1. 31
2.4.5.3 SCSI-2, Fast SCSI 31
2.4.5.4 Wide-SCSI 31
2.4.5.5 Ultra-SCSI, Fast-20 31
2.4.5.6 Differential SCSI 32
2.4.5.7 Ultra2-SCSI 32
2.4.5.8 SCSI-3. 32
2.4.5.9 Synchroner und asynchroner Datentransfer 32
2.4.6 Universal Serial Bus (USB) 32
2.4.7 High Performance Serial Bus IEEE 1394, Firewire 33
2.5 Terminals 33
2.5.1 Grundbegriffe 33
2.5.2 Bildschirme 33
2.5.2.1 Alphanumerische Bildschirme 35
2.5.2.2 Grafische Bildschirme 35
2.5.2.3 Farb-Bildschirme 35
2.5.2.4 Flachbildschirme 36
2.5.2.5 Projektoren 36
2.5.3 Tastaturen 36
2.5.4 Muse und Blle 37
2.5.5 Mikrofon, Lautsprecher 38
2.5.6 X-Terminals 38
2.6 Drucker 39
2.6.1 Grundbegriffe 39
2.6.2 Nadeldrucker 39
2.6.3 Tintendrucker 40
2.6.4 Laserdrucker 40
2.7 Grafische Gerte 41
2.7.1 Plotter 41
2.7.2 Digitalisiertabletts 41
2.7.3 Scanner 41
2.7.4 Digitale Kameras 42
2.8 Akustische Gerte 42
2.9 Sensoren - Aktoren 42
2.10 Datenbertragung 43
2.10.1 Grundbegriffe 43
2.10.2 Direkte Verbindung (Nullmodem) 44
2.10.3 Akustikkoppler 45
2.10.4 Modems 45
2.10.5 ISDN 46
2.11 Netze 46
2.12 Stromversorgung und Khlung 53
2.13 Erdung 55
2.14 Computerarten 56
2.14.1 Heim-Computer 56
2.14.2 Personal Computer (PCs) 56
2.14.3 Workstations 57
2.14.4 Mehrbenutzer-Systeme und Mainframes 58
2.14.5 Echtzeit-Systeme 58
2.14.6 Parallelcomputer 59
2.14.7 Verteilte Computer 59
2.14.8 Analogrechner 59
2.15 Geschwindigkeit 60
3 UNIX 61
3.1 Grundbegriffe 61
3.1.1 Braucht man ein Betriebssystem? 61
3.1.2 Verwaltung der Betriebsmittel 62
3.1.3 Verwaltung der Daten 64
3.1.4 Einteilung der Betriebssysteme 64
3.1.5 Laden des Betriebssystems 66
3.2 Das Besondere an UNIX 67
3.2.1 Die prunicische Zeit 67
3.2.2 Entstehung 67
3.2.3 Vor- und Nachteile 71
3.2.4 UNIX-Philosophie 72
3.2.5 Aufbau 72
3.3 Daten in Bewegung: Prozesse 74
3.3.1 Was ist ein Prozess? 74
3.3.2 Prozesserzeugung (exec, fork) 76
3.3.3 Selbstndige Prozesse (nohup) 77
3.3.4 Prioritt (nice) 78
3.3.5 Dmonen 79
3.3.5.1 Was ist ein Dmon? 79
3.3.5.2 Dmon mit Uhr (cron) 79
3.3.5.3 Line Printer Scheduler (lpsched) 80
3.3.5.4 Internet-Dmon (inetd) 80
3.3.5.5 Mail-Dmon (sendmail) 80
3.3.6 Interprozess-Kommunikation (IPC) 81
3.3.6.1 IPC mittels Files 81
3.3.6.2 Pipes 81
3.3.6.3 Named Pipe (FIFO) 82
3.3.6.4 Signale (kill, trap) 82
3.3.6.5 Nachrichtenschlangen 84
3.3.6.6 Semaphore 84
3.3.6.7 Gemeinsamer Speicher 84
3.3.6.8 Sockets 84
3.3.6.9 Streams 85
3.3.7 Memo Prozesse 85
3.3.8 bung Prozesse 85
3.4 Daten in Ruhe: Files 87
3.4.1 Filearten 87
3.4.2 File-System - Sicht von unten 88
3.4.3 File-System - Sicht von oben 89
3.4.4 Zugriffsrechte 94
3.4.5 Set-User-ID-Bit 96
3.4.6 Zeitstempel 97
3.4.7 Inodes und Links 99
3.4.8 stdin, stdout, stderr 101
3.4.9 Schreiben und Lesen von Files 102
3.4.10 Archivierer (tar, gtar) 103
3.4.11 Packer (compress, gzip) 104
3.4.12 Weitere Kommandos 104
3.4.13 Memo Files 108
3.4.14 bung Files 109
3.5 Shells 110
3.5.1 Gesprchspartner 110
3.5.1.1 Kommandointerpreter 110
3.5.1.2 Umgebung 115
3.5.1.3 Umlenkung 119
3.5.2 Shellscripts 120
3.5.3 Noch eine Scriptsprache: Perl 131
3.5.4 Memo Shells 133
3.5.5 bung Shells 134
3.6 Benutzeroberflchen 135
3.6.1 Lokale Benutzeroberflchen 135
3.6.1.1 Kommandozeilen-Eingabe 135
3.6.1.2 Mens 135
3.6.1.3 Zeichen-Fenster, curses 136
3.6.1.4 Grafische Fenster 137
3.6.1.5 Multimediale Oberflchen 138
3.6.1.6 Software fr Behinderte 138
3.6.2 X Window System (X11) 140
3.6.2.1 Zweck 140
3.6.2.2 OSF/Motif 142
3.6.3 Memo Oberflchen, X Window System 145
3.6.4 bung Oberflchen, X Window System 145
3.7 Writer's Workbench 147
3.7.1 Zeichenstze und Fonts (oder die Umlaut-Frage) 147
3.7.1.1 Zeichenstze 147
3.7.1.2 Fonts, Orientierung 150
3.7.2 Regulre Ausdrcke 152
3.7.3 Editoren (ed, ex, vi, elvis, vim) 155
3.7.4 Universalgenie (emacs) 159
3.7.4.1 Einrichtung 159
3.7.4.2 Benutzung 160
3.7.5 Joe's Own Editor (joe) 160
3.7.6 Stream-Editor (sed) 160
3.7.7 Listenbearbeitung (awk) 162
3.7.8 Verschlsseln (crypt) 164
3.7.8.1 Aufgaben der Verschlsselung 164
3.7.8.2 Symmetrische Verfahren 164
3.7.8.3 Unsymmetrische Verfahren 165
3.7.8.4 Angriffe 167
3.7.9 Formatierer (nroff, LaTeX) 168
3.7.9.1 Inhalt, Struktur und Aufmachung 168
3.7.9.2 Ein einfacher Formatierer (adjust) 168
3.7.9.3 UNIX-Formatierer (nroff, troff) 169
3.7.9.4 LaTeX 170
3.7.10 Hypertext 177
3.7.10.1 Was ist Hypertext? 177
3.7.10.2 Hypertext Markup Language (HTML) 177
3.7.11 Computer Aided Writing 179
3.7.12 Weitere Werkzeuge (grep, diff, sort usw.) 180
3.7.13 Textfiles aus anderen Welten (DOS, Mac) 183
3.7.14 Druckerausgabe (lp, lpr) 184
3.7.15 Memo Writer's Workbench 187
3.7.16 bung Writer's Workbench 188
3.8 Programmer's Workbench 188
3.8.1 Nochmals die Editoren 189
3.8.2 Compiler und Linker (cc, ccom, ld) 189
3.8.3 Unentbehrlich (make) 191
3.8.4 Debugger (xdb) 193
3.8.5 Profiler (time, gprof) 195
3.8.6 Archive, Bibliotheken (ar) 196
3.8.7 Weitere Werkzeuge 199
3.8.8 Versionsverwaltung mit RCS, SCCS und CVS 200
3.8.9 Memo Programmer's Workbench 206
3.8.10 bung Programmer's Workbench 206
3.9 L'atelier graphique 210
3.9.1 Grundbegriffe 216
3.9.2 Diagramme (gnuplot) 212
3.9.3 Zeichnungen und Bilder (xfig, xpaint, gimp) 214
3.9.4 Graphical Kernel System, OpenGL 215
3.9.5 Memo Grafik 216
3.9.6 bung Grafik 216
3.10 Kommunikation 216
3.10.1 Message (write, talk) 216
3.10.2 Mail (mail, mailx, elm) 217
3.10.3 Neuigkeiten (news) 219
3.10.4 Message of the Day 219
3.10.5 Ehrwrdig: UUCP 219
3.10.6 Memo Kommunikation 220
3.10.7 bung Kommunikation 220
3.11 Systemaufrufe 221
3.11.1 Was sind Systemaufrufe? 221
3.11.2 Beispiel Systemzeit (time) 222
3.11.3 Beispiel File-Informationen (access, stat, 
open)226
3.11.4 Memo Systemaufrufe 231
3.11.5 bung Systemaufrufe 231
3.12 Systemverwaltung 231
3.12.1 Systemgenerierung und -update 232
3.12.2 Systemstart und -stop 234
3.12.3 Benutzerverwaltung 235
3.12.4 Gerteverwaltung 237
3.12.4.1 Gertefiles 237
3.12.4.2 Terminals 237
3.12.4.3 Platten, File-Systeme 240
3.12.4.4 Drucker 243
3.12.5 Einrichten von Dmonen 244
3.12.6 Weitere Dienstleistungen 246
3.12.7 Accounting System 246
3.12.8 Sicherheit 247
3.12.8.1 Betriebssicherheit 247
3.12.8.2 Datensicherheit 248
3.12.9 Strungen und Fehler 256
3.12.10 Memo Systemverwaltung 258
3.12.11 bung Systemverwaltung 258
3.13 Echtzeit-Erweiterungen 259
3.14 GNU is not UNIX 260
3.15 UNIX auf PCs 262
3.15.1 AMT UNIX 262
3.15.2 MINIX 263
3.15.3 LINUX 264
3.15.3.1 Entstehung 264
3.15.3.2 Eigenschaften 264
3.15.3.3 Distributionen 266
3.15.3.4 Installation 267
3.15.3.5 GNU und LINUX 268
3.15.3.6 XFree - X11 fr LINUX 269
3.15.3.7 K Desktop Environment (KDE) 269
3.15.3.8 Dokumentation 270
3.15.3.9 Installations-Beispiel 271
3.15.4 386BSD, NetBSD, FreeBSD 272
3.15.5 MKS-Tools und andere 272
3.16 Exkurs ber Informationen 274
4 Programmieren in C/C++ 279
4.1 Grundbegriffe 279
4.1.1 Warum braucht man Programmiersprachen? 279
4.1.2 Sprachenfamilien 282
4.1.3 Imperative Programmiersprachen 284
4.1.4 Objektorientierte Programmiersprachen 287
4.1.5 Interpreter - Compiler - Linker 288
4.1.6 Qualitt und Stil 290
4.1.7 Programmiertechnik 292
4.1.8 Aufgabenanalyse und Entwurf 293
4.1.8.1 Aufgabenstellung 293
4.1.8.2 Zerlegen in Teilaufgaben 294
4.1.8.3 Zusammensetzen aus Teilaufgaben 294
4.1.9 Prototyping 295
4.1.10 Fludiagramme 295
4.1.11 Memo Grundbegriffe 296
4.1.12 bung Grundbegriffe 297
4.2 Bausteine eines Quelltextes 298
4.2.1 bersicht 298
4.2.2 Syntax-Diagramme 298
4.2.3 Kommentar 299
4.2.4 Namen 300
4.2.5 Schlsselwrter 300
4.2.6 Operanden 301
4.2.6.1 Konstanten und Variable 302
4.2.6.2 Typen - Grundbegriffe 302
4.2.6.3 Einfache Typen 303
4.2.6.4 Zusammengesetzte Typen (Arrays, Strukturen) 305
4.2.6.5 Union 307
4.2.6.6 Aufzhlungstypen 307
4.2.6.7 Pointer (Zeiger) 308
4.2.6.8 Weitere Namen fr Typen (typedef) 312
4.2.6.9 Speicherklassen 313
4.2.6.10 Geltungsbereich 314
4.2.6.11 Lebensdauer 315
4.2.7 Operationen 315
4.2.7.1 Ausdrcke 315
4.2.7.2 Zuweisung 315
4.2.7.3 Arithmetische Operationen 316
4.2.7.4 Logische Operationen 317
4.2.7.5 Vergleiche 319
4.2.7.6 Bitoperationen 320
4.2.7.7 Pointeroperationen 321
4.2.7.8 Ein- und Ausgabe-Operationen 321
4.2.7.9 Sonstige Operationen 321
4.2.7.10 Vorrangregeln 322
4.2.8 Anweisungen 323
4.2.8.1 Leere Anweisung 323
4.2.8.2 Ausdruck als Anweisung 323
4.2.8.3 Kontrollstrukturen 324
4.2.8.4 Rckgabewert 329
4.2.9 Memo Bausteine 331
4.2.10 bung Bausteine 332
4.3 Funktionen 333
4.3.1 Aufbau und Deklaration 333
4.3.2 Pointer auf Funktionen 334
4.3.3 Parameterbergabe 334
4.3.4 Kommandozeilenargumente, main() 345
4.3.5 Funktionen mit wechselnder Argumentanzahl 346
4.3.6 Iterativer Aufruf einer Funktion 350
4.3.7 Rekursiver Aufruf einer Funktion 351
4.3.8 Assemblerroutinen 353
4.3.9 Memo Funktionen 359
4.3.10 bung Funktionen 359
4.4 Funktions-Bibliotheken 359
4.4.1 Zweck und Aufbau 359
4.4.2 Standardbibliothek 360
4.4.2.1 bersicht 360
4.4.2.2 Standard-C-Bibliothek 361
4.4.2.3 Standard-Mathematik-Bibliothek 363
4.4.2.4 Standard-Grafik-Bibliothek 364
4.4.2.5 Weitere Teile der Standardbibliothek 364
4.4.3 Xlib, Xt und Xm (X Window System) 365
4.4.4 NAG-Bibliothek 365
4.4.5 Eigene Bibliotheken 366
4.4.6 Speichermodelle (MS-DOS) 366
4.4.7 Memo Bibliotheken 367
4.4.8 bung Bibliotheken 367
4.5 Klassen 367
4.5.1 Warum C mit Klassen? 367
4.5.2 Datenabstraktion, Klassenbegriff 368
4.5.3 Klassenhierarchie, abstrakte Klassen, Vererbung 371
4.5.4 Memo Klassen 375
4.5.5 bung Klassen 376
4.6 Klassen-Bibliotheken 376
4.6.1 Standard Template Library (STL) 376
4.6.2 C-XSC 377
4.6.2.1 Was ist C-XSC? 377
4.6.2.2 Datentypen, Operatoren und Funktionen 378
4.6.2.3 Teilfelder von Vektoren und Matrizen 379
4.6.2.4 Genaue Auswertung von Ausdrcken 380
4.6.2.5 Dynamische Langzahl-Arithmetik 381
4.6.2.6 Ein- und Ausgabe in C-XSC 382
4.6.2.7 C-XSC-Numerikbibliothek 383
4.6.2.8 Beispiel Intervall-Newton-Verfahren 383
4.6.3 X11-Programmierung mit dem Qt-Toolkit 385
4.7 berladen von Operatoren 389
4.8 Prprozessor 391
4.8.1 define-Anweisungen 391
4.8.2 include-Anweisungen 392
4.8.3 Bedingte Kompilation (#ifdef) 394
4.8.4 Memo Prprozessor 395
4.8.5 bung Prprozessor 396
4.9 Dokumentation 396
4.10 Weitere C-Programme 397
4.10.1 Name 397
4.10.2 Aufbau 397
4.10.3 Fehlersuche 400
4.10.4 Optimierung 401
4.10.5 curses - Fluch oder Segen? 403
4.10.6 Ein Herz fr Pointer 406
4.10.6.1 Nullpointer 407
4.10.6.2 Pointer auf Typ void 407
4.10.6.3 Arrays und Pointer 409
4.10.6.4 Arrays von Funktionspointern 413
4.10.7 Dynamische Speicherverwaltung (malloc) 418
4.10.8 X Window System 424
4.11 Obfuscated C 429
4.12 Portieren von Programmen 430
4.12.1 Regeln 430
4.12.2 bertragen von ALGOL nach C 432
4.12.3 bertragen von FORTRAN nach C 433
4.13 Exkurs ber Algorithmen 437
5 Internet 439
5.1 Grundbegriffe 439
5.2 Schichtenmodell 441
5.3 Entstehung 442
5.4 Protokolle (TCP/IP) 443
5.5 Adressen und Namen, Name-Server (DNS) 445
5.6 BelWue 449
5.7 Netzdienste im berblick 449
5.8 Terminal-Emulatoren (telnet, rlogin, ssh) 450
5.9 File-Transfer (kermit, ftp, fsp) 451
5.10 Anonymous FTP 453
5.11 Electronic Mail (Email) 455
5.11.1 Grundbegriffe 455
5.11.2 Mailing-Listen 464
5.11.3 Privat und authentisch (PGP, PEM) 465
5.12 Neuigkeiten (Usenet, Netnews) 467
5.13 Netzgeschwtz (irc) 473
5.14 Suchhilfen:. Archie, Gopher, WAIS 473
5.15 WWW - das World Wide Web 476
5.15.1 Ein Gewebe aus Hyperdokumenten 476
5.15.2 Forms und cgi-Scripts 478
5.15.3 Java, Applets 479
5.15.4 Cookies 480
5.15.5 Suchmaschinen 481
5.15.6 Die eigene Startseite 482
5.16 Navigationshilfen (nslookup, whois, finger) 482
5.17 Die Zeit im Netz (ntp) 484
5.17.1 Aufgabe 484
5.17.2 UTC - Universal Time Coordinated 485
5.17.3 Einrichtung 486
5.18 Informationsrecherche 487
5.18.1 Informationsquellen 487
5.18.2 Fakten-Datenbanken 487
5.18.3 Literatur-Datenbanken 488
5.18.4 Retrieval-Sprache 488
5.18.5 Beispiel MATHDI auf STN 489
5.18.6 Einige technische Datenbanken 493
5.19 Memo Internet 494
5.20 bung Internet 495
6 Computer-Recht 497
6.1 Einfhrung 497
6.2 Zivilrecht 498
6.2.1 Electronic Commerce 499
6.2.1.1 Elektronischer Vertragsschlu 500
6.2.1.2 Gewhrleistung und Garantie 501
6.2.1.3 Allgemeine Geschftsbedingungen 502
6.2.1.4 Widerrufsrechte 503
6.2.1.5 Pseudonymer Vertragsschlu 505
6.2.2 Urheberrecht 506
6.2.2.1 Voraussetzungen des Schutzes 506
6.2.2.2 Inhalt des Schutzes 508
6.2.2.3 Datenbanken 509
6.2.2.4 Entstehung des Urheberrechtes 510
6.2.2.5 Internationales Urheberrecht, Copyright 510
6.2.2.6 Public Domain und Open Source 510
6.2.2.7 Folgen von Rechtsverletzungen 511
6.3 Datenschutz 512
6.4 Strafrecht 513
6.4.1  202a StGB - Aussphen von Daten 513
6.4.2  303a StGB - Datenvernderung 515
6.4.3  303b StGB - Computersabotage 516
6.4.4  263a StGB - Computerbetrug 516
6.4.5  269 StGB - Flschung beweiserheblicher Daten 517
6.4.6  111 StGB - ffentliche Aufforderung zu Straftaten 518
6.4.7  184 StGB - Verbreitung pornographischer Schriften 519
6.4.8 Verantwortlichkeit des Providers 521
A Zahlensysteme 523
B Zeichenstze 526
B.1 EBCDIC, ASCII, Roman8, IBM-PC 526
B.2 German-ASCII 531
B.3 ASCII-Steuerzeichen 532
B.4 Latin-1 (ISO 8859-1) 533
B.5 Latin-2 (ISO 8859-2) 538
B.6 HTML-Entities 540
C Papier- und Schriftgren 542
C.1 Papierformate 542
C.2 Schriftgren 542
D Die wichtigsten UNIX-Kommandos 543
E Vergleich UNIX - MS-DOS-Kommandos 548
F Besondere UNIX-Kommandos 550
F.1 printf(3), scanf(3) 550
F.2 vi(1) 550
F.3 emacs(1) 551
F.4 joe(1) 552
F.5 ftp(1) 552
G UNIX-Systemaufrufe 553
H UNIX-Signale 555
I C/C++-Lexikon 557
I.1 Schlsselwrter 557
I.2 Standardfunktionen 559
I.3 Include-Files 562
I.4 Prprozessor-Anweisungen 563
J Slang im Netz 564
K Beispiele LaTeX 570
K.1 Erste Hilfe im Quelltext 570
K.2 Gelatexte Formeln 574
K.3 Formeln im Quelltext 578
L Modem-Kommandos (Hayes) 583
M ISO 3166 Lndercodes 585
N Requests For Comments (RFCs) 587
N.1 Ausgewhlte RFCs, ohne FYIs 587
N.2 Alle FYIs 590
O Internet-Protokolle 592
P Zeittafel 594
Q Zum Weiterlesen 600
Sach- und Namensverzeichnis 617
END
