154
Sascha Kersken IT-Handbuch für Fachinformatiker Der Ausbildungsbegleiter

IT-Handbuch für Fachinformatiker€¦ · Inhalt 9 9 Grundlagen der Programmierung ..... 455 9.1 Die Programmiersprache C

Embed Size (px)

Citation preview

Sascha Kersken

IT-Handbuch für FachinformatikerDer Ausbildungsbegleiter

Auf einen Blick

1 Einführung ............................................................................................ 25

2 Mathematische und technische Grundlagen ....................................... 57

3 Hardware .............................................................................................. 109

4 Netzwerkgrundlagen ............................................................................ 169

5 Betriebssystemgrundlagen ................................................................... 281

6 Windows .............................................................................................. 319

7 Linux ..................................................................................................... 365

8 Mac OS X ............................................................................................. 437

9 Grundlagen der Programmierung ......................................................... 455

10 Konzepte der Programmierung ............................................................ 541

11 Software-Engineering ........................................................................... 637

12 Datenbanken ........................................................................................ 675

13 Server für Webanwendungen ............................................................... 727

14 Weitere Internet-Serverdienste ........................................................... 767

15 XML ...................................................................................................... 791

16 Weitere Datei- und Datenformate ....................................................... 837

17 Webseitenerstellung mit (X)HTML und CSS ........................................ 865

18 Webserveranwendungen ...................................................................... 923

19 JavaScript und Ajax .............................................................................. 993

20 Computer- und Netzwerksicherheit ..................................................... 1057

5

Inhalt

Geleitwort des Fachgutachters .................................................................................... 15Vorwort ................................................................................................................. 17

1 Einführung ........................................................................................... 25

1.1 Informationstechnik, Informatik und EDV ................................................. 251.1.1 Fachrichtungen der Informatik ................................................... 261.1.2 Überblick über die IT-Ausbildung .............................................. 27

1.2 Die Geschichte der Rechenmaschinen und Computer ............................... 331.2.1 Die Vorgeschichte ...................................................................... 341.2.2 Die Entwicklung der elektronischen Rechner ............................. 361.2.3 Entwicklung der Programmiersprachen ...................................... 45

1.3 Digitale Speicherung und Verarbeitung von Informationen ....................... 521.3.1 Digitale Bilddaten ...................................................................... 531.3.2 Digitale Audiodaten ................................................................... 541.3.3 Digitale Speicherung von Text .................................................... 55

1.4 Zusammenfassung .................................................................................... 56

2 Mathematische und technische Grundlagen ...................................... 57

2.1 Einführung in die Logik ............................................................................. 572.1.1 Aussagen ................................................................................... 582.1.2 Aussageformen .......................................................................... 592.1.3 Logische Verknüpfungen ............................................................ 602.1.4 Mengenoperationen .................................................................. 672.1.5 Weitere wichtige Berechnungsverfahren .................................... 70

2.2 Informationsspeicherung im Computer ..................................................... 722.2.1 Zahlensysteme ........................................................................... 722.2.2 Bits und Bytes ............................................................................ 78

2.3 Elektronische Grundlagen ......................................................................... 832.3.1 Einfache Schaltungen ................................................................. 832.3.2 Zusammengesetzte Schaltungen ................................................ 86

2.4 Automatentheorien und -simulationen ..................................................... 902.4.1 Algorithmen .............................................................................. 912.4.2 Die Turing-Maschine ................................................................. 962.4.3 Der virtuelle Prozessor ............................................................... 100

2.5 Zusammenfassung .................................................................................... 106

Inhalt

6

3 Hardware ............................................................................................. 109

3.1 Grundlagen .............................................................................................. 1093.2 Die Zentraleinheit ..................................................................................... 113

3.2.1 Aufbau und Aufgaben des Prozessors ......................................... 1153.2.2 Der Arbeitsspeicher ................................................................... 1253.2.3 Das BIOS ................................................................................... 1273.2.4 Bus- und Anschlusssysteme ........................................................ 133

3.3 Die Peripherie .......................................................................................... 1423.3.1 Massenspeicher ......................................................................... 1433.3.2 Eingabegeräte ............................................................................ 1563.3.3 Ausgabegeräte ........................................................................... 1603.3.4 Soundhardware ......................................................................... 166

3.4 Zusammenfassung .................................................................................... 167

4 Netzwerkgrundlagen ........................................................................... 169

4.1 Grundlagen .............................................................................................. 1694.1.1 Was ist ein Netzwerk? ............................................................... 1694.1.2 Entstehung der Netzwerke ......................................................... 171

4.2 Funktionsebenen von Netzwerken ............................................................ 1764.2.1 Das OSI-Referenzmodell ............................................................ 1774.2.2 Das Schichtenmodell der Internetprotokolle .............................. 1794.2.3 Netzwerkkommunikation über die Schichten eines

Schichtenmodells ....................................................................... 1824.3 Klassifizierung von Netzwerken ................................................................ 186

4.3.1 Die Reichweite des Netzwerks ................................................... 1864.3.2 Die Netzwerktopologie .............................................................. 1884.3.3 Der Zentralisierungsgrad des Netzwerks ..................................... 189

4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren ..................... 1964.4.1 Die verschiedenen Ethernet-Standards ....................................... 1974.4.2 Token Ring ................................................................................ 2024.4.3 Drahtlose Netze ......................................................................... 2044.4.4 Sonstige Zugangsarten ............................................................... 208

4.5 Datenfernübertragung .............................................................................. 2104.5.1 Netzwerkzugang per Modem (analoge Telefonleitung) ............... 2114.5.2 ISDN ......................................................................................... 2124.5.3 DSL-Dienste .............................................................................. 214

4.6 Die TCP/IP-Protokollfamilie ...................................................................... 2174.6.1 Netzzugang in TCP/IP-Netzwerken ............................................ 2194.6.2 IP-Adressen, Datagramme und Routing ..................................... 220

Inhalt

7

4.6.3 Transportprotokolle ................................................................... 2464.6.4 Das Domain Name System (DNS) .............................................. 2524.6.5 Verschiedene Internet-Anwendungsprotokolle .......................... 256

4.7 Andere Protokollstapel ............................................................................. 2724.7.1 Die AppleTalk-Protokollfamilie .................................................. 2724.7.2 Novell IPX/SPX .......................................................................... 2754.7.3 NetBEUI/SMB ............................................................................ 277

4.8 Zusammenfassung .................................................................................... 277

5 Betriebssystemgrundlagen .................................................................. 281

5.1 Entwicklung der Betriebssysteme .............................................................. 2825.1.1 Die Geschichte von Unix ............................................................ 2845.1.2 PC-Betriebssysteme ................................................................... 286

5.2 Aufgaben und Konzepte ........................................................................... 2905.2.1 Allgemeiner Aufbau von Betriebssystemen ................................. 2905.2.2 Prozessverwaltung ..................................................................... 2985.2.3 Speicherverwaltung ................................................................... 3025.2.4 Dateisysteme ............................................................................. 304

5.3 Die allgegenwärtige Virtualisierung .......................................................... 3115.3.1 Virtualisierungslösungen im Überblick ....................................... 3125.3.2 VMware Workstation als konkretes Beispiel ............................... 313

5.4 Zusammenfassung .................................................................................... 317

6 Windows ............................................................................................. 319

6.1 Allgemeine Informationen ........................................................................ 3196.1.1 Die verschiedenen Windows-Versionen ..................................... 3196.1.2 Windows-Dateisysteme ............................................................. 323

6.2 Windows im Einsatz ................................................................................. 3246.2.1 Die Windows-Benutzeroberfläche .............................................. 3256.2.2 Die Windows-Konsole ............................................................... 3336.2.3 Die Windows PowerShell ........................................................... 3376.2.4 Windows-Konfiguration ............................................................. 348

6.3 Windows-Netzwerkkonfiguration ............................................................. 3556.3.1 Allgemeine Einstellungen ........................................................... 3556.3.2 TCP/IP-Dienstprogramme .......................................................... 3576.3.3 Datei- und Druckserver unter Windows ..................................... 3606.3.4 Windows-Server ........................................................................ 361

6.4 Zusammenfassung .................................................................................... 363

Inhalt

8

7 Linux .................................................................................................... 365

7.1 Arbeiten mit der Shell .............................................................................. 3677.1.1 Booten und Login ...................................................................... 3677.1.2 Virtuelle Terminals ..................................................................... 3707.1.3 Grundfunktionen der Shell ......................................................... 3717.1.4 Hilfefunktionen .......................................................................... 3777.1.5 Pipes und Ein-/Ausgabeumleitung ............................................. 3807.1.6 Die wichtigsten Systembefehle .................................................. 383

7.2 Konfigurations- und Administrationsaufgaben .......................................... 3977.2.1 Syslog und Log-Dateien ............................................................. 3977.2.2 Programme automatisch starten ................................................. 3997.2.3 Software installieren .................................................................. 401

7.3 Automatisierung ....................................................................................... 4037.3.1 Shell-Skripte .............................................................................. 4037.3.2 Weitere Hilfsmittel .................................................................... 407

7.4 Editoren ................................................................................................... 4107.4.1 vi ............................................................................................... 4107.4.2 Emacs ........................................................................................ 417

7.5 Grafische Benutzeroberflächen ................................................................. 4227.5.1 Der X-Server .............................................................................. 4227.5.2 Desktops ................................................................................... 423

7.6 Netzwerkkonfiguration unter Linux ........................................................... 4287.6.1 Grundeinstellungen ................................................................... 4287.6.2 TCP/IP-Dienstprogramme .......................................................... 4297.6.3 Datei- und Druckserver unter Linux ........................................... 430

7.7 Zusammenfassung .................................................................................... 434

8 Mac OS X ............................................................................................. 437

8.1 Mit Aqua arbeiten .................................................................................... 4408.1.1 Die Menüleiste .......................................................................... 4428.1.2 Das Dock ................................................................................... 4438.1.3 Der Finder ................................................................................. 4438.1.4 Exposé und Dashboard .............................................................. 445

8.2 Systemkonfiguration ................................................................................. 4478.2.1 Besonderheiten der Mac-Dateisysteme ...................................... 448

8.3 Mac OS X-Netzwerkkonfiguration ............................................................ 4498.3.1 Serverdienste unter Mac OS X ................................................... 451

8.4 Zusammenfassung .................................................................................... 453

Inhalt

9

9 Grundlagen der Programmierung ........................................................ 455

9.1 Die Programmiersprache C ....................................................................... 4569.1.1 Das erste Beispiel ....................................................................... 4579.1.2 Elemente der Sprache C ............................................................. 4609.1.3 Die C-Standardbibliothek ........................................................... 479

9.2 Java .......................................................................................................... 4839.2.1 Grundlegende Elemente der Sprache Java .................................. 4859.2.2 Objektorientierte Programmierung mit Java ............................... 4909.2.3 Dateizugriffe in Java ................................................................... 496

9.3 Perl .......................................................................................................... 4979.3.1 Das erste Beispiel ....................................................................... 4999.3.2 Elemente der Sprache Perl ......................................................... 500

9.4 Ruby ........................................................................................................ 5109.4.1 Das erste Beispiel ....................................................................... 5129.4.2 Ruby-Grundelemente ................................................................ 5149.4.3 Objektorientierung in Ruby ....................................................... 528

9.5 Zusammenfassung .................................................................................... 539

10 Konzepte der Programmierung ........................................................... 541

10.1 Algorithmen und Datenstrukturen ............................................................ 54110.1.1 Ein einfaches Praxisbeispiel ........................................................ 54110.1.2 Sortier-Algorithmen ................................................................... 54410.1.3 Such-Algorithmen ...................................................................... 54810.1.4 Ausgewählte Datenstrukturen .................................................... 550

10.2 Reguläre Ausdrücke .................................................................................. 55510.2.1 Muster für reguläre Ausdrücke ................................................... 55610.2.2 Programmierung mit regulären Ausdrücken ............................... 560

10.3 Systemnahe Programmierung ................................................................... 56310.3.1 Prozesse und Pipes .................................................................... 56310.3.2 Threads ...................................................................................... 567

10.4 Einführung in die Netzwerkprogrammierung ............................................. 57110.4.1 Die Berkeley Socket API ............................................................. 57110.4.2 Ein praktisches Beispiel .............................................................. 57810.4.3 Ein Ruby-Webserver .................................................................. 582

10.5 Verteilte Anwendungen mit Java Enterprise Edition .................................. 59810.5.1 Enterprise Java Beans (EJB) ........................................................ 59910.5.2 Java Servlets .............................................................................. 60410.5.3 Webservices .............................................................................. 605

10.6 GUI- und Grafikprogrammierung .............................................................. 608

Inhalt

10

10.6.1 Zeichnungen und Grafiken erstellen ........................................... 61010.6.2 Animation .................................................................................. 61510.6.3 Programmierung fensterbasierter Anwendungen ........................ 61910.6.4 Java-Applets .............................................................................. 632

10.7 Zusammenfassung .................................................................................... 634

11 Software-Engineering .......................................................................... 637

11.1 Überblick .................................................................................................. 63811.1.1 Der Entwicklungszyklus .............................................................. 63911.1.2 Planung und Analyse ................................................................. 64011.1.3 Entwurf ..................................................................................... 64611.1.4 Implementierung und Test ......................................................... 64711.1.5 Dokumentation ......................................................................... 64811.1.6 Konkrete Entwicklungsverfahren ................................................ 649

11.2 Werkzeuge ............................................................................................... 65311.2.1 UML .......................................................................................... 65411.2.2 Entwurfsmuster .......................................................................... 66011.2.3 Unit-Tests .................................................................................. 668

11.3 Zusammenfassung .................................................................................... 672

12 Datenbanken ....................................................................................... 675

12.1 Die verschiedenen Datenbanktypen ......................................................... 67612.1.1 Einzeltabellendatenbanken ........................................................ 67812.1.2 Relationale Datenbanken ........................................................... 67912.1.3 Objektorientierte Datenbanken ................................................. 686

12.2 MySQL – ein konkretes RDBMS ................................................................ 68912.2.1 MySQL installieren und konfigurieren ........................................ 69012.2.2 Erste Schritte mit dem mysql-Client ........................................... 693

12.3 SQL-Abfragen ........................................................................................... 69412.3.1 Datenbanken und Tabellen erzeugen ......................................... 69512.3.2 Auswahlabfragen ....................................................................... 69912.3.3 Einfüge-, Lösch- und Änderungsabfragen ................................... 70312.3.4 Transaktionen ............................................................................ 705

12.4 MySQL-Administration ............................................................................. 70612.4.1 mysqladmin ............................................................................... 70612.4.2 Benutzerverwaltung ................................................................... 70712.4.3 Import und Export von Daten, Backups ...................................... 71212.4.4 Konfigurationsdateien ................................................................ 71512.4.5 Log-Dateien ............................................................................... 716

Inhalt

11

12.4.6 Replikation ................................................................................ 71812.5 Grundlagen der Datenbankprogrammierung ............................................. 72012.6 Zusammenfassung .................................................................................... 724

13 Server für Webanwendungen .............................................................. 727

13.1 HTTP im Überblick ................................................................................... 72713.1.1 Ablauf der HTTP-Kommunikation .............................................. 72813.1.2 HTTP-Statuscodes ...................................................................... 73113.1.3 HTTP-Header ............................................................................. 734

13.2 Der Webserver Apache ............................................................................. 73713.2.1 Apache im Überblick ................................................................. 73813.2.2 Apache-Module ......................................................................... 73913.2.3 Apache installieren .................................................................... 74113.2.4 Apache-Konfiguration ................................................................ 744

13.3 PHP installieren und einrichten ................................................................. 75813.3.1 Installation ................................................................................ 75913.3.2 Die PHP-Konfigurationsdatei php.ini ......................................... 763

13.4 Zusammenfassung .................................................................................... 765

14 Weitere Internet-Serverdienste .......................................................... 767

14.1 Namens- und Verzeichnisdienste .............................................................. 76714.1.1 Der DNS-Server BIND ................................................................ 76714.1.2 Der Verzeichnisdienst OpenLDAP .............................................. 773

14.2 Sonstige Server ......................................................................................... 78314.2.1 vsftpd, ein FTP-Server ................................................................ 78314.2.2 inetd und xinetd ........................................................................ 785

14.3 Zusammenfassung .................................................................................... 788

15 XML ..................................................................................................... 791

15.1 Der Aufbau von XML-Dokumenten .......................................................... 79315.1.1 Die grundlegenden Bestandteile von XML-Dokumenten ............ 79315.1.2 Wohlgeformtheit ....................................................................... 801

15.2 DTDs und XML Schema ............................................................................ 80415.2.1 Document Type Definitions (DTDs) ............................................ 80415.2.2 Namensräume ........................................................................... 81515.2.3 XML Schema ............................................................................. 816

15.3 XSLT ......................................................................................................... 81915.4 Grundlagen der XML-Programmierung ..................................................... 825

15.4.1 SAX ........................................................................................... 827

Inhalt

12

15.4.2 DOM ......................................................................................... 83415.5 Zusammenfassung .................................................................................... 836

16 Weitere Datei- und Datenformate ...................................................... 837

16.1 Textdateien und Zeichensätze ................................................................... 83716.1.1 Das Problem des Zeilenumbruchs .............................................. 83816.1.2 Zeichensätze .............................................................................. 84016.1.3 Textbasierte Dateiformate .......................................................... 847

16.2 Binäre Dateiformate ................................................................................. 85016.2.1 Bilddateiformate ........................................................................ 85316.2.2 Multimedia-Dateiformate .......................................................... 85716.2.3 Archivdateien verwenden .......................................................... 859

16.3 Zusammenfassung .................................................................................... 862

17 Webseitenerstellung mit (X)HTML und CSS ...................................... 865

17.1 HTML und XHTML ................................................................................... 86617.1.1 Die Grundstruktur von HTML-Dokumenten ............................... 86717.1.2 Textstrukturierung und Textformatierung ................................... 86917.1.3 Listen und Aufzählungen ........................................................... 87617.1.4 Hyperlinks ................................................................................. 88017.1.5 Bilder in Webseiten einbetten .................................................... 88417.1.6 Tabellen ..................................................................................... 88817.1.7 Formulare .................................................................................. 89417.1.8 Einbetten von Multimedia-Dateien ............................................ 90217.1.9 Meta-Tags und Suchmaschinen .................................................. 905

17.2 Cascading Style Sheets (CSS) ..................................................................... 90817.2.1 Platzieren von Stylesheets .......................................................... 90917.2.2 Stylesheet-Wertangaben ............................................................ 91117.2.3 Stylesheet-Eigenschaften ........................................................... 91217.2.4 Layer erzeugen und positionieren .............................................. 916

17.3 Zusammenfassung .................................................................................... 922

18 Webserveranwendungen ..................................................................... 923

18.1 PHP .......................................................................................................... 92318.1.1 Sprachgrundlagen ...................................................................... 92418.1.2 Klassen und Objekte .................................................................. 93618.1.3 Include-Dateien, Autoloader und Namespaces ........................... 94718.1.4 Webspezifische Funktionen ....................................................... 94818.1.5 Zugriff auf MySQL-Datenbanken ................................................ 954

Inhalt

13

18.1.6 Unit-Tests mit PHPUnit .............................................................. 96618.2 Ruby on Rails ........................................................................................... 973

18.2.1 Grundlagen ................................................................................ 97318.2.2 Ein Praxisbeispiel ....................................................................... 974

18.3 Weitere Technologien im Überblick .......................................................... 98518.3.1 Content-Management, Weblogs & Co. ...................................... 98618.3.2 Blogs und Wikis ......................................................................... 988

18.4 Zusammenfassung .................................................................................... 990

19 JavaScript und Ajax ............................................................................. 993

19.1 JavaScript ................................................................................................. 99319.2 JavaScript im HTML-Dokument ................................................................ 994

19.2.1 Erstes Beispiel: Ausgabe ins Dokument ...................................... 99519.3 Formulare und Event Handler ................................................................... 999

19.3.1 Erstes Beispiel ............................................................................ 99919.3.2 Zugriff auf Formulare und ihre Elemente .................................... 1001

19.4 Datums- und Uhrzeit-Funktionen ............................................................. 100819.4.1 Datums- und Uhrzeit-Methoden ................................................ 100919.4.2 Timeout – die JavaScript-»Stoppuhr« .......................................... 1010

19.5 Manipulation von Bildern ......................................................................... 101119.5.1 Erstes Beispiel: Austauschen eines Bildes auf Knopfdruck ........... 101219.5.2 Vorausladen von Bildern ............................................................ 101319.5.3 Eine gut funktionierende Rollover-Lösung .................................. 1014

19.6 Browser- und Fensteroptionen ................................................................. 101819.6.1 Browser-Eigenschaften ............................................................... 101919.6.2 Automatische Hyperlinks – History und Location ....................... 102019.6.3 Neue Browserfenster öffnen ....................................................... 1021

19.7 DHTML und DOM ................................................................................... 102519.7.1 W3C-DOM im Überblick ........................................................... 102519.7.2 Eine DOM-Baum-Anzeige .......................................................... 102819.7.3 DOM-Anwendung in der Praxis ................................................. 103019.7.4 Dokumentinhalte verändern und austauschen ........................... 1033

19.8 Ajax .......................................................................................................... 103519.8.1 Die erste Ajax-Anwendung ........................................................ 103619.8.2 Datenaustauschformate: XML und JSON .................................... 104219.8.3 Größeres Beispiel: eine interaktive Länderliste ........................... 1043

19.9 Zusammenfassung .................................................................................... 1056

Inhalt

14

20 Computer- und Netzwerksicherheit ................................................... 1057

20.1 PC-Gefahren ............................................................................................. 105820.1.1 Viren und Würmer ..................................................................... 105820.1.2 Trojaner und Backdoors ............................................................. 106420.1.3 Weitere Schädlinge .................................................................... 1065

20.2 Netzwerk- und Serversicherheit ................................................................ 107120.2.1 Servergefahren ........................................................................... 107120.2.2 Wichtige Gegenmaßnahmen ...................................................... 107320.2.3 Kryptografie ............................................................................... 1079

20.3 Zusammenfassung .................................................................................... 1082

Anhang ....................................................................................................... 1085

A Glossar ................................................................................................................. 1087B Zweisprachige Wortliste ....................................................................................... 1101

B.1 Englisch-Deutsch ...................................................................................... 1101B.2 Deutsch-Englisch ...................................................................................... 1103

C Kommentiertes Literatur- und Linkverzeichnis ...................................................... 1107C.1 Allgemeine Einführungen und Überblicke ................................................. 1107C.2 Mathematische und technische Grundlagen ............................................. 1108C.3 Hardware ................................................................................................. 1108C.4 Netzwerktechnik ...................................................................................... 1109C.5 Betriebssystemgrundlagen ........................................................................ 1109C.6 Windows .................................................................................................. 1110C.7 Linux ........................................................................................................ 1111C.8 Mac OS X ................................................................................................. 1111C.9 Grundlagen der Programmierung .............................................................. 1112C.10 Konzepte der Programmierung ................................................................. 1113C.11 Software-Engineering ............................................................................... 1113C.12 Datenbanken ............................................................................................ 1114C.13 Server für Webanwendungen ................................................................... 1115C.14 Weitere Internet-Serverdienste ................................................................. 1115C.15 XML ......................................................................................................... 1116C.16 Webseitenerstellung mit HTML und CSS ................................................... 1116C.17 Webserveranwendungen .......................................................................... 1116C.18 JavaScript und Ajax ................................................................................... 1117C.19 Computer- und Netzwerksicherheit .......................................................... 1118

Index ........................................................................................................................... 1119

17

Die Zeit vergeht nicht schneller als früher, aber wir laufen eiliger an ihr vorbei.– George Orwell

Vorwort

Sind wirklich schon wieder zwei Jahre vergangen? So fragte ich mich, als es hieß, die vor-liegende Neuauflage in Angriff zu nehmen.

Sind wirklich erst zwei Jahre vergangen? So fragte ich mich dann, als ich an der Arbeit saßund mir klarmachte, was seit der letzten Auflage in der IT-Welt alles passiert ist. Internet-zugang über Mobilgeräte ist inzwischen fast allgegenwärtig, das Cloud Computing ist inaller Munde, HTML5 und CSS3 revolutionieren die Art und Weise, wie Webseiten gestal-tet werden, und NoSQL-Datenbanken wie CouchDB werden benutzt, wo relationale Da-tenbanken nicht passen. Und das sind nur die Neuerungen, die ich in diese Neuauflageaufgenommen habe.

Der Rest wurde überarbeitet, von bekannten Fehlern befreit und auf den neuesten Standgebracht. Ich hoffe, dass die Mischung von Theorie- und Praxisthemen, von allgemeinenKonzepten und aktuellen Technologien wieder einmal gelungen ist, und wünsche Ihnenviel Spaß beim Lesen und viel Erfolg während Ihrer IT-Ausbildung.

Worum geht es in diesem Buch?

Dieses Buch beschreibt die wesentlichen Ausbildungsinhalte im Fachkunde-Unterricht inden Ausbildungsberufen Fachinformatiker Anwendungsentwicklung und Systemintegra-tion, IT-Systemelektroniker, IT-Systemkaufleute und Informatikkaufleute. Anders als her-kömmliche Bücher handelt es sich jedoch nicht um eine Tabellensammlung zum Auswen-diglernen, sondern um praxisorientierte Anleitungen, die Sie weit über Ihre Ausbildunghinaus bei Ihrer alltäglichen Arbeit mit Computersystemen einsetzen können.

Sie lernen in den folgenden Kapiteln zahlreiche Geräte, Betriebssysteme, Programmier-sprachen und Anwendungsprogramme kennen und erfahren viel Wissenswertes überNetzwerke und das Internet. Bei allen Themen habe ich versucht, die Balance zwischenTheorie und Praxis zu wahren: Es werden weder die technischen und theoretischen De-tails verschwiegen, wie in zahlreichen Büchern für absolute Einsteiger, noch kommen die

18

Vorwort

praktischen Anwendungsbeispiele zu kurz, was in manchen akademischen Lehrwerkender Fall ist.

Soweit es möglich ist, habe ich versucht, konkrete Software aus dem Open-Source-Bereichauszuwählen. Zum einen, weil ich selbst seit Jahren Open-Source-Software einsetze undentwickle, vor allem aber auch, weil Sie auf diese Weise fast jedes in diesem Buch behan-delte Programm kostenlos und ohne jegliche Einschränkungen herunterladen, installierenund benutzen können.

Die Ausbildung zum Fachinformatiker oder für andere IT-Berufe enthält neben den fach-spezifischen Inhalten auch Aspekte wie Wirtschafts- und Sozialwissenschaften, Rechts-kunde oder Betriebsorganisation. Solche Themen können in diesem Buch nicht berück-sichtigt werden. Für das Fach Technisches Englisch finden Sie in Anhang B immerhin eineStichwortliste in beiden Richtungen.

Kapitelübersicht

Die einzelnen Kapitel dieses Buches widmen sich den folgenden Themen:

� Kapitel 1, »Einführung«, behandelt die Geschichte und grundlegende Funktionsweisedes Computers. Außerdem werden einige wichtige Grundlagen der Informationstech-nik erläutert; sie bilden die Voraussetzung für das Verständnis späterer Kapitel.

� In Kapitel 2, »Mathematische und technische Grundlagen«, werden zunächst die ma-thematischen und logischen Prinzipien erläutert, auf denen der Computer basiert. An-schließend lernen Sie die wichtigsten elektrotechnischen Grundbausteine kennen. Ab-gerundet wird das Kapitel durch die Vorstellung von Automatentheorien undRechnersimulationen.

� Kapitel 3, »Hardware«, beschäftigt sich mit den diversen Bauteilen, aus denen einComputer besteht, sowie mit zahlreichen wichtigen Peripheriegeräten. Sie erfahrennicht nur die wichtigsten technischen Details über Elemente wie den Mikroprozessor,verschiedene Laufwerke und Datenträger oder andere Ein- und Ausgabegeräte, son-dern es werden auch praktische Informationen vermittelt. Zum Beispiel werden Ein-bau und Anschluss von Komponenten oder das BIOS-Setup angesprochen.

� In Kapitel 4, »Netzwerkgrundlagen«, wird die Entwicklung der Netzwerke und desInternets beschrieben, und Sie erhalten eine Einführung in die Begriffswelt derNetzwerke. Beispielsweise werden Schichtenmodelle und Netzwerkarchitekturen vor-gestellt. Danach wird die genaue Funktionsweise verschiedener Arten von Netzwerk-karten und -anschlüssen erläutert; außerdem werden diverse Netzwerkprotokollebeschrieben. Den Schwerpunkt bildet die TCP/IP-Protokollfamilie, die für das Internetentwickelt wurde und inzwischen der wichtigste Kommunikationsstandard für alleArten von Netzwerken ist.

19

Vorwort

� In Kapitel 5, »Betriebssystemgrundlagen«, werden allgemeine Konzepte des Betriebs-systemaufbaus erklärt, zum Beispiel die Verwaltung von Prozessen, das Speicher-management oder die Dateiverwaltung.

� Kapitel 6, »Windows«, beschreibt die theoretischen und praktischen Grundlagen desverbreitetsten PC-Betriebssystems der Welt; den Schwerpunkt bildet die aktuelle Ver-sion Windows 7, wobei die Verhältnisse in den recht ähnlichen älteren Versionen Vistaund XP oft mit behandelt werden. Neben der grafischen Benutzeroberfläche wird auchdie Arbeit mit der klassischen Windows-Kommandozeile sowie mit der neueren Win-dows PowerShell behandelt. Den Abschluss bildet ein Einstieg in die Windows-Konfi-guration.

� In Kapitel 7, »Linux«, wird eine zweite Betriebssystemfamilie praktisch beleuchtet.Schwerpunktmäßig wird die Arbeit mit der Linux-Shell bash und den zahlreichen Sys-temprogrammen behandelt; daneben werden die Grundlagen der Administration unddes Umgangs mit klassischen Linux/Unix-Texteditoren beschrieben.

� Kapitel 8, »Mac OS X«, beschäftigt sich mit dem Betriebssystem, mit dem Apple seinediversen Macintosh-Rechner liefert. Besonders die komfortable Benutzeroberflächeund ihre Einstellmöglichkeiten kommen zur Sprache, da Mac OS X ein Unix-System istund der Konsolenbereich somit demjenigen von Linux sehr ähnlich ist.

� In Kapitel 9, »Grundlagen der Programmierung«, werden vier verschiedene wichtigeProgrammiersprachen eingeführt, die unterschiedliche Entwicklungsstufen und As-pekte des Programmierens abdecken: C, Java, Perl und Ruby.

� Kapitel 10, »Konzepte der Programmierung«, baut auf diese Grundlagen auf und erläu-tert verschiedene Aspekte, die die Programmierung in der Praxis ausmachen: Algorith-men und Datenstrukturen, reguläre Ausdrücke (mächtige Suchmuster), Elemente dersystemnahen Programmierung oder die Entwicklung von Programmen für grafischeOberflächen. Zudem erfahren Sie in Grundzügen, wie Netzwerkanwendungen pro-grammiert werden, und Sie erhalten eine Einführung in die Programmierung verteilterAnwendungen mit der Java 2 Enterprise Edition und in Webservices.

� Das in Kapitel 11 behandelte »Software-Engineering« geht weit über reine Program-miertechniken hinaus: Sie lernen viele unterschiedliche Methoden zur Bearbeitungund Verwaltung von Softwareprojekten kennen. Unter anderem werden die Anwen-dungsmodellierung mit der UML, Grundlagen des Projektmanagements und verschie-dene Ansätze des Software-Engineerings wie der Unified Process oder Extreme Pro-gramming vorgestellt. Für die in den IT-Ausbildungsberufen fällige Projektarbeit sinddiese Themen überlebenswichtig.

� Kapitel 12, »Datenbanken«, befasst sich mit einer der wichtigsten Funktionsgrundla-gen vieler Programmierprojekte und Anwendungen. Nach der üblichen Erläuterungvon Begriffen und Konzepten wird als konkretes Datenbanksystem der weitverbreitete

20

Vorwort

Open-Source-Datenbankserver MySQL eingeführt. Am Ende des Kapitels steht nochein kurzer Überblick über die NoSQL-Datenbank CouchDB.

� In Kapitel 13, »Server für Webanwendungen«, wird zunächst das Webprotokoll HTTPbeschrieben. Danach geht es um die Installation und Konfiguration des verbreitetenOpen-Source-Webservers Apache 2 mitsamt der Web-Programmiersprache PHP.

� Kapitel 14, »Weitere Internet-Serverdienste«, befasst sich mit diversen weiteren Ser-vern für TCP/IP-basierte Netzwerke: dem Nameserver BIND, dem Verzeichnisdienst-Server OpenLDAP, dem FTP-Server vsftpd sowie dem Universal- oder Metaserverxinetd.

� Kapitel 15, »XML«, stellt die eXtensible Markup Language vor, eine Sprache, die derDefinition beliebiger hierarchisch gegliederter Dokumentformate dient. In zahlreichenAnwendungen wird XML inzwischen eingesetzt, so dass es nützlich ist, die Konzeptedieses Formats zu kennen. Sie erfahren das Wichtigste über wohlgeformte Doku-mente, über Formatbeschreibungen mit Hilfe von DTDs und XML Schema, die Um-wandlung von XML-Dokumenten mit XSLT sowie über die Programmierung XML-ba-sierter Anwendungen.

� Kapitel 16, »Weitere Datei- und Datenformate«, widmet sich den wichtigsten Forma-ten für Text, Bild und Multimedia. Es geht zunächst um Text und Zeichensätze, an-schließend werden verschiedene textbasierte und binäre Dateiformate konkret erläu-tert.

� In Kapitel 17, »Webseitenerstellung mit (X)HTML und CSS«, wird zunächst HTML be-ziehungsweise XHTML vorgestellt, die Sprache, in der Webseiten verfasst werden. Hierwerden verschiedene konkrete Aspekte der Webseitenerstellung erläutert, etwa dieTextstrukturierung, der Listen- und Tabellensatz, das Einbetten von Bildern, Hyper-links und Webformulare. Wichtige Neuerungen aus HTML5 werden jeweils an denpassenden Stellen genannt. Der zweite Teil beschreibt das konsistente Layout vonWebseiten mit Cascading Style Sheets (CSS), samt einer Einführung in die wichtigstenNeuerungen von CSS3.

� In Kapitel 18, »Webserveranwendungen«, erfahren Sie, wie Sie Websites erstellen, dienicht nur aus statischen HTML-Dokumenten, sondern auch aus dynamisch generiertenInhalten bestehen. Zuerst wird die Programmiersprache PHP 5 behandelt. Neben denallgemeinen Konzepten wird die Programmierung konkreter, datenbankbasierter An-wendungen beschrieben. Danach geht es um das moderne Web-Framework Ruby onRails.

� Kapitel 19, »JavaScript und Ajax«, stellt die wichtigste clientseitige Programmierspra-che vor, mit der Sie die Inhalte einer Webseite »zum Leben erwecken« können. Zu-nächst werden die klassischen Anwendungen wie die Ausgabe ins Dokument selbst,die Verarbeitung von Formularen oder der Austausch von Bildern behandelt, anschlie-

21

Vorwort

ßend erfahren Sie das Wichtigste über DOM, die Standardtechnik, mit der Sie die Ele-mente eines Dokuments nachträglich modifizieren können, sowie Ajax, um die Inhaltefür diese Änderungen ohne Neuaufbau der Seite vom Server nachzuladen. Zuletzt gibtes noch einen Schnellüberblick über jQuery als Beispiel für eine der immer häufigerverwendeten komfortablen JavaScript-Ajax-Bibliotheken.

� Kapitel 20, »Computer- und Netzwerksicherheit«, befasst sich mit verschiedenen The-men der immer wichtiger werdenden Sicherheit: Der Schutz vor Viren, Würmern undTrojanern wird ebenso behandelt wie Kryptographie, Firewalls oder Fragen der Daten-sicherheit.

Nach den Kapiteln folgen noch drei Anhänge:

� Anhang A, »Glossar«, enthält kurze Beschreibungen der wichtigsten IT-Stichwörter.

� In Anhang B, »Zweisprachige Wortliste«, finden Sie ein deutsch-englisches und einenglisch-deutsches Verzeichnis wichtiger Fachbegriffe.

� Anhang C, »Kommentiertes Literatur- und Linkverzeichnis«, empfiehlt weiterführendeBücher und Webressourcen zu den Themen der verschiedenen Kapitel.

Für wen ist dieses Buch geeignet?

In erster Linie können Sie mit diesem Handbuch etwas anfangen, wenn Sie eine Ausbil-dung im IT-Bereich oder in verwandten Berufen absolvieren. Es wurde insbesondere fürden im Titel genannten Ausbildungsberuf des Fachinformatikers in den beiden Fachrich-tungen Anwendungsentwicklung und Systemintegration geschrieben, dürfte aber auchfür IT-Systemelektroniker oder IT-Systemkaufleute gut geeignet sein. Genau wie in IhrerAusbildung werden auch in diesem Buch viele verschiedene Themenbereiche behandelt:Da Computer sehr komplexe Maschinen sind, ist es erforderlich, sich ein großes Spektrumverschiedener Kenntnisse anzueignen, selbst dann, wenn Sie nur in einem bestimmtenFachbereich arbeiten möchten.

Auch für Studenten im Grundstudium der Informatik oder in den Informatikkursen ande-rer Studienrichtungen ist das Buch durchaus geeignet. Gerade der Mittelweg zwischenDarstellung der theoretischen Grundlagen und praktischer Anleitung dürfte für Sie einewichtige Lücke schließen.

Zu guter Letzt ist dieses Buch aber natürlich auch für alle anderen geeignet, die an Com-putern, Programmierung oder Netzwerken interessiert sind. Es eignet sich nicht nur alsUnterrichtsbegleiter, sondern auch zum Selbststudium einzelner Themen. Die einzige Vo-raussetzung ist im Grunde genommen, dass Sie einen Computer zur Verfügung haben undgrundsätzlich wissen, wie Sie damit umgehen.

22

Vorwort

Zum Komplexitätsniveau ist noch anzumerken, dass dies weder ein Buch für absoluteNeueinsteiger noch ein Begleiter für vollkommene Experten ist. Wenn Sie noch nie mit ei-nem Computer gearbeitet haben, benötigen Sie eine grundlegendere Anleitung; im vorlie-genden Buch erfahren Sie nicht, wie Sie das Gerät in Betrieb nehmen, Ihre Arbeit als Dateispeichern, einen Ordner anlegen oder einen Webbrowser bedienen. All diese Dinge (undnoch einige mehr) müssen klar sein, bevor Sie etwas Sinnvolles mit diesem Handbuch an-fangen können. Wenn Sie dagegen bereits Erfahrung haben, gibt es wahrscheinlich einigeThemen, über die Sie noch nicht Bescheid wissen. In diesem Fall finden Sie möglicher-weise hier, was Sie suchen.

Icons

Um das Buch für Sie übersichtlicher und damit noch nützlicher zu machen, finden Sie anmanchen Stellen die folgenden zwei Symbole in der Randspalte:

Dieses Icon markiert einen hilfreichen Tipp, eine Abkürzung oder eine nützliche Zusatz-information.

Mit diesem Symbol werden Warnungen gekennzeichnet. Sie sollten sie ernst nehmen, umkeine unnötigen Datenverluste oder Fehlfunktionen zu erleiden.

Danksagungen

Zunächst einmal, wie immer, vielen Dank an das Team von Galileo Press. Dass diesesBuch so gut aussieht, angenehm in der Hand liegt, ordentlich gebunden ist und sogar einLesebändchen besitzt, ist den Bemühungen des Verlags zu verdanken. Besonderer Dankgebührt wieder einmal meinem Lektor Stephan Mattescheck, der für die inhaltliche Seitezuständig ist und dieser Verantwortung stets mit Bravour gerecht wird. Vielen Dank auchan die Korrektorin Petra Biedermann, die mir bei der Korrektur weit über die reine Recht-schreib- und Grammatikkorrektur hinausgehende, wertvolle, inhaltliche Hinweise gege-ben hat.

Ich danke auch den zahlreichen Lesern der ersten vier Auflagen, die mir nette Kommen-tare und auch Hinweise auf vorhandene Fehler zugeschickt haben. Durch diesen wert-vollen Beitrag konnte ich viele Stellen noch entscheidend verbessern oder klarer formu-

IHK-Fragen und Beispiellistings im Internet

Unter http://www.buecher.lingoworld.de/fachinfo/ finden Sie alle im Buch abgedrucktenBeispiellistings, so dass Sie diese nicht abtippen müssen. Außerdem finden Sie dort Fragen,mit denen Sie sich auf die IHK-Prüfung vorbereiten können, ein Diskussionsforum sowiejeweils aktualisierte Literatur- und Linklisten.

23

Vorwort

lieren. Die fast durchweg positive Resonanz auf die vier Vorauflagen hat nicht nur zumeinem Wohlbefinden beigetragen, sondern auch die Motivation zum Schreiben des vor-liegenden Buches gesteigert.

Eine Danksagung wäre nicht komplett, wenn sie nicht auch die wichtigsten Menschen inmeinem Leben einschließen würde: meine Familie. Vor allem mein Sohn und meine Frauhaben wieder einmal unzählige Stunden auf mich verzichten müssen und waren immerfür mich da. Meine Frau hat zudem diverse Infografiken für dieses Buch angefertigt.

Sascha Kersken

25

In der Informatik geht es genauso wenig um Computerwie in der Astronomie um Teleskope.– Edsger W. Dijkstra

1 Einführung

In diesem Kapitel erhalten Sie einen Überblick über die wichtigsten Grundlagen der Infor-mationstechnik: eine Abgrenzung der verschiedenen Fachrichtungen und Ausbildungs-gänge der Informatik, die Entwicklungsgeschichte der Computer sowie eine allgemeineÜbersicht über die digitale Speicherung verschiedener Arten von Informationen.

1.1 Informationstechnik, Informatik und EDV

Allgemein gesprochen geht es in diesem Buch um Informationstechnik (englisch: informa-tion technology oder kurz IT). Der traditionelle Begriff für diese Art der Technik lautet elek-tronische Datenverarbeitung (EDV). Daten oder Informationen sind Werte, die im Zusam-menhang mit beliebigen Sachverhalten angelegt werden oder die im Rahmen von Mess-oder Rechenvorgängen anfallen. Datenverarbeitung ist der Vorgang der Sammlung, Spei-cherung und Manipulation dieser Informationen. Im Lauf der Zeit haben sich unterschied-liche Verfahren der Datenverarbeitung entwickelt:

Arten der Datenver-arbeitung

� Die manuelle Datenverarbeitung führt Berechnungen und Datenmanipulationen ohnejegliche Hilfsmittel durch; sie basiert auf Kopfrechnen und Auswendiglernen. Das äu-ßerste erlaubte Hilfsmittel ist ein Schreibblock, um Daten oder Zwischenergebnisse zunotieren.

� Die mechanische Datenverarbeitung verwendet mechanische Hilfsmittel für die Verar-beitung von Informationen, beispielsweise eine mechanische Schreibmaschine oder ei-nen Rechenschieber.

� Bei der elektrischen Datenverarbeitung werden elektrisch betriebene Geräte als Hilfs-mittel eingesetzt, zum Beispiel elektrische Schreibmaschinen oder klassische Regis-trierkassen.

� Die elektronische Datenverarbeitung verwendet schließlich elektronisch gesteuerte Ar-beitsmittel, also Elektronenrechner oder Computer.

26

Einführung1

1.1.1 Fachrichtungen der Informatik

Die wissenschaftliche Fachrichtung, die sich mit den verschiedenen Aspekten der Compu-tertechnik auseinandersetzt, wird seit den 60er Jahren des 20. Jahrhunderts als Informa-tik (englisch: computer science) bezeichnet; es handelt sich um ein Kunstwort aus Informa-tion und Mathematik. Die akademische Informatik wird üblicherweise in vierFachrichtungen unterteilt:

� Die theoretische Informatik betrachtet insbesondere die mathematisch-logischenGrundlagen, die der Verwendung und Programmierung von Computern zugrunde lie-gen. Es geht beispielsweise um die Berechenbarkeit (ist ein Problem überhaupt durchBerechnung lösbar?) und um Automatentheorien – die mathematisch-formalen Mo-delle, auf denen Rechner unabhängig von der elektronischen Machbarkeit aufbauen.

� Die technische Informatik beschreibt die elektronisch-technischen Eigenschaften derBauteile, aus denen Computer zusammengesetzt sind. Ein wichtiges Teilgebiet dertechnischen Informatik ist die Schaltalgebra, die Umsetzung logischer Operationendurch elektronische Schaltungen.

� In der praktischen Informatik geht es im Großen und Ganzen um die Programmierungvon Computern und die Mittel, die dazu erforderlich sind. Die Erforschung des Auf-baus von Betriebssystemen und Programmiersprachen-Compilern sowie deren Imple-mentierung (praktische Umsetzung) sind die wichtigsten Teilgebiete.

� Die angewandte Informatik kümmert sich gewissermaßen um alles andere, nämlichum sämtliche Nutzanwendungen von Computern. Das reicht von Datenbanken überdie Netzwerkkommunikation bis hin zu Grafik, Animation und Audio-/Videobearbei-tung.

Da es sich bei diesem Buch um ein Praxisbuch handelt, das nicht für das trockene Auswen-diglernen von Lehrsätzen geschrieben wurde, sondern für die alltägliche Nutzung vonComputern, ist es kaum verwunderlich, dass sich fast alle Kapitel mit Aspekten der ange-wandten Informatik beschäftigen. In den Kapiteln 5 bis 10 werden auch die wichtigstenAnsätze der praktischen Informatik, nämlich Betriebssysteme und diverse Themen derProgrammierung, behandelt.

Einige grundlegende Aspekte der theoretischen Informatik lernen Sie in Kapitel 2, »Ma-thematische und technische Grundlagen«, kennen: Dort werden die wichtigsten mathe-matischen und logischen Operationen besprochen, die Computer ausführen. Außerdemwird beispielhaft auf die Realisierung einiger dieser Funktionen durch elektronische Bau-teile eingegangen, also auf einige Ansätze der technischen Informatik.

Im Übrigen gibt es noch ein eigenes Kapitel zum Thema Hardware, die ebenfalls dem Ge-biet der technischen Informatik zugeordnet werden kann (Kapitel 3, »Hardware«).

27

Informationstechnik, Informatik und EDV 1.1

1.1.2 Überblick über die IT-Ausbildung

Das Berufsfeld der Informationstechnik ist vielfältig. Deshalb gibt es zahlreiche unter-schiedliche Möglichkeiten einer Ausbildung in diesem Bereich. Sie lassen sich zum einennach Fachgebieten wie Anwendungsentwicklung, Systemintegration oder kaufmänni-schem EDV-Einsatz unterscheiden. Zum anderen gibt es zwei grundlegende Ausbildungs-formen: Berufsausbildung und Studium.

Überblick Ausbildungs-gänge

Aus diesen beiden Unterteilungen ergeben sich unter anderem folgende konkrete Ausbil-dungsgänge:

� Ausbildungsberufe

� Fachinformatiker/in mit den Fachrichtungen Anwendungsentwicklung und Sys-temintegration

� IT-Systemelektroniker/in

� IT-Systemkaufmann/frau

� Informatikkaufmann/frau

� Studiengänge

� Informatik

� Informatik (FH)

� Wirtschaftsinformatik

� Medieninformatik

� Bioinformatik

� medizinische Informatik

Ausbildungsberufe

Bis etwa Mitte der 1990er Jahre galt die Informationstechnik als zu komplex, um in einerpraxisorientierten Berufsausbildung im klassischen dualen System (Ausbildungsbetrieb –Berufsschule) gelehrt zu werden. Die beiden angebotenen Ausbildungen zum EDV-Kauf-mann und Büromaschinenelektroniker hatten andere Schwerpunkte, nämlich einen kauf-männischen beziehungsweise elektrotechnischen Fokus.

IT-BerufeErst 1996 wurden die IT-Berufe in der Bundesrepublik durch ein Übereinkommen vonArbeitgeberverbänden und Gewerkschaften unter Beratung des Bundesinstituts für Be-rufsbildung (BiBB) neu geordnet. Seitdem gibt es vier verschiedene IT-Ausbildungsberufe.Sie bereiten auf Tätigkeiten im Bereich der Informations- und Telekommunikationstech-nik vor, die früher Bewerbern mit Studienabschluss vorbehalten waren oder in Einzelfäl-len an qualifizierte Quereinsteiger vergeben wurden. Nach 15 Jahren Erfahrung hat sichdas System bewährt, und ein signifikanter Anteil von Mitarbeitern in der IT rekrutiert sichaus Absolventen dieser Ausbildungsgänge.

28

Einführung1

Im Einzelnen handelt es sich um folgende Ausbildungsgänge:

� Fachinformatiker/in (Fachrichtungen Anwendungsentwicklung und Systemintegration)

� IT-Systemelektroniker/in

� IT-Systemkaufmann/frau

� Informatikkaufmann/frau

Fachinfor-matiker

Aufgabe der Fachinformatiker ist es gemäß offizieller Definition, »fachspezifische Anfor-derungen in komplexe Hard- und Softwaresysteme« umzusetzen. Diese recht ungenaueBeschreibung läuft in der Praxis auf sehr vielfältige Anforderungen hinaus, da sich nichtnur die beiden Fachrichtungen Anwendungsentwicklung und Systemintegration, sondernvor allem auch Ausbildungsbetriebe und Einsatzumgebungen oft stark voneinander unter-scheiden. Gemeinsam ist ihnen allen lediglich der Umgang mit Computersystemen, mitNetzwerken, mit der unterschiedlichsten Software und dem komplexen Zusammenspieldieser Komponenten. Verallgemeinert kann man sagen, dass der Ausbildungsgang An-wendungsentwicklung auf den Beruf des Entwicklers oder Programmierers vorbereitet,während sich aus den Absolventen der Systemintegration vor allem Systemadministrato-ren rekrutieren.

Die beiden Berufsbilder sollen sich im Laufe der drei Ausbildungsjahre allmählich ausein-anderentwickeln. Bei Ausbildungsbeginn stehen gemeinsame Grundlagen im Vorder-grund. Dazu gehören nicht nur fachspezifische Themen, wie sie in diesem Buch behandeltwerden, sondern auch wichtige Informationen zum Arbeitsablauf und zum betrieblichenUmfeld. Dies sind insbesondere Grundlagen der Betriebswirtschaftslehre, der Projekt-und Betriebsorganisation, des Arbeits- und Ausbildungsrechts sowie der betrieblichenBuchführung. Diese Kenntnisse werden vor allem in der Berufsschule (60 Tage pro Aus-bildungsjahr) vermittelt.

Anwendungs-entwicklung

Der Schwerpunkt des Fachbereichs Anwendungsentwicklung ist die Erstellung von Soft-ware für den eigenen Betrieb oder für Kunden. Der erste Schritt ist die Entwicklung neueroder die Anpassung vorhandener Programme gemäß den Anforderungen der späterenAnwender. Es folgt die Einrichtung der Software auf den gewünschten Systemen, die geg-ebenenfalls dafür angepasst werden müssen. Anschließend sollen die Benutzer informiertoder gar geschult werden. In das Umfeld des Berufsbildes gehört demzufolge auch die Er-stellung brauchbarer Dokumentationen für Entwickler, Administratoren und Endanwen-der.

System-integration

Im Fachbereich Systemintegration liegen die Hauptaufgaben im Bereich der Hardware-,Software- und Netzwerkeinrichtung. Hier sind gute Kenntnisse der verschiedenen Hard-warekomponenten, Betriebssysteme sowie der Netzwerkgeräte, -dienste und -protokollegefragt. Auch die Schnittstellen zwischen der Informations- und der Telekommunika-

29

Informationstechnik, Informatik und EDV 1.1

tionstechnik spielen in diesem Beruf eine wichtige Rolle. Die Fachinformatiker im Fach-bereich Systemintegration müssen das projektorientierte Arbeiten beherrschen und dabeialle Aufgaben planen, durchführen, testen und dokumentieren.

Ein weiteres, sehr wichtiges Arbeitsgebiet ist die Automatisierung administrativer Aufga-ben. Dazu benötigen die Fachinformatiker Systemintegration umfangreiche Kenntnisseder Shells (Kommandozeileninterpreter) der jeweiligen Betriebssysteme sowie in ver-schiedenen Skriptsprachen. Unter Windows beginnt dies mit DOS/Windows-Batchda-teien und CMD-Dateien; für komplexere Aufgaben sind auch der Windows Scripting Hostund die Windows PowerShell nützlich. Im Unix-Bereich ist die bash-Shell das grundle-gende Werkzeug; größere Aufgaben werden dagegen mit Editor- und Skriptsprachen wiesed, awk und Perl gelöst, wobei Perl die wichtigste dieser Sprachen ist und bei fortge-schrittenen Kenntnissen alle anderen ersetzen kann. In Kapitel 6 bis 10 dieses Buches wer-den die wichtigsten Kenntnisse zu diesen Shells und Sprachen vermittelt.

IT-System-elektroniker

Der Beruf des IT-Systemelektronikers ist elektrotechnischer orientiert als der des Fachin-formatikers. Mehr als beim Fachinformatiker der Fachrichtung Systemintegration liegtder Schwerpunkt hier im Bereich der Hardware. Zu den wichtigsten Aufgaben gehört dieVerkabelung von Computern und Netzwerken, angefangen bei der Stromversorgung überden Anschluss von Peripheriegeräten bis hin zu Besonderheiten der Netzwerkinfrastruk-tur. Dazu benötigen IT-Systemelektroniker ein umfangreiches Know-how über Hard-warekomponenten und Treiber sowie über deren Zusammenarbeit mit Betriebssystemenund Anwendungsprogrammen. Hinzu kommen Kenntnisse über DSL, ISDN und andereTelekommunikationstechniken. Zu den wichtigsten Arbeitgebern für Systemelektronikergehören große Telefongesellschaften, so dass deren spezifische Anforderungen dieses Be-rufsbild wesentlich geprägt haben.

IT-System-kaufleute

IT-Systemkaufleute sind im Wesentlichen die Kundenberater für Hard- und Software-projekte. Sie verfügen über technisches Know-how, so dass sie die Einzelheiten von IT-Projekten verstehen und den Kunden erklären können, und benötigen umfangreiche be-triebswirtschaftliche und kaufmännische Kenntnisse, um die Kalkulation für ein solchesProjekt durchführen zu können. Sie sind für alle Phasen der Kundenbetreuung für IT-Lö-sungen zuständig: angefangen bei der Marktanalyse über Beratung und Marketing bis hinzum Vertrieb sowie zur Einarbeitung und Schulung.

Informatik-kaufleute

Bei den Informatikkaufleuten stehen die kaufmännischen Aufgaben stärker im Vorder-grund, während die technischen Aspekte etwas weniger ausgeprägt sind. Sie bilden dasBindeglied zwischen wirtschaftlichen und technischen Abteilungen. Typischerweise ver-mitteln sie zwischen den Kunden, die vor allem wirtschaftliche Fragen haben, und den Be-ratern der Hard- und Softwarehersteller (oft den oben genannten IT-Systemkaufleuten),die eine eher technische Sicht auf Vorgänge benötigen. Beispielsweise könnten Informa-tikkaufleute die technische Umsetzung von Geschäftsprozessen anleiten und entspre-

30

Einführung1

chende Pflichtenhefte erstellen. Eine weitere Aufgabe wäre es, die Unterschiede verschie-dener IT-Lösungen in kaufmännisch kalkulierbaren Zahlen auszudrücken.

Alle IT-Ausbildungen – mit Ausnahme zweijähriger Umschulungsmaßnahmen – beinhal-ten eine (ausschließlich theoretische) Zwischenprüfung. Es besteht Teilnahmepflicht, aberdas Ergebnis ist rein informativ – sowohl für die Auszubildenden als auch für die Betriebe.

Abschluss-prüfung

Die Abschlussprüfung besteht aus einer selbstgewählten Projektarbeit, die von der jeweilszuständigen Industrie- und Handelskammer genehmigt werden muss. Ihre Dauer beträgtbei den Fachinformatikern des Fachbereichs Anwendungsentwicklung 72 Stunden, wobeiauch ein Pflichtenheft erstellt werden muss. Bei den anderen Ausbildungsgängen beträgtdie Dauer lediglich 36 Stunden, und der Projektablauf beschränkt sich hier auf die vierPhasen Planung, Durchführung, Test und Abnahme.

Innerhalb der veranschlagten Zeit müssen sowohl das Projekt selbst als auch eine umfang-reiche Dokumentation dazu erstellt werden; Letzteres sollte etwa acht Stunden der Pro-jektdauer ausmachen. Die Dokumentation wird bei der IHK eingereicht; zudem müssendie Auszubildenden ihre Projekte dort präsentieren und ein Fachgespräch dazu führen.Wichtige Hinweise zum projektorientierten Arbeiten erhalten Sie in Kapitel 11, »Soft-ware-Engineering«.

Die zweite Säule der Abschlussprüfung bildet die bundeseinheitliche schriftliche Prüfung.Sie besteht aus drei Teilen:

� Zwei ganzheitliche Aufgaben (GA) beschreiben je ein virtuelles IT-Szenario und stellensechs komplexe Fragen dazu. Die Auszubildenden müssen eine dieser Fragen, mit de-ren Thema sie sich am wenigsten auskennen, streichen, und die übrigen fünf ausführ-lich beantworten. Maximal sind dabei für jede beantwortete Frage 20 Punkte, das heißtinsgesamt 100 für jede GA erreichbar. Die GA 1 enthält fachspezifische Fragen für denjeweiligen Ausbildungsgang, während die GA 2 die für alle IT-Ausbildungsberufe iden-tische Kernqualifikation abfragt. Für jede GA sind 90 Minuten angesetzt.

� Der dritte Teil ist eine 60 Minuten dauernde Prüfung zu den Themen Wirtschaft undSoziales einschließlich Arbeits- und Ausbildungsrecht. Diese Prüfung besteht aus iso-lierten Fragen, wobei einige offen, viele dagegen im Multiple-Choice-Verfahren zu be-antworten sind.

Ausbildungund dieses

Buch

In Tabelle 1.1 sehen Sie, welche Kapitel dieses Buches für die Auszubildenden der einzel-nen Fachrichtungen besonders nützlich (×) oder unerlässlich (+) sind. Wenn ein Kapitelfür Ihren Beruf nicht angekreuzt wurde, bedeutet dies nicht, dass Sie sich gar nicht mitdiesem Thema beschäftigen sollten! Wie bereits im Vorwort erwähnt, ist ein möglichstgründliches Allgemeinwissen eine der wichtigsten Voraussetzungen für den beruflichenErfolg. Zudem verstehen Sie Zusammenhänge der IT- und Medienwirtschaft umso besser,je größer Ihr Überblick ist.

31

Informationstechnik, Informatik und EDV 1.1

Studiengänge

Die Studiengänge im Bereich der Informationstechnik sind wesentlich gründlicher, dafüraber auch viel theoretischer orientiert als die betrieblichen Ausbildungsgänge. Neben denhier behandelten Studienfächern der Informatik gibt es übrigens auch angrenzende Fach-gebiete wie Telematik, Elektrotechnik, Mechatronik oder angewandte Mathematik.1

InformatikDas allgemeinste Spektrum bietet das Studium der Informatik. Das Grundstudium umfasstEinführungen in alle vier Disziplinen des Faches (theoretische, technische, praktische undangewandte Informatik). Im Hauptstudium ist dagegen eine Spezialisierung auf einenbestimmten Bereich innerhalb eines dieser Zweige vorgesehen. Denkbar wären etwaBetriebssysteme aus dem Gebiet der praktischen Informatik oder Datenbanken, die zurangewandten Informatik zählen.

Kapitel Kurzname Fachinf.Anwend.

Fachinf.Systemint.

Kaufl. IT-System-elektr.

1 Einführung + + + +

2 Math.-Tech. + + × +

3 Hardware × + × +

4 Netzwerk + + × +

5 Betriebssyst. + + × +

6 Windows + + × +

7 Linux + + × +

8 Mac OS X + + × +

9 Grundl. Prog. + + × +

10 Konzepte Prog. + × ×

11 Softw.-Engin. + + + +

12 Datenbanken + + × ×

13 Webserver × + ×

14 Internet-Serv. × + ×

15 XML + + × ×

16 Datenformate + + × ×

17 HTML/CSS + × × ×

18 Webserv.-anw. + ×

19 JavaScript + ×

20 Sicherheit × + × +

Tabelle 1.1 Die einzelnen Kapitel dieses Buches und ihre Relevanz für die verschiedenen Ausbildungsberufe

1 Für Fachinformatiker Anwendungsentwicklung ist das gesamte Kapitel relevant, für die anderen Ausbil-dungsberufe dagegen vor allem die Ausführungen zum Projektmanagement.

32

Einführung1

Das Informatikstudium wird sowohl an Universitäten als auch an Fachhochschulen ange-boten. Naturgemäß ist Letzteres etwas praktischer orientiert; das Lernen erfolgt besondersim Grundstudium schulähnlicher. In beiden Lehreinrichtungen überwiegen seit wenigenJahren die internationalen Abschlüsse Bachelor und Master; die zuvor dominierendenklassischen Diplomabschlüsse laufen zurzeit aus.

Nebenfächer Wie in jedem mathematisch-naturwissenschaftlichen Studium müssen auch bei der Infor-matik Nebenfächer belegt werden. Die Auswahl ist so vielfältig wie die Anwendungs-bereiche der Informationstechnik: Für theoretischer ausgerichtete Forschungen ist etwadie Mathematik interessant; ein Fach aus dem Bereich der Wirtschaftswissenschafteneröffnet den Zugang zur Entwicklung kaufmännischer Systeme und Anwendungen. Indiversen Bereichen der angewandten Informatik könnten auch Fächer wie Biologie oderPhysik von Interesse sein. Spannend ist auch die Kombination mit philologischenFächern, besonders mit den Sprachwissenschaften oder der philosophischen Logik.

Umgekehrt kann Informatik auch für Studiengänge in allen genannten Fächern als Neben-fach belegt werden.

SpezielleStudiengänge

Einen Schritt weiter als die Wahl eines bestimmten Nebenfaches gehen gezielte Kombina-tionsstudienfächer. Die wichtigsten von ihnen sind folgende:

� Wirtschaftsinformatik: Eine gezielte Kombination aus Themen der (insbesondere an-gewandten) Informatik und der Betriebswirtschaftslehre. Wirtschaftsinformatikerkönnen in allen Bereichen der kaufmännischen IT-Anwendung arbeiten, vor allem inBanken, Versicherungen oder den Fachabteilungen großer Unternehmen, aber auch inder Entwicklung kaufmännischer Softwarelösungen.

� Medieninformatik: Dieser Studiengang stellt den Bereich der multimedialen IT-Anwen-dung in den Mittelpunkt. Neben den Grundlagen der Informatik lernen die Studieren-den vor allem den praktischen IT-Einsatz kennen: Grafik- und Bildbearbeitung, Audio-und Videoschnitt und die Erstellung multimedialer Präsentationen. Von allen IT-Stu-diengängen erfordert dieser das größte kreative Potential.

� Bioinformatik: Die Forschungsergebnisse der modernen Biologie, besonders der Mikro-biologie und der Gentechnik, könnten ohne umfangreiche IT-Unterstützung nicht aus-gewertet werden. Bioinformatiker bilden die Schnittstelle zwischen Biologie und Infor-mationstechnik; sie erstellen die Anwendungen zur Analyse biologischer Forschungen,etwa der Sequenzanalyse von Genen. Die Bioinformatik ist möglicherweise der wachs-tumsstärkste Sektor in der gesamten IT-Landschaft.

� Medizinische Informatik: Auch in der modernen Medizin spielt Computertechnik eineüberaus wichtige Rolle – von der Verwaltung der Patienten- und Diagnosedaten überdie automatisierte Analyse von Laborproben bis hin zum halbautonom arbeitendenOP-Roboter ist der Praxis- und Klinikalltag ohne IT nicht mehr denkbar. In der medi-

33

Die Geschichte der Rechenmaschinen und Computer 1.2

zinischen Informatik erwerben die Studierenden sowohl fundierte medizinische alsauch wichtige informationstechnische Fachkenntnisse, so dass sie in den verschiedens-ten Bereichen der Medizintechnik und -praxis arbeiten können.

Studium und dieses Buch

Die Tiefe des für ein Studium erforderlichen Wissens geht weit über das hinaus, was eineinzelnes allgemeines Grundlagenbuch wie das vorliegende leisten kann. Dennoch kanndieses Buch auch im Studium ein unentbehrlicher Begleiter sein: Hier können Sie dieGrundlagen der Theorie und Praxis der unterschiedlichen Themen schnell und übersicht-lich nachschlagen – als letzte Absicherung vor der entscheidenden Fachklausur oder auchals Anleser für die Veranstaltungsplanung des kommenden Semesters.

1.2 Die Geschichte der Rechenmaschinen und Computer

In diesem Buch ist von Computern die Rede, und natürlich wissen Sie ganz genau, was dasist. Wenn Sie allerdings den Versuch machen sollten, einen Computer mit allen Dimensi-onen seiner heutigen Möglichkeiten griffig zu definieren – wie würde diese Definitionlauten? Vergangene Generationen sprachen etwa von programmgesteuerten Rechenauto-maten, und gerade Fachleute scheinen noch heute lieber »Rechner« als »Computer« zu die-ser Maschine zu sagen.

Sind Computer nur Rechner?

Aber ist Rechnen heutzutage die wichtigste Aufgabe der Computer? Es scheinen schließ-lich mehr Leute einen Webbrowser zu verwenden als die Tabellenkalkulation Excel, unddas Bildbearbeitungsprogramm Photoshop ist erheblich populärer als spezielle Mathema-tiksoftware wie Mathematica oder Maple.

Trotzdem ist ein Computer ein Gerät, das Probleme durch Berechnungen löst: Er kann nurdiejenigen Sachverhalte »verstehen«, die man in Form von Zahlen und mathematischenFormeln darstellen kann. Dass es sich dabei heute auch um Bilder, Töne, Animationen,3D-Welten oder Filme handeln kann, liegt einfach an der enormen Rechengeschwindig-keit und Kapazität moderner Rechner.

Sehen Sie sich den Begriff »programmgesteuerter Rechenautomat« noch einmal genau an:Ein »Rechenautomat« ist ein Gerät, das automatisch etwas berechnet, so dass man diesnicht manuell erledigen muss. Das kann auch ein Taschenrechner oder sogar eine mecha-nische Rechenmaschine. Das Besondere, das ein Computer zu bieten hat, beschreibt derBegriff »programmgesteuert«. Ein Computerprogramm ist eine Abfolge von Rechenvor-schriften, die aufeinander aufbauen können und Schritt für Schritt ausgeführt werden.

AlgorithmenMit anderen Worten ist ein Computer nicht nur ein Rechenautomat, sondern ein Algo-rithmen-Automat. Ein Algorithmus, benannt nach dem arabischen Mathematiker Mo-hamed Ibn Musa Al Chwarismi, ist eine Schritt-für-Schritt-Anleitung zum Lösen mathema-tischer Probleme. Jeder Computer versteht eine oder mehrere formale Sprachen, in denen

34

Einführung1

man ihm solche Algorithmen einprogrammieren kann. Ist ein Algorithmus erst einmal imComputer gespeichert, kann er immer wieder mit anderen Daten ausgeführt werden. Be-trachten Sie etwa den folgenden Algorithmus aus dem Alltagsleben, der die Internet-Nut-zungskosten verschiedener Kunden eines Providers berechnet:

1. Eingabe Tarif: Flatrate oder minutenbasiert?

2. War es die Flatrate? Macht 19,99 €. Berechnung beendet.

3. Minutenbasiert: Eingabe der Minuten.

4. Multipliziere die Minuten mit 0,01 €.

5. Addiere die Grundgebühr von 2,49 € hinzu. Berechnung beendet.

Dieser einfache Algorithmus kann natürlich ohne weiteres von einem Menschen abgear-beitet werden. Er wird zwar langsamer rechnen als ein heutiger Computer, aber durchausinnerhalb einer annehmbaren Zeit damit fertig werden. Andererseits kann der ComputerMillionen solcher Berechnungen in der Sekunde ausführen. Zwar wird er gewisse Leistun-gen des menschlichen Geistes wahrscheinlich niemals erreichen, aber schneller rechnenkann er allemal.

Darüber hinaus gibt es Algorithmen, an denen wir Menschen schlichtweg verzweifelnwürden – oder hätten Sie Lust, jedes einzelne Pixel eines 10 × 10 cm großen hochauflö-senden Bildes anhand der Farben seiner acht umgebenden Pixel neu zu berechnen, umdas Bild zu vergrößern oder zu verkleinern? Ohne Sie entmutigen zu wollen: Ein solchesBild besteht, wenn es für den Druck geeignet sein soll, aus etwa 1.392.400 Pixeln – vielSpaß beim Rechnen!2

So macht der Computer sich selbst immer unentbehrlicher: Sobald Computersysteme einegewisse Komplexität erreichen, wird eine Anwendung erfunden, die ohne sie nicht zu be-arbeiten wäre. Um diese Anwendung dann schneller und effizienter ausführen zu kön-nen, entsteht die nächste Computergeneration, für die dann wieder neue Anwendungsge-biete gefunden werden. Auf diese Weise ist der Fortschritt in der Computerentwicklungnicht aufzuhalten, und was auch immer als unüberwindbare Grenze galt, wurde von cle-veren Ingenieuren irgendwann überschritten. Der vorliegende Abschnitt versucht, diesenWeg ein wenig konkreter zu beschreiben.

1.2.1 Die Vorgeschichte

Seit Menschen überhaupt sesshaft in größeren Gemeinschaften zusammenleben, sind siezum Rechnen gezwungen, um diese Gemeinschaften zu organisieren. Zu diesem Zweckwurden im Laufe der Zeit immer komplexere und ausgeklügeltere Geräte erfunden.

2 Zugrunde gelegt wurde hier die gängige Druckauflösung von 300 Pixeln/Inch, was etwa 118 Pixeln/cmentspricht (1 Inch = 2,54 cm).

35

Die Geschichte der Rechenmaschinen und Computer 1.2

Das erste Rechenhilfsmittel in der Geschichte war die Rechentafel oder der Abakus. Ähn-liche Geräte wurden unabhängig voneinander zum Beispiel in China und im alten Romentwickelt. Es handelte sich um eine Tafel mit verschiebbaren Steinen, die in mehrerenSpalten angeordnet waren. Das Ganze ähnelte den heutigen kugelbestückten Rechenhil-fen, wie sie etwa in Grundschulen eingesetzt werden. Interessant ist, dass die Römer garnicht erst versuchten, ihr recht umständliches Zahlensystem auf den Abakus zu übertra-gen, sondern ein modernes Stellenwertsystem darauf verwendeten.

Stellenwert-systeme

Überhaupt kann die Erfindung der Stellenwertsysteme zum Schreiben von Zahlen als eineder wichtigsten Errungenschaften auf dem Weg zum Computer betrachtet werden: Diebrillante Idee, den Wert einer Ziffer von ihrer Position innerhalb der ganzen Zahl abhän-gig zu machen, hatten die Inder; die heutigen »arabischen« Zahlen wurden in Indien er-funden und später von den Arabern – erstmals durch den bereits genannten Al Chwarismiim 9. Jahrhundert – übernommen. Die wichtigste Erfindung überhaupt ist in diesem Zu-sammenhang die Null. Die indischen Mathematiker notierten sie zunächst als Punkt unddann bis heute als Kreis. Ohne die Null ist es nicht möglich, den Wert einer einzelnen Zif-fer zu vervielfachen: Auch wenn sie für sich allein keinen mathematischen Wert besitzt,werden Sie zugeben, dass 2.000 etwas völlig anderes bedeutet als 2.

Die Erfindung der Stellenwertsysteme war der Ausgangspunkt für die Konstruktion im-mer ausgefeilterer mechanischer Rechenmaschinen: Im 17. Jahrhundert konstruierte derfranzösische Mathematiker und Philosoph Blaise Pascal eine Addiermaschine, 1722 er-fand Gottfried Wilhelm Leibniz eine komplexere Maschine, die bereits sämtliche Grundre-chenarten beherrschte. Solche mechanischen Rechenapparaturen arbeiteten mit einemkomplexen Gefüge aus Zahnrädern und ähnlichen Bauteilen, die aus der Uhrmachereiübernommen wurden.

Babbages Analytical Engine

Erst im 19. Jahrhundert entstand die Idee zu einer Apparatur, die mit heutigen Compu-tern vergleichbar ist. Der britische Wissenschaftler Charles Babbage hatte bereits eineklassische mechanische Rechenmaschine namens Differential Engine gebaut und planteum 1850 den Bau eines weiteren mechanischen Geräts namens Analytical Engine. Essollte der erste frei programmierbare Rechenautomat der Welt werden. Ohne es zu ah-nen, nahm Babbage einige der wichtigsten Designprinzipien des Computers vorweg: DasGerät sollte aus einem Rechenwerk namens »mill«, einem Programm- und Datenspeicherund einer Ein- und Ausgabeeinheit bestehen. Auch wenn spätere Rekonstruktionen aufder Basis von Babbages Aufzeichnungen ergaben, dass die Maschine funktioniert hätte,war Babbage selbst nicht in der Lage, sie fertigzustellen, weil die damalige Mechanikkeine Bauteile in ausreichender Präzision liefern konnte.

Interessant ist dagegen, dass es Grundideen einer Programmiersprache für die AnalyticalEngine gab. Babbage engagierte Ada Lovelace, die Tochter des berühmten Dichters LordByron, für die Entwicklung einer solchen Sprache. Ihr zu Ehren wurde eine in den 1970erJahren entwickelte Programmiersprache Ada genannt.

36

Einführung1

Die Zuse Z3 Während die Rechenmaschinen in der zweiten Hälfte des 19. Jahrhunderts immer leis-tungsfähiger und komplexer wurden, beachtete dennoch niemand den Gedanken der Pro-grammierbarkeit. Alle Rechenmaschinen bis etwa 1940, auch die elektrischen, waren aufdie Berechnung einzelner eingegebener Rechenaufgaben beschränkt. Erst um diese Zeiterfand der Bauingenieur Konrad Zuse in Berlin programmierbare elektromechanischeRechenautomaten. Sein dritter Versuch, die Z3, funktionierte tatsächlich. Die Maschinearbeitete mit Relais, elektromagnetischen Schaltern aus der Telefontechnik. Sie verwen-dete eine binäre Fließkommaarithmetik mit einer Wortbreite von 22 Bit: 1 Bit für das Vor-zeichen, 14 Bit für die Mantisse und 7 Bit für den Exponenten. Der Hauptspeicher besaßeine Kapazität von 64 Maschinenwörtern, also 64 × 22 Bit. Programmiert wurde dieMaschine (und einige ihrer Nachfolger) in einer von Zuse entwickelten Sprache namensPlankalkül.

1.2.2 Die Entwicklung der elektronischen Rechner

Computer im heutigen Sinne sind alle programmierbaren Rechner, die elektronisch arbei-ten. Die elektronischen Computer lassen sich grob in vier Generationen einteilen:

� 1. Generation: RöhrenrechnerAb den 1940er Jahren wurden Rechner auf der Basis von Elektronenröhren entwickelt.

� 2. Generation: TransistorrechnerAb den 1950er Jahren wurden die teuren, stromhungrigen und störungsanfälligenRöhren durch Transistoren ersetzt.

Elektrizität, Elektromechanik und Elektronik

Bereits Anfang des 20. Jahrhunderts wurden die ersten elektrischen Rechenmaschinen kon-struiert. Die Rechner, die Konrad Zuse ab den 1930er Jahren baute, waren elektromecha-nisch. In den 1940er Jahren begann man in den USA und Großbritannien mit der Entwick-lung elektronischer Rechner.

In diesem Zusammenhang ist es wichtig, den Unterschied zwischen Elektrizität, Elektro-mechanik und Elektronik herauszustellen:

� Ein elektrisches Gerät ist jede Maschine, bei der mechanische Bauteile durch elektrischenStrom angetrieben werden.

� Elektromechanisch werden alle Schaltelemente genannt, die durch einen Elektromagne-ten gesteuert werden, beispielsweise die Relais, die Zuse für seine ersten Computer ver-wendete. Mit anderen Worten geschieht die Steuerung des Geräts durch elektrischenStrom, allerdings indirekt durch mechanische beziehungsweise magnetische Bauteile.

� Elektronische Geräte schließlich werden allein durch elektrischen Strom gesteuert – Bau-teile wie die klassische Elektronenröhre oder der neuere Transistor dienen als elektrischgesteuerte Schalter ohne mechanische Teile.

37

Die Geschichte der Rechenmaschinen und Computer 1.2

� 3. Generation: Rechner mit integrierten SchaltkreisenIn den 1960er Jahren gelang es, durch fotolithografische Verfahren große Mengen vonTransistorschaltungen auf Halbleiterplatten unterzubringen – es begann die Entwick-lung der integrierten Schaltkreise (englisch: integrated circuits, abgekürzt ICs, auch»Chips« genannt).

� 4. Generation: Rechner mit MikroprozessorDie frühen ICs waren fest verdrahtet – sie konnten nur eine einzelne, festgelegte Auf-gabe erfüllen. Solche Chips für spezielle Anwendungszwecke gibt es noch heute. An-fang der 1970er Jahre wurden zusätzlich frei programmierbare ICs entwickelt, die manMikroprozessoren nannte. Es dauerte allerdings noch über fünf Jahre, bis die erstenComputer mit diesen Prozessoren konstruiert wurden.

Röhrenrechner

Auf der Grundlage der Forschungen von John von Neumann, der das theoretische Modelleines Computers formulierte, wurden in den USA Geräte wie Harvard Mark I und Mark IIoder der berühmte ENIAC gebaut. Diese erste Generation elektronischer Computer arbei-tete mit Elektronenröhren als Schaltelementen. Diese mit den Glühlampen verwandtenVakuumbauteile wurden ab Ende des 19. Jahrhunderts entwickelt und dienten verschie-denen Zwecken – denken Sie beispielsweise an das Röhrenradio, in dem die Elektronen-röhre als Verstärkerelement eingesetzt wird. Abbildung 1.1 zeigt eine Auswahl verschie-dener Elektronenröhren, die zwischen 1927 und 1960 hergestellt wurden. Das Bildstammt übrigens aus dem virtuellen Physikmuseum der Universität Innsbruck (http://

Abbildung 1.1 Eine kleine Auswahl verschiedener Elektronenröhren

38

Einführung1

exphys.uibk.ac.at/museum/); Herr Professor Denoth stellte es mir freundlicherweise zurVerfügung. Auf der angegebenen Website finden Sie noch viele weitere interessante Bil-der und Informationen zur Physikgeschichte, darunter auch weitere Röhren, die ab 1870entwickelt wurden.

Das für die Computertechnik interessanteste Röhrenmodell war die Triode, die mit ihrendrei Anschlüssen die früheste Verwirklichung eines rein elektronischen Schalters dar-stellt: Einer der drei Anschlüsse dient der Steuerung; wenn dort Spannung anliegt, fließtStrom durch die beiden anderen Anschlüsse.

Programmiert wurden die meisten Röhrenrechner durch Schalter und Steckverbindungenan großen Schalttafeln. Die einzige Möglichkeit, ein bestimmtes Programm für die spätereerneute Ausführung zu »speichern«, bestand darin, den Zustand der Schalttafel aufzuma-len oder zu fotografieren. So dauerte es oft mehrere Stunden, den Computer in die Lagezu versetzen, komplexe Aufgaben zu erfüllen.

Erst allmählich begann man mit der Verwendung von Lochkarten zur Programm- und Da-teneingabe. Die Lochkarte selbst wurde im 19. Jahrhundert erfunden, um mechanischeWebstühle zu steuern. Der Ingenieur Hermann Hollerith, ein Mitbegründer der späterenIBM, setzte sie um 1900 zur Speicherung von Daten einer US-Volkszählung ein, was dieDauer der Ergebnisberechnung mit Hilfe von Rechenmaschinen von den erwarteten Jah-ren auf wenige Wochen reduzierte.

Transistorrechner

Röhrenrechner hatten einige gravierende Nachteile: Sie waren zu groß, zu stromhungrigund wegen der gewaltigen Hitzeentwicklung zu störanfällig. Aus diesen Gründen wurdebald der 1947 erfundene Transistor für die Computerentwicklung eingesetzt. Transistorensind Halbleiterbauteile, die prinzipiell dieselben Schaltaufgaben erledigen können wie dieverschiedenen Arten von Röhren, aber kleiner, billiger und weniger stromhungrig sind.Der Begriff »Halbleiter«, der im Zusammenhang mit Computern immer wieder genanntwird, bezeichnet übrigens ein Material, dessen elektrische Leitungsfähigkeit etwa in derMitte zwischen den Leitern (vielen Metallen) und Isolatoren liegt. Das beliebteste chemi-sche Element zur Fertigung von Halbleiterbauteilen ist Silizium, was der berühmten Ge-gend in Kalifornien, in der sich in den 1960er Jahren zahlreiche Elektronikfirmen ansie-delten, den Namen »Silicon Valley« eingebracht hat.

Miniaturisie-rung durch

Transistoren

Erst durch die Einführung des Transistors gelangte die Elektronik zu ihrer vollen Blüte.Dies zeigte sich vor allem an den Transistorradios, die ab den 1950er Jahren zuhauf ver-kauft wurden. Auch für die entstehende Computerindustrie ergaben sich neue Impulse:Durch die Transistortechnik ließen sich kleinere, leistungsfähigere und weniger störanfäl-lige Rechner konstruieren. Natürlich ist »klein« und »leistungsfähig« relativ. Angesichts ei-nes heutigen PCs oder gar Notebooks waren auch die Transistorrechner monströs, min-destens jedoch so groß wie eine ganze Reihe gewaltiger Kleiderschränke.

39

Die Geschichte der Rechenmaschinen und Computer 1.2

Auch die Transistorrechner wurden anfangs vor allem durch Lochkarten gesteuert. Mitteder 1960er Jahre begann man allerdings mit der Entwicklung von Terminals für dendirekten Dialog mit dem Computer. Ein Programmierer konnte über eine Tastatur Befehleeingeben und ein unmittelbares Feedback erhalten, anfangs über einen Fernschreiber-Endlosdrucker, später über einen Monitor. Die Geschichte der Steuerung von Computernwird in Kapitel 5, »Betriebssystemgrundlagen«, genauer behandelt.

Computer mit integrierten Schaltkreisen

Der Übergang von Transistorrechnern zu Computern mit ICs verlief unspektakulär undallmählich. Bereits in den frühen 1970er Jahren waren deshalb Computer in verschiede-nen Größen verfügbar: Die Großrechner oder Mainframes – vor allem von IBM produ-ziert – bildeten die Rechenzentren von großen Behörden, Versicherungskonzernen oderUniversitäten. Daneben kamen die sogenannten Kleincomputer auf (noch immer größerals die meisten Kleiderschränke); einer der führenden Hersteller war die Digital Equip-ment Corporation (DEC). Die Kleincomputer waren zwar nicht ganz so leistungsfähig wieMainframes, dafür aber flexibler und sogar – mit entsprechend großen LKWs – transport-fähig. Besonders wichtige Beispiele für Kleincomputer sind die Geräte der DEC-PDP-Bau-reihe, die untrennbar mit der Geschichte des Betriebssystems Unix verknüpft ist.

Durch die Verwendung von ICs kam eine weitere Klasse von Geräten hinzu: die soge-nannten Minicomputer. Sie waren etwa so groß wie eine größere Kommode und verhält-nismäßig leicht, aber durch die fortschreitende Miniaturisierung nicht viel weniger leis-

Abbildung 1.2 Eine VAX von Digital Equipment mit Terminals verschiedener Generationen; Quelle: Wikipedia

40

Einführung1

tungsfähig als Kleincomputer. Ein herausragendes Beispiel für den Minicomputer sindspätere Ausgaben der ebenfalls von DEC stammenden VAX-Baureihe (ein älteres Modellsehen Sie in Abbildung 1.2).

Für Klein- und Minicomputer wurden übrigens die ersten standardisierten Betriebssys-teme und Anwendungsprogramme entwickelt. Dies erforderte die Entwicklung leicht ko-pierbarer Speichermedien. Ein wichtiger Schritt in diese Richtung war die Verwendungvon Magnetbandspulen als Datenspeicher; ihr Aussehen und ihre Funktionsweise ent-sprachen den etwa zur selben Zeit verbreiteten Tonbändern.

Mikrocomputer

1971 wurde der erste programmierbare Mikrochip entwickelt, genannt Mikroprozessor.Allgemein wird der Intel 4004 als erster Prozessor betrachtet; später stellte sich aber her-aus, dass ein anderes Unternehmen bereits einige Monate vor Intel einen ähnlichen Chipentwickelt hatte. Allerdings wussten die Intel-Entwickler nichts davon.

Der 4004 war ein 4-Bit-Mikroprozessor. Er konnte also Informationen verarbeiten, dieaus einer Abfolge von vier Einsen oder Nullen bestanden. Mit dieser Wortbreite lassensich sechzehn verschiedene Werte darstellen, zum Beispiel die Zahlen 0 bis 15. Der Pro-zessor verstand verschiedene Arten von grundlegenden Befehlen: Er beherrschte arithme-tische Operationen, also Berechnungen in den Grundrechenarten, und konnte logischeVerknüpfungen und Vergleiche durchführen und auf der Basis ihrer Ergebnisse die »Ent-scheidung« treffen, an einer anderen Stelle im Programm fortzufahren. Die mathematisch-logischen Grundlagen und ihre Verwirklichung durch elektronische Bauteile werden imnächsten Kapitel, »Mathematische und technische Grundlagen«, vorgestellt.

Die erstenPersonal

Computer

Intel unterschätzte zu Anfang die Möglichkeiten des Mikroprozessors; er wurde in Re-chenmaschinen und Ampelanlagen eingebaut, aber nicht in einen Computer. Erst 1975baute die Rechenmaschinenfirma MITS einen einfachen Mikrocomputer-Bausatz, den Al-tair 8800. Er war mit einer Reihe von DIP-Schaltern für die Eingabe der einzelnen Bits undeiner Reihe von Leuchtdioden zur Anzeige der Ergebnisse ausgestattet. Der verwendeteMikroprozessor war der Intel 8080, der bereits 8 Bit verarbeiten konnte. Für dieses zu-nächst nicht besonders nützliche Gerät entwarfen Bastler Schnittstellen für Monitor undTastatur, und ein junger Programmierenthusiast schrieb einen Interpreter (zeilenweisenÜbersetzer) für die einfache Großrechner-Programmiersprache BASIC, der auf dem Gerätlief. Der Programmierer war Bill Gates. Die Entwicklung von Programmiersprachen-Pake-ten für die beginnende Personal- und Homecomputer-Industrie war das erste Geschäfts-feld seiner 1976 gegründeten Firma Microsoft.

Große Verdienste im Zusammenhang mit der PC-Entwicklung haben übrigens die For-scherinnen und Forscher des Xerox PARC (der Name PARC steht für »Palo Alto ResearchCenter«). Diese Forschungseinrichtung in Kalifornien hat eine interessante Geschichte: Zu

41

Die Geschichte der Rechenmaschinen und Computer 1.2

Beginn der 1970er Jahre bekamen die Manager der renommierten Papier-, Druckmaschi-nen- und Kopiererfirma Xerox langsam Angst, denn sie sahen angesichts der schnellenWeiterentwicklung der Computer das Schreckgespenst des »papierlosen Büros« auf sichzukommen. Natürlich weiß man es heute besser; der Papierverbrauch in den Büros hatsich seitdem vervielfacht, weil es einfach und billig ist, Dokumente mal eben auszudru-cken und dann auf Papier zu kontrollieren.

Aber damals konnte das natürlich niemand ahnen. Und so beschloss die Firma Xerox:Wenn die Leute im Büro kein Papier mehr brauchen, dann müssen wir ihnen eben das lie-fern, was sie stattdessen dort benötigen. Dies war der Grundgedanke für die Einrichtungdieses Forscherparadieses. Einige der brillantesten Köpfe der Computertechnik und Infor-matik wurden eingeladen, jeweils fünf Jahre lang, mit fast unbegrenzten finanziellen Mit-teln ausgestattet, zu erforschen, was immer sie wollten. So kam es, dass hier schon Mitteder 1970er Jahre Neuerungen wie eine grafische Benutzeroberfläche, die Dokumentenbe-arbeitung nach dem Prinzip WYSIWYG (»What You See Is What You Get«) oder ein Laser-drucker entwickelt wurden.

Im Prinzip existierte dort ein marktreifes Personal-Computer-System, dessen technischeFähigkeiten erst über 15 Jahre später zum allgemeinen Standard wurden. Der einzigeNachteil dieses Systems, des Alto, war sein außerordentlich hoher Preis von ca. 100.000US-Dollar. Jedenfalls wurde Xerox PARC so auch die Wiege des lokalen Netzwerkes: DieVision war, dass jeder Mitarbeiter eines Unternehmens ein solches Gerät auf seinemSchreibtisch stehen hat und der Austausch von Daten ganz einfach ist. So entstand Ether-net, diejenige Form des lokalen Netzes, die heute – neben dem drahtlosen WLAN – amhäufigsten genutzt wird.

Sollten Sie sich jetzt wundern, warum keine dieser bahnbrechenden Entwicklungen heuteden Namen Xerox trägt, so liegt dies daran, dass die Führungsetage des Unternehmens imfernen New York deren Brillanz und zukunftsweisende Eigenschaften nicht erkannte. Sowurden die Entwicklungsergebnisse der meisten Forscher von diesen mitgenommen,jahrelang in die Schublade gelegt und später oftmals zur Gründung anderer Firmen ver-wendet.

John Warnock etwa, eine Zeit lang Forschungsleiter von PARC, gründete die Firma Adobeund konzentrierte sich besonders auf die Bereiche WYSIWYG und den Laserdrucker. An-dere Ergebnisse wurden freimütig an Fremde weitergegeben, so etwa die Geheimnisseder grafischen Oberfläche an den Apple-Mitbegründer Steve Jobs, der darin die Grund-lage für den Computer der Zukunft erkannte. Zusammen mit dem Bastelgenie Steve Woz-niak entwarf er den ersten verbreiteten »richtigen« Personal Computer auf Mikroprozes-sorbasis: Apple II hieß das 1977 entstandene Gerät, das sich in seinen verschiedenenVersionen bis 1984 Millionen Mal verkaufte. Dieser Computer definierte für fast zehnJahre, was ein Homecomputer haben musste: einen eingebauten BASIC-Interpreter, eine

42

Einführung1

fest in das Gerät integrierte Tastatur, gewöhnliche Audiokassetten und später Diskettenals Datenspeicher sowie einen Anschluss für die Bildausgabe auf einem gewöhnlichenFernseher (die privaten Anwender oder kleine Unternehmen konnten sich nicht auchnoch einen Monitor leisten, zumal es diesen zu dem Zeitpunkt nur einfarbig gegebenhätte).

Der IBM-PC 1981 stieg auch der Großrechner-Multi IBM in das Geschäft mit Personal Computern ein.Es war zwar untypisch für dieses Unternehmen, nicht alle Bauteile eines Computers selbstzu entwickeln, aber aus Gründen des Zeitdrucks kauften sie sich die Bestandteile ihres Ge-räts auf dem freien Markt zusammen. Der IBM-PC war nicht unbedingt besser als seineVorgänger, aber allein der gute Name des Herstellers schuf das Vertrauen der Wirtschaftund der Industrie, dass PCs eine solide und zukunftsträchtige Technologie seien.

Einige Jahre war IBM Marktführer im Bereich der Personal Computer. Da jedoch immermehr Hersteller kompatible Nachbauten auf den Markt brachten, die zunehmend billigerwurden, verlor der Konzern irgendwann den ersten Platz. Zudem zerstritten sie sich 1990mit ihrem Betriebssystemlieferanten Microsoft. Seitdem wurde nicht mehr von IBM defi-niert, wie ein »richtiger PC« auszusehen hat, sondern von Intel und Microsoft – wegen derKombination aus Intel-Prozessoren und Microsoft-Windows-Betriebssystemen wurdenPCs in den 1990er Jahren mitunter als »WinTel«-PCs bezeichnet.

8-Bit-Home-computer

Parallel blühte in der ersten Hälfte der 1980er Jahre der Markt mit reinen Homecompu-tern ohne professionelle Ambitionen. Interessant war auf diesem Gebiet zunächst derZX81 (siehe Abbildung 1.3), den der Brite Clive Sinclair entwickelt hatte. Trotz seiner be-scheidenen Ausstattung mit 1 KByte Arbeitsspeicher, Schwarzweißgrafik und Folientasta-tur verkaufte sich das Gerät vorzüglich, weil es der erste Computer war, der weniger als100 £ (damals etwa 400 DM, also ca. 200 EUR) kostete.

Abbildung 1.3 Der Sinclair ZX81 (Quelle: Wikipedia)

43

Die Geschichte der Rechenmaschinen und Computer 1.2

Der beliebteste Homecomputer der 8-Bit-Generation wurde allerdings der 1983 auf denMarkt gebrachte Commodore C64. Eines der wichtigsten Verkaufsargumente war diereichhaltige Auswahl an Software, vor allem Computerspielen. In Abbildung 1.4 wird die-ses Gerät gezeigt. Ein nicht ganz so beliebtes, aber durchaus konkurrenzfähiges Gerät warder Atari 800 XL; für diesen gab es zwar weniger Spiele, aber dafür war er besser pro-grammierbar. Die Unterschiede zwischen diesen beiden Geräten waren allerdings relativgering. Beide waren mit dem 8-Bit-Prozessor 6502 von MosTek ausgestattet, verfügtenüber 64 KByte RAM, eine Grafik mit 320 × 240 Pixeln und 16 Farben (Atari bei einergeringeren Auflösung sogar 256) sowie mehrstimmigen Synthesizer-Sound, der an das an-geschlossene Fernsehgerät übertragen wurde. Obwohl die beiden Rechner sich alsotechnisch sehr ähnlich waren, tobten zu jener Zeit »Systemkriege«, die sich ohne weiteresmit den heutigen PC/Macintosh- oder Linux/Windows-»Glaubenskriegen« vergleichenlassen.3

16-Bit-Home-computer

Die nächste Generation von Homecomputern, die in der zweiten Hälfte der 1980er Jahreerschien, basierte auf dem 16-Bit-Prozessor 68000 von Motorola und seinen Nachfolgernund war mit »richtigen« Betriebssystemen mit grafischer Benutzeroberfläche ausgestattet.Wieder stritten sich Commodore und Atari um den ersten Platz; auch die verschiedenenModelle von Commodore Amiga und Atari ST waren mit vergleichbaren Features ausge-stattet. Schon früher, nämlich 1984, war der ähnlich gestaltete Apple Macintosh erschie-nen; allerdings war er nicht für Heimanwender konzipiert.

3 Um mich selbst zu outen: Mein eigener erster Rechner war ein ZX81, dem ein Atari 800 XL folgte. Späterhatte ich dann sehr lange nur noch IBM-kompatible PCs. Inzwischen sind noch ein MacBook und einNetbook (Samsung NC10) dabei. Sämtliche in diesem Buch beschriebene Betriebssysteme sind auf diesenRechnern im Einsatz und kommen prima miteinander aus.

Abbildung 1.4 Commodore C64, der berühmte »Brotkasten« (Quelle: Wikipedia)

44

Einführung1

Bemerkenswert ist, dass Standard-PCs erst viele Jahre später mit Multimedia-Fähigkeitenausgestattet wurden, die auch nur ansatzweise mit Geräten wie Amiga oder ST vergleich-bar waren. Noch heute sind diese Rechner bei manchen Künstlern oder Musikern beliebt,und zumindest im Fall des Amigas gibt es immer wieder Gerüchte um eine Wiederbele-bung durch verschiedene Firmen.

32-Bit-Rechner

Zu Beginn der 1990er Jahre wurden die Home- und Personal Computer nach und nachmit 32-Bit-Prozessoren ausgestattet. Den Anfang machte der IBM-PC/AT mit Intels 80386-Prozessor, dem wie bei den Vorgängermodellen wieder zahlreiche kompatible Nachbau-ten folgten. Apple ersetzte dagegen die Motorola 680xx-Prozessoren der frühen Macsdurch Power-PC-Prozessoren, was die Familie der PowerMacs einleitete. Bemerkenswer-terweise wurde die Macintosh-Prozessorbasis ab 2005 nochmals gewechselt; statt PowerPC werden nun Intel-Multicore-Prozessoren eingesetzt.

Die Leistungssteigerung der PC- und Mac-Prozessoren sorgte dafür, dass diese Rechner –besonders die günstigeren IBM-kompatiblen PCs – die klassischen Homecomputer ver-drängten und nach den Büros auch den Heimbereich eroberten. Dazu wurden insbeson-dere im Bereich der Multimedia-Fähigkeiten große Fortschritte erzielt. Ein gewisses Pro-blem bestand allerdings darin, dass die Betriebssysteme der frühen 1990er Jahre nicht fürdie modernen 32-Bit-Architekturen ausgelegt waren. 1995 brachte Microsoft mit Win-dows 95 ein massentaugliches Kompromiss-System auf den Markt, das zwar noch immereinen MS-DOS-Unterbau besaß, aber innerhalb der grafischen Oberfläche echtes 32-Bit-Multitasking beherrschte. Erst im Jahr 2001 verabschiedete sich Microsoft mit WindowsXP ganz von der MS-DOS-Vergangenheit im Heimsektor; im selben Jahr erschien die ersteVersion von Apples Neuentwicklung Mac OS X.

Beide Systemwelten hatten übrigens viel weniger Schwierigkeiten beim Wechsel von 32-auf die immer weiter verbreiteten 64-Bit-Architekturen, genauso wenig wie das freie, fürviele Plattformen verfügbare Betriebssystem Linux. Näheres zur Geschichte der Betriebs-systeme lesen Sie übrigens in Kapitel 5, »Betriebssystemgrundlagen«.

Ausblick in die nähere Zukunft

Offiziell zählen alle heutigen Computer zur vierten Generation, zu den Computern mitMikroprozessoren. Selbst mächtige Servermaschinen oder Großrechner werden durchzahlreiche parallel betriebene Prozessoren realisiert. Eine offizielle fünfte Generation istniemals ausgerufen worden.

Dennoch zeichnen sich zurzeit verschiedene Entwicklungen ab, die in Zukunft zu einemWandel auf dem Computermarkt führen könnten. Die wichtigsten sind folgende:

� Es entstehen immer mehr spezielle mobile Geräte, die Teile der Funktion des univer-sellen PCs übernehmen. Dazu gehören Mobiltelefone mit Internet- und Multimedia-Funktionen (Smartphones) wie Apples iPhone oder die zahlreichen Google-Android-

45

Die Geschichte der Rechenmaschinen und Computer 1.2

und Windows-Phone-Geräte, Tablets (iPad, Samsung Galaxy Tab & Co.), PDAs oderspezielle Geräte, die wie eine Armbanduhr oder ein Gürtel getragen werden könnenoder in Kleidungsstücke eingebaut sind (Wearable Computers). Im gleichen Maße wirddas Internet, besonders in seiner drahtlosen Form, immer wichtiger.

� Über die klassische binäre Elektronik hinaus entstehen neue Ansätze für den Bau vonComputern. Dazu gehören beispielsweise DNA-basierte »Bio-Rechner« oder Computerauf der Basis von Lichtwellenleitern – diese auch als Glasfaserkabel bezeichneten Lei-tungen transportieren Licht statt elektrischen Strom und kommen bereits seit langemzur Datenübertragung zum Einsatz (Kabelfernsehen, Netzwerke und so weiter). Einweiteres interessantes Projekt ist der Quantencomputer: Da die Quantenmechanikbesagt, dass ein Teilchen mehrere Zustände zur selben Zeit aufweisen kann, könnensogenannte QBits (Quanten-Bits) codiert werden, die »1 und 0 gleichzeitig« enthalten –das Durchprobieren zahlreicher verschiedener Fälle muss nicht mehr nacheinandergeschehen, sondern kann gleichzeitig erfolgen.

� Überraschend ruhig ist es dagegen in den letzten Jahren in der Öffentlichkeit um die»künstliche Intelligenz« geworden. Inzwischen hat sich die Forschung vorläufig vondem Gedanken verabschiedet, das komplexe menschliche Gehirn nachzuahmen.Stattdessen betreibt man erst einmal Grundlagenforschung und simuliert beispiels-weise das Zusammenspiel weniger einzelner Nervenzellen in sogenannten neurona-len Netzen.

1.2.3 Entwicklung der Programmiersprachen

Damit ein Computer nützliche Aufgaben erledigen kann, muss er programmiert werden.Da in der kurzen Übersicht über die Computergeschichte bereits von Programmierspra-chen die Rede war, folgt hier ein kurzer Abriss über deren Entwicklung.

Die Maschinensprache des Prozessors

Die einzige Sprache, die ein Mikroprozessor wirklich versteht, ist seine Maschinenspra-che. Sie besteht aus nichts weiter als Zahlen: Jeder Befehl, den der Prozessor »versteht«,besitzt einen bestimmten numerischen Code. Je nach Art des Befehls folgen auf die Be-fehlsnummer ein oder mehrere Argumente verschiedener Länge.

Ein Maschinenprogramm ist für Menschen so gut wie unlesbar und schon gar nichtschreibbar. Wenn Sie eine binäre Programmdatei mit einem Texteditor öffnen, werdendie gespeicherten Zahlen als Zeichen interpretiert; es erscheint merkwürdiger Zeichen-salat, an manchen Stellen unterbrochen von kleinen Textblöcken, wenn das Programmnormalen Text enthält.

Angenommen, ein Programm enthält den folgenden (fiktiven) Befehl:

65 0 0 0 98

46

Einführung1

Bei dem Befehl 65 könnte es sich beispielsweise um die Anweisung handeln, einen be-stimmten Wert auf einen Speicherstapel zu legen; der Wert wird als 32-Bit-Ganzzahl an-gegeben, hier 98. Im Texteditor sähe dies etwa so aus:

A b

Das große A besitzt den Zeichencode 65, das kleine b den Code 98. Die drei Null-Byteswerden in manchen Editoren als merkwürdige Sonderzeichen, in anderen als Leerzeichenangezeigt. Ein Rückschluss auf die tatsächlichen Befehle ist so gut wie unmöglich.

Wenn Sie überhaupt jemals gezwungen sein sollten, Maschinensprachdateien von Handzu modifizieren (zum Beispiel, um ein Computerspiel zu überlisten), verwenden Sie bes-ser einen Hex-Editor, der die einzelnen Werte nicht nur als ASCII-Zeichen, sondern zu-sätzlich hexadezimal darstellt. Hier könnte das Ganze folgendermaßen aussehen:

41 00 00 00 52 A b

Assembler – die »benutzerfreundliche« Maschinensprache

Um Maschinensprache halbwegs benutzbar zu machen, wurde der Assembler entwickelt.Statt die Befehle mit ihren tatsächlichen Zahlencodes zu schreiben, werden sie durch Kür-zel dargestellt, die man sich mehr oder weniger gut merken kann – daher auch der Name»Mnemonics«. In der Regel werden diese Namen für die jeweiligen Assembler-Befehle un-mittelbar vom Prozessorhersteller selbst festgelegt, um jegliches Chaos zu vermeiden.

Die Assembler-Sprache ist von Prozessor zu Prozessor völlig verschieden. Jede Prozes-sorarchitektur versteht ihre ganz eigenen Arten von Befehlen, die entsprechend unter-schiedlich in Assembler umgesetzt werden.

Assembler ist sowohl der Name für diese vereinfachte Schreibweise der Maschinenspra-che als auch der Name für das Programm, das diese Sprache in die eigentliche Maschinen-sprache umsetzt (im Englischen wird die Sprache allerdings eher als assembly language be-zeichnet).

Das Assembler-Programm führt gegenüber der eigentlichen Maschinensprache oft eineReihe von Erleichterungen ein. Viele Assembler beherrschen etwa die Definition soge-nannter Makros: Immer wiederkehrende Abfolgen von Befehlen erhalten einen eindeuti-gen Namen und können dann später unter diesem Namen aufgerufen werden.

Assembler –praktischer

Einsatz

Assembler wird heutzutage kaum noch zur Programmierung verwendet, zumindest nichtzur Erstellung vollständiger Programme. Wichtige Ausnahmen sind folgende:

1. In Betriebssystemen sind einige der besonders hardwarenahen Kernroutinen im As-sembler des jeweiligen Prozessors geschrieben, und zwar vor allem deswegen, damitder gesamte Rest des Systems so weit von der Hardware abstrahiert wird, dass er voll-ständig in einer höheren Sprache – meist C – geschrieben werden kann. Diese Vorge-

47

Die Geschichte der Rechenmaschinen und Computer 1.2

hensweise wurde in den 1970er Jahren bei der Implementierung von Unix entwickeltund gilt noch heute.

2. Auch Gerätetreiber, die zu den wichtigsten Bestandteilen der Betriebssysteme gehören,müssen manchmal in Assembler geschrieben werden.

3. Bestimmte Teile von Computerspielen werden hin und wieder in Assembler geschrie-ben. Spieleprogrammierern, besonders von schnellen 3D-Spielen, kommt es vor allemauf Geschwindigkeit an.

4. Besonders systemnahe Computerviren (Bootsektorviren, die den Startbereich eines Da-tenträgers infizieren, und Programmviren, die ausführbare Programme befallen) sindmeistens vollständig in Assembler geschrieben.

Die ersten höheren Programmiersprachen (Fortran, Cobol, BASIC)

Als praktischer Ersatz für die maschinenorientierten Sprachen wurden seit Mitte der1950er Jahre die problem- oder benutzerorientierten Programmiersprachen eingeführt.Ihr Vorrat an möglichen Befehlen und ihre Syntax orientierten sich eher an den Bedürf-nissen der Programmierer als an denen des Rechners.

Diese Programmiersprachen müssen in die Maschinensprache des konkreten Prozessorsübersetzt werden. Dazu wurden zwei grundlegende Vorgehensweisen entwickelt:

� Der Compiler erzeugt ein dauerhaft lauffähiges Maschinensprachprogramm und spei-chert es als ausführbares Programm (Binary Executable) ab.

� Der Interpreter übersetzt den Quellcode dagegen Zeile für Zeile; der Code wird alsowährend der Ausführung (zur Laufzeit) übersetzt. Interpretierte Sprachen werden häu-fig auch als Skriptsprachen bezeichnet.

Die erste Generation der höheren Programmiersprachen war sehr einfach. Beispielsweisegab es noch keine echte Programmstrukturierung. Das ursprüngliche BASIC verwendeteetwa Zeilennummern, zu denen gesprungen werden konnte; Fortran benutzte spezielleSprungmarken.

Jede dieser frühen Sprachen hatte eine spezielle Ausrichtung oder einen besonderen Ver-wendungszweck:

� Fortran, entwickelt in den 1950er Jahren, ist die Abkürzung für »Formula Translator«.Es handelt sich um eine besonders im Hinblick auf mathematische Bedürfnisse geschri-ebene Sprache. Sie wird zum Teil auch heute noch von Ingenieuren oder Mathema-tikern gern verwendet.

� Cobol wurde ebenfalls in den 1950er Jahren entwickelt. Der Name ist die Abkürzungfür »Common Business-oriented Language«; es handelt sich also um eine Sprache fürkaufmännische Anwendungszwecke, für Handel und Wirtschaft. Cobol ist eine ziem-lich »geschwätzige« Sprache. Es braucht relativ viele Wörter, um verhältnismäßig kurze

48

Einführung1

Anweisungen auszudrücken. Beispielsweise können Sie in fast jeder Programmierspra-che folgendermaßen den Wert der Variablen b durch 7 teilen und das Ergebnis in einerzweiten Variablen namens a speichern:

a = b / 7

In Cobol wird dagegen folgende Anweisung verwendet:

DIVIDE B BY 7 GIVING A

� BASIC wurde 1960 am Dartmouth College entwickelt. Der Name steht für »Beginner’sAll-Purpose Symbolic Instruction Code«. Es handelt sich also um eine eher einfacheSprache für Anfänger. Die Sprache fand ab der zweiten Hälfte der 1970er Jahre, als dieneu gegründete Firma Microsoft sie zum ersten Mal für Personal Computer anpasste,eine gewaltige Verbreitung. Fast jeder Homecomputer in den 1980er Jahren hatte ir-gendeine BASIC-Variante im ROM eingebaut.

Ein BASIC-Beispiel

Zur Verdeutlichung sehen Sie hier ein kleines Beispielprogramm in »allgemeinem«BASIC, das fast jeder klassische BASIC-Interpreter verstehen würde:

10 PRINT "Wie heißt du?"20 INPUT A$30 PRINT A$; " ist ein interessanter Name."40 PRINT "Noch mal (j/n)?"50 INPUT J$60 IF J$ = "j" THEN GOTO 10

Die einzelnen Programmzeilen bedeuten Folgendes:

� (10) Ausgabe des Textes »Wie heißt du?«.

� (20) Eingabe der Variablen A$, die durch das Dollarzeichen als String-Variable (Text-inhalt) gekennzeichnet wird.

� (30) Der eingegebene Name wird ausgegeben, gefolgt von »ist ein interessanterName.«.

� (40) Der Benutzer wird gefragt, ob er einen weiteren Durchgang wünscht.

� (50) Eingabe der Variablen J$.

� (60) Hat J$ den Wert »j«, geht es weiter bei Zeile 10; das Programm wird erneut aus-geführt. Andernfalls endet das Programm, da keine weiteren Befehle mehr folgen.

Imperative oder prozedurale Programmiersprachen (Pascal, C)

Diese Programmiersprachen erlauben eine Strukturierung von Programmen, darüber hi-naus ist eine gewisse Modularisierung möglich: Programme können in kleinere logischeEinheiten eingeteilt werden, Prozeduren oder Funktionen genannt. Diese sind bis zu ei-nem gewissen Grad wiederverwendbar.

Pascal wurde ab 1968 von dem Schweizer Mathematikprofessor Niklaus Wirth ausdrück-lich als Lehrsprache entwickelt. Noch heute ist Pascal eine der beliebtesten Sprachen, um

49

Die Geschichte der Rechenmaschinen und Computer 1.2

Schülern oder Studenten das Programmieren beizubringen, weil die Sprache zu einer kla-ren Programmstrukturierung zwingt.

Die Programmiersprache C wurde 1971 von Dennis Ritchie und Brian Kernighan beiAT&T entwickelt, insbesondere um eine portierbare (auf andere Rechnerplattformenübertragbare) Version des Betriebssystems Unix zu schreiben. Ursprünglich wurde C füreinen ganz bestimmten Computer und dessen Besonderheiten entwickelt, den DEC PDP-7.Aus diesem Grund ist C erstaunlich nah an den Fähigkeiten von Assembler, ohne so be-nutzerunfreundlich zu sein wie dieses.

Ein Pascal-Beispiel

Hier sehen Sie zunächst ein einfaches Pascal-Programm:

PROGRAM tagesgruss;VAR name: STRING;

zeit: INTEGER;

BEGINwriteln ('Hallo. Gib deinen Namen ein!');readln (name);writeln ('Gib die Uhrzeit ein - nur Stunde!');readln (zeit);IF zeit < 12 THEN

writeln ('Guten Morgen ', name)ELSE

IF zeit < 18 THENwriteln ('Guten Tag ', name)

ELSEwriteln ('Guten Abend ', name);

END.

Das Programm begrüßt den Benutzer freundlich mit »Hallo«, und dieser wird aufgefor-dert, seinen Namen einzugeben. Daraufhin wartet es auf die Eingabe, die in der Variablenname gespeichert wird. Als Nächstes fragt das Programm nach der Uhrzeit oder genauernach der Stunde.

In den verschachtelten IF-ELSE-Bedingungen wird dann je nach Tageszeit »Guten Mor-gen«, »Guten Tag« oder »Guten Abend« ausgegeben.

Ein C-BeispielDie Programmiersprache C wird in Kapitel 9, »Grundlagen der Programmierung«, aus-führlich behandelt. Trotzdem sehen Sie hier als Kontrast zu Pascal bereits ein kleines C-Beispielprogramm:

#include <stdio.h>

int main (){

50

Einführung1

int a, b;printf ("Geben Sie die erste Zahl ein: ");scanf ("%d", &a);printf ("Geben Sie die zweite Zahl ein: ");scanf ("%d", &b);if (a < b)

printf ("%d ist kleiner als %d.\n", a, b);else if (a > b)

printf ("%d ist groesser als %d.\n", a, b);else

printf ("Zweimal die Zahl %d.\n", a);return 0;

}

Es wird die Eingabe zweier Zahlen erwartet. Anschließend werden die beiden Zahlen ver-glichen; je nach Größe der beiden Zahlen wird eine entsprechende Meldung ausgegeben.

Die wichtigste Besonderheit ist, dass es kein Hauptprogramm gibt wie in Pascal, sondernnur die spezielle Funktion main(), die vom Betriebssystem aufgerufen wird. Die weiterenEigenheiten von C werden, wie gesagt, in Kapitel 9, »Grundlagen der Programmierung«,erläutert.

Objektorientierte Programmiersprachen (Smalltalk, C++, Java, C#)

In einer objektorientierten Sprache wird in wiederverwendbaren Paketen programmiert,den sogenannten Klassen. Eine Klasse ist eine allgemeine Vorlage für die Konstruktionvon Objekten. Ein Objekt ist eine Datenstruktur, die selbst Funktionen enthält, um sichauf die gewünschte Art und Weise zu »verhalten«.

Die wichtigsten Vorteile dieser Art der Programmierung sind die folgenden:

� Kapselung: Datenstrukturen außerhalb eines Objekts können nicht direkt dessen in-nere Daten manipulieren, sondern nur seine offiziellen Methoden (Schnittstellen nachaußen) benutzen. Dies sorgt für ein klares Programmdesign und schützt vor vielen Feh-lern.

� Vererbung: Klassen können ihre Eigenschaften und Methoden an »Kindklassen« abge-ben, in denen nur noch die Unterschiede programmiert werden müssen. Dies be-schleunigt die Softwareentwicklung und macht Programme noch einmal erheblichübersichtlicher.

Zu den wichtigsten objektorientierten Programmiersprachen gehören folgende:

� Smalltalk war die erste vollständig objektorientierte Sprache überhaupt. Sie wurde inden 1970er Jahren zur Programmierung der ersten grafischen Benutzeroberfläche ent-wickelt.

51

Die Geschichte der Rechenmaschinen und Computer 1.2

� C++ ist die objektorientierte Erweiterung der Programmiersprache C und wurde vonBjarne Stroustrup entwickelt. Da C++ abwärtskompatibel mit C ist, wurde die Sprachebald von C-Programmierern eingesetzt; ihre besonderen Vorteile als objektorientierteSprache wurden aber erst langsam angenommen.

� Java besitzt vor allem die Besonderheit, dass es sich um eine plattformunabhängigeSprache handelt. Sie brauchen ein Java-Programm nur einmal zu kompilieren, es läuftinnerhalb eines speziellen Programms für die verschiedenen Plattformen, der virtuel-len Java-Maschine (JVM).

� C# ist eine objektorientierte Sprache von Microsoft. Es handelt sich um eine der Spra-chen, mit denen Anwendungen für das .NET Framework entwickelt werden können.Zwar betont Microsoft aus Marketing-Erwägungen stets die Verwandtschaft mit C++,aber dennoch hat C# mehr mit Java gemeinsam als mit C++.

Logische Programmiersprachen (LISP, Prolog, Logo)

Einen völlig anderen Ansatz als die bisher behandelten Sprachen versprechen die logi-schen Programmiersprachen: Die Grundidee besteht darin, nicht den fertigen Algorithmuseinzutippen und mit wechselnden Wertbelegungen vom Computer berechnen zu lassen,sondern das Grundproblem selbst zu formulieren und die Erzeugung einer möglichst op-timalen Lösung dem Compiler zu überlassen.

Die Idee der logischen Programmierung stammt bereits aus den 1960er Jahren. Wegwei-send waren die Arbeiten des Linguisten Noam Chomsky, der als Erster eine Verbindungzwischen Sprachwissenschaft und Informationstechnik herstellte. Auf dieser Grundlageentwickelten sich sogenannte Expertensysteme, die Fragen durch logische Schlussfolge-rungen aus bereits bekannten Informationen beantworten können. Die logischen Pro-grammiersprachen erwiesen sich als ideales Hilfsmittel zur Implementierung solcher Sys-teme.

Logische Sprachen im engeren Sinne verwenden die Prädikatenlogik zur Formulierungvon Ausdrücken oder Termen; der wichtigste Vertreter ist Prolog.

Sprachen mit ähnlichem Ansatz, aber anderer Syntax werden auch als funktionale Spra-chen bezeichnet; dazu gehört vor allem LISP, aber auch die Sprache Logo, die hauptsäch-lich entworfen wurde, um Kindern die Denkweise der Computerprogrammierung beizu-bringen. Als gemeinsamen Oberbegriff verwendet man manchmal die Bezeichnungdeklarative Programmiersprachen.

In den letzten Jahren kommen logische und funktionale Programmiersprachen allmählichwieder in Mode, weil sich der Ansatz besonders gut zur Programmierung modernerMehrkernprozessoren eignet. So entstanden die moderneren funktionalen Sprachen Er-lang (logische Sprache, von Prolog inspiriert), Clojure (funktional, im Grunde ein moder-

52

Einführung1

ner LISP-Dialekt) und Scala (eine sogenannte Multiparadigmen-Sprache, die neben funk-tionalen auch objektorientierte und imperative Aspekte enthält).

1.3 Digitale Speicherung und Verarbeitung von Informationen

In diesem Abschnitt wird kurz erläutert, wie ein Computer Informationen speichert undverarbeitet. Es besteht hierbei ein grundsätzlicher Unterschied zwischen analogen und di-gitalen Daten: Analoge Informationen lassen sich in einer kontinuierlichen Wellenformwie in Abbildung 1.5 darstellen, die in immer kleinere Einheiten unterteilt werden kön-nen.

In der Natur liegen alle Informationen zunächst in analoger Form vor: Das Bild, das Sie se-hen, oder der Ton, den Sie hören, besitzt prinzipiell keine kleinste Informationseinheitoder Auflösung. Mit dieser Art von Informationen kann ein Computer heutiger Bauartnichts anfangen. Die besonderen Eigenschaften der Elektronik haben dazu geführt, dassComputer digital entworfen wurden. »Digital« stammt vom englischen Wort digit (»Zif-fer«); dieses Wort ist wiederum vom lateinischen digitus (»Finger«) abgeleitet, da die Fin-ger von jeher zum Zählen eingesetzt wurden.

Digital sind Informationen also immer dann, wenn sie in Form von Zahlen dargestelltwerden können. Genauer gesagt werden die Daten binär gespeichert, das heißt als Ab-folge von Einsen und Nullen. Das ist nicht genau dasselbe wie dual. Das Dualsystem istdas mathematische Zweiersystem, während binär allgemein die Speicherung beliebigerDaten durch zwei verschiedene Zustände bezeichnet.

Die Speicherung von Zahlen erfolgt übrigens in der Tat dual, solange es sich um ganzeZahlen handelt. Eine Besonderheit gilt dabei für vorzeichenbehaftete (positive oder nega-tive) Zahlen, bei denen das vorderste Bit für das Vorzeichen steht. Kompliziert wird es da-

Abbildung 1.5 Schematische Darstellung von Analogdaten als Welle

53

Digitale Speicherung und Verarbeitung von Informationen 1.3

gegen bei Fließkommazahlen, die in Exponentialschreibweise gespeichert werden. Aufdie Darstellung von Zahlen im Computer wird in Kapitel 2, »Mathematische und techni-sche Grundlagen«, näher eingegangen.

Charakteristisch für digitale Daten ist, dass es eine kleinste Informationseinheit gibt unddass die Information nicht mehr weiter aufgelöst werden kann. Während Analogdatenalso durch die Wellenform gekennzeichnet sind, lassen sich Digitaldaten durch eine recht-eckige Form darstellen (Abbildung 1.6). In der Mathematik werden Objekte mit einemsolchen »Mindestabstand« als diskrete Mengen bezeichnet. Ein Alltagsbeispiel ist die Folgeder ganzen Zahlen – im Unterschied zu den rationalen oder gar reellen Zahlen, bei denenzwischen zwei beliebigen Elementen immer noch unendlich viele Zwischenwerte liegen.

Digita-lisierung

Die Umwandlung der analogen Eindrücke aus der Realität in computergeeignete digitaleDaten wird als Digitalisierung bezeichnet. Je nach Datenart wird sie zum Beispiel von ei-nem Scanner oder einer Digitalkamera bei Bildern oder von einer Soundkarte bei Tönendurchgeführt. Die folgenden Abschnitte sollen einen groben Eindruck davon vermitteln,wie verschiedene Arten von Daten grundsätzlich gespeichert werden.

1.3.1 Digitale Bilddaten

Wie Hardware zur Bilddigitalisierung funktioniert, also Scanner und Digitalkameras, wirdkurz in Kapitel 3, »Hardware«, angeschnitten. Beachten Sie, dass es zwei grundlegende Ar-ten von Computergrafik gibt: Die Pixelgrafik (auch Bitmap-Grafik genannt), von der hierdie Rede ist, speichert ein Bild als rechteckiges Raster quadratischer Farbinformationenab, den sogenannten Pixeln. Die Vektorgrafik speichert dagegen Umrisslinien und Kurvenvon Zeichnungen in Form mathematischer Formeln.

Die Qualität eines gespeicherten Pixelbildes lässt sich durch die folgenden Sachverhaltecharakterisieren:

Abbildung 1.6 Schematische Darstellung binärer Digitaldaten

54

Einführung1

� Die Auflösung gibt die Größe der einzelnen Pixel an. Die Angabe besagt, wie viele Pixelpro Zentimeter oder Inch gespeichert werden. Beachten Sie, dass für den Druck erheb-lich höhere Auflösungen erforderlich sind (etwa 300 Pixel pro Inch) als für eine gleichgroße Bildschirmfläche (gerechnet wird hier – unabhängig von der tatsächlichen Mo-nitorgröße – mit 72 Pixeln pro Inch).

� Die Farbtiefe gibt an, wie viele Bits zur Speicherung der Informationen eines einzelnenPixels verwendet werden. Je nach Farbtiefe kann eine bestimmte Anzahl verschiede-ner Farben eingesetzt werden. Beispielsweise ermöglicht eine Farbtiefe von 8 Bit nur256 verschiedene Farben, 16 Bit bieten 65.536 Farben und 24 Bit sogar mehr als 16,7Millionen (genauer gesagt 16.777.216).

� In der Regel werden die einzelnen Farben nicht stur durchnummeriert, sondern auseinzelnen Grundfarben zusammengesetzt. Ohne hier näher darauf einzugehen, gibt esdie additive Farbmischung der Lichtfarben Rot, Grün und Blau (RGB) sowie die sub-traktive Mischung der Druckfarben Cyan, Magenta, Gelb und Schwarz (CMYK). Nor-malerweise wird für die Intensität jeder einzelnen Grundfarbe ein Farbkanal gespei-chert. Die Farbtiefe wird dann pro Kanal angegeben, bei einem RGB-Bild mit 24 BitFarbtiefe also beispielsweise 8 Bit (oder 256 Intensitätsstufen) pro Kanal.

1.3.2 Digitale Audiodaten

Töne werden mit Hilfe eines Verfahrens digitalisiert, das man Sampling nennt. Das Audio-signal wird in bestimmten Zeitabständen immer wieder abgetastet, genauer gesagt wirddie Amplitude (das Volumen) zum jeweiligen Zeitpunkt gemessen. Die Frequenz (Ton-höhe) ergibt sich dabei aus der zeitlichen Verteilung der Amplituden. Jeder einzelne Ab-tastvorgang (Sample) wird als numerischer Wert abgespeichert.

In der Folge erweist sich die digitalisierte Tonabfolge als diskret in zweifacher Hinsicht:auf der X-Achse zeitdiskret durch das gleichbleibende Intervall zwischen den Messungen;auf der Y-Achse wertdiskret durch die Beschränkung auf einzelne herausgegriffene (Mit-tel-)Werte.

Genau wie bei Bildern gibt es auch hier verschiedene Merkmale, die die Datenmenge unddie Qualität der gespeicherten Daten betreffen:

� Die Sampling-Rate gibt die Anzahl der Messvorgänge pro Sekunde an. Je höher die Fre-quenz dieser Messungen, desto höher ist die Tonqualität. Audio-CDs haben beispiels-weise eine Sampling-Rate von 44,1 kHz (Kilohertz), es wird also 44.100 Mal pro Se-kunde gemessen. Multimedia-Produktionen wie Computerspiele oder Infotainment-Titel verwenden dagegen häufig die halbe Sampling-Rate von 22,05 kHz.

� Die Sampling-Tiefe gibt die Datenbreite des einzelnen gespeicherten Tons an, legt alsofest, wie viele verschiedene Amplituden unterschieden werden. Bei Audio-CDs sorgt

55

Digitale Speicherung und Verarbeitung von Informationen 1.3

eine Sampling-Tiefe von 16 Bit (65.536 unterschiedliche Werte) für guten Ton; niedri-gere Sampling-Tiefen klingen nicht besonders gut.

� Die Anzahl der Tonkanäle besagt, ob irgendeine Art von Raumklang gespeichert wirdoder nicht. Wenn Audiodaten mono gespeichert werden, gibt es nur einen einzigenKanal. Stereo verwendet zwei getrennte Kanäle, die über einen linken und einen rech-ten Lautsprecher ausgegeben werden können. Eine noch höhere Anzahl von Kanälenwie bei Quadrophonie, Dolby Surround oder 5.1-Sound bewirkt ein noch realistische-res Hörerlebnis.

Tabelle 1.2 stellt die verschiedenen Merkmale von Bilddaten den vergleichbaren Eigen-schaften von Tondaten gegenüber, um die entsprechenden Beziehungen zwischen ver-schiedenen Arten von Digitaldaten zu verdeutlichen.

1.3.3 Digitale Speicherung von Text

Reiner Text (nicht der formatierte Text in Textverarbeitungsprogrammen!) wird als Ab-folge nummerierter Zeichen eines Zeichensatzes gespeichert. Je nach Datenbreite des ver-wendeten Zeichensatzes können unterschiedlich viele verschiedene Zeichen verwendetwerden. Der grundlegende Computerzeichensatz ist noch heute ASCII. Es handelt sich umeinen 7 Bit breiten Zeichensatz; er enthält also 128 Zeichen. Es sind sämtliche Zeichen fürdie Darstellung englischsprachiger Texte verfügbar.

Um auch Texte mit den Sonderzeichen der diversen europäischen Sprachen darstellen zukönnen, werden verschiedene Erweiterungen des ASCII-Codes verwendet. Da die 7 Bitder ASCII-Zeichen gewöhnlich in 8 Bit breiten Feldern gespeichert werden, steht Platz fürweitere 128 Zeichen zur Verfügung. Auf diese Weise lassen sich lateinisch geschriebeneSprachen mit Sonderzeichen wie deutschen Umlauten darstellen, aber auch andere Buch-stabenalphabete wie Arabisch, Russisch oder Griechisch. Silbenschriften wie Chinesischoder Japanisch lassen sich dagegen auf diese Weise nicht speichern.

Um viele verschiedene Zeichensätze »unter einen Hut zu bringen«, wurde der Unicode-Standard eingeführt. Es handelt sich um einen Zeichensatz mit 16 bis 32 Bit breiten Zei-chen; es können also mindestens 65.536 verschiedene Zeichen, in neueren Versionen so-gar noch mehr, gespeichert werden. Auf diese Weise bietet Unicode genügend Platz für

Informationsart Bilddaten Audiodaten

Auflösung Bildauflösung, in Pixeln pro Zentimeter oder Inch

Sampling-Rate, in Samples pro Sekunde (kHz)

Datenbreite Farbtiefe Sampling-Tiefe

Anzahl Kanäle Farbkanäle Tonkanäle

Tabelle 1.2 Vergleich der Merkmale von Bild- und Audiodaten

56

Einführung1

die Schriftzeichen der meisten Sprachen der Welt sowie für mathematische, technischeund andere Sonderzeichen.

Die verschiedenen Zeichensätze werden in Kapitel 16, »Weitere Datei- und Datenfor-mate«, genauer besprochen.

1.4 Zusammenfassung

Die Wissenschaft vom Umgang mit Computersystemen, um die es in diesem Buch geht,wird allgemein Informatik genannt. Der praktische Einsatz dieser Systeme heißt dagegenmeist Informationstechnik (IT). Es gibt verschiedene Ausbildungsgänge, die auf Berufe indiesem Fachbereich vorbereiten: zum einen praktische Berufsausbildungen wie die imTitel dieses Buches erwähnten Fachinformatiker, zum anderen die erheblich umfangrei-cheren, aber theoretischeren Studiengänge.

Die Entwicklung des Computers war letztlich eine Folge des wissenschaftlichen Fort-schritts: Die seit Jahrtausenden bekannten Gesetzmäßigkeiten der Mathematik und derLogik wurden mit modernen Erkenntnissen der Elektrotechnik beziehungsweise Elektro-nik kombiniert, um einen frei programmierbaren Rechenautomaten zu erhalten. Die fort-schreitende Miniaturisierung und eine effiziente industrielle Fertigung sorgten dafür, dassdie Computer sich im Laufe von etwa sechzig Jahren von beinahe unbezahlbaren Einzel-exemplaren an Universitäten zum allgegenwärtigen Werkzeug für fast jeden Anwen-dungszweck und die meisten Berufe entwickeln konnten.

Parallel zu den Computern selbst hat sich auch die Art und Weise ihrer Programmierungweiterentwickelt: Anfangs musste die reine numerische Maschinensprache mit Hilfe vonSchalttafeln und Steckverbindungen eingegeben werden; nach und nach wurden sowohldie Eingabemethoden als auch der Funktionskomfort der Sprachen selbst erheblich ver-bessert.

Interessant ist in diesem Zusammenhang, dass sich die innere Funktionsweise der Rech-ner von Anfang an kaum verändert hat: Bis heute werden elektronisch gesteuerte Schalterverwendet, die die beiden Zustände 0 und 1 darstellen können. Sämtliche Informationen– ob mathematische Informationen, Texte oder Multimedia-Daten – sowie die Manipula-tion dieser Daten müssen mit Hilfe dieser Schaltungen codiert werden. Wie dies im Ein-zelnen geschieht, erfahren Sie im Verlauf dieses Buches noch wesentlich genauer.

169

Jeder wandle für sich und wisse nichts von dem andern.Wandern nur beide gerad’, finden sich beide gewiss.– Johann Wolfgang Goethe/Friedrich Schiller, Xenien

4 Netzwerkgrundlagen

Internet und lokale Netzwerke haben die Bedeutung des Computers in den letzten Jahrenrevolutioniert. Viele Anwendungsprogramme kooperieren über das Netzwerk miteinan-der. Der Datenaustausch in und zwischen Unternehmen erfolgt fast ausschließlich perVernetzung, und immer mehr Geschäftsabläufe werden online getätigt. Da die Netzwerk-fähigkeit zudem eine Grundfunktionalität aller modernen Betriebssysteme geworden ist,steht diese Einführung noch vor dem Kapitel über allgemeine Systemkonzepte.

Nach einer historischen und technischen Einführung erfahren Sie in diesem Kapitel dasWichtigste über gängige Netzwerkhardware; somit wird die Betrachtung der Hardwareaus dem vorigen Kapitel hier vervollständigt. Anschließend werden die Netzwerkproto-kolle mit dem Hauptaugenmerk auf die seit Jahren dominierenden Internetprotokolle(TCP/IP) beleuchtet.

4.1 Grundlagen

In diesem Abschnitt erfahren Sie zunächst einmal, was Netzwerke eigentlich sind und wasverschiedene Netzwerktypen voneinander unterscheidet. Anschließend wird die Entste-hungsgeschichte lokaler Netze, der Datenfernübertragung und des Internets betrachtet.

4.1.1 Was ist ein Netzwerk?

Ein Netzwerk ist eine Verbindung mehrerer Computer zum Zweck des Datenaustauschs,für verteilte Anwendungen oder auch für die Kommunikation zwischen ihren Benutzern.

Im Lauf der Computergeschichte haben sich viele verschiedene Möglichkeiten der Verka-belung und der Kommunikationsstrukturen sowie zahlreiche Anwendungsgebiete entwi-ckelt:

� Die Verkabelung oder allgemein die Hardwaregrundlage reicht von der Verwendunggewöhnlicher Telefonleitungen mit besonderen Verbindungsgeräten, den Modems,

170

Netzwerkgrundlagen4

über speziell für die Anwendung in lokalen Netzwerken entwickelte Netzwerkkartenund Netzwerkkabel bis hin zu Hochgeschwindigkeitsnetzen, etwa über Glasfaserkabel.Auch die diversen Möglichkeiten der drahtlosen Übertragung werden immer wichti-ger.

� Kommunikationsstrukturen, definiert durch sogenannte Netzwerkprotokolle, gibt esunzählige. Viele sind von einem bestimmten Hersteller, einer Plattform oder einem Be-triebssystem abhängig, andere – wie die Internet-Protokollfamilie TCP/IP – sind offen,unabhängig und weitverbreitet.

� Was die Anwendungsgebiete angeht, so reichen diese vom einfachen Dateiaustauschin Arbeitsgruppen über die gemeinsame Nutzung teurer Hard- und Software bis hin zuhochkomplexen, spezialisierten und verteilten Anwendungen.

Paketvermittelte Datenübertragung

Ein wesentliches Merkmal der meisten Netzwerkformen ist die Übertragung von Daten mitHilfe sogenannter Datenpakete.

Um die Paketvermittlung (Packet Switching) zu verstehen, sollten Sie zunächst ihr Gegen-teil, die Schaltkreisvermittlung (Circuit Switching) der herkömmlichen Telefonleitungen,betrachten. (Hinweis: Inzwischen gilt dies nicht mehr zwingend; durch die Einführung neuerTechnik laufen auch immer mehr Telefonverbindungen hinter den Kulissen paketvermitteltab – per Voice over IP (VoIP) sogar bis zum Endkunden. Durch geeignete Kommunikations-protokolle wird aber dafür gesorgt, dass die Nutzer dies nicht bemerken.) Durch das Wähleneiner bestimmten Rufnummer (oder früher durch die Handvermittlung) werden bestimmteSchalter geschlossen, die für die gesamte Dauer des Telefongesprächs eine feste Punkt-zu-Punkt-Verbindung zwischen beiden Stellen herstellen. Über diese dauerhafte Leitung kön-nen Sprache oder Daten in Echtzeit und in der korrekten Reihenfolge ohne Unterbrechungübertragen werden. Nachdem die Übertragung beendet ist, wird die Verbindung wiederabgebaut, und die betroffenen Leitungen stehen für andere Verbindungen zur Verfügung.

Ganz anders sieht es bei der Paketvermittlung aus: Zu keinem Zeitpunkt der Datenübertra-gung wird eine direkte Verbindung zwischen den beiden beteiligten Stellen hergestellt.Stattdessen sind beide nur indirekt über ein loses Netz von Vermittlungsstellen, Routergenannt, miteinander verbunden. Damit auf diesem Weg Daten übertragen werden kön-nen, wird folgender Mechanismus verwendet:

� Die Daten werden in kleinere Einheiten unterteilt, die Datenpakete.

� Jedes einzelne Datenpaket wird mit der Absender- und der Empfängeradresse versehen.

� Der Absender übergibt jedes Datenpaket an den nächstgelegenen Router.

� Jeder beteiligte Router versucht, das Paket anhand der Empfängerangabe an den güns-tigsten Router weiterzuleiten, damit es letztendlich an seinem Ziel ankommt.

� Der Empfänger nimmt die Datenpakete entgegen und interpretiert sie je nach Daten- undÜbertragungsart auf irgendeine zwischen den beiden Stellen vereinbarte Art und Weise.

171

Grundlagen 4.1

4.1.2 Entstehung der Netzwerke

Wenn Sie sich die Geschichte der Computer anschauen, die in Kapitel 1, »Einführung«,skizziert wurde, fällt auf, dass die Verwendung von Netzwerken anfangs keinen Sinn er-geben hätte: Bei den frühen Großrechnern gab es keine standardisierte Software, die mit-einander hätte kommunizieren können. Darüber hinaus wurden sie zunächst über Schalt-tafeln und später über Lochkarten bedient. Es gab also keine Echtzeit-Interaktionzwischen Benutzer und Programm, so dass es erst recht abwegig war, verschiedene Com-puter miteinander interagieren zu lassen. Frühestens, als der Dialogbetrieb über Termi-nals (siehe Kapitel 3, »Hardware«, und Kapitel 5, »Betriebssystemgrundlagen«) eingeführtwurde, war an eine Vernetzung zu denken.

Geschichte des Internets

Der Anstoß für die Entwicklung eines Computernetzwerks kam aus einer eher unerwarte-ten Richtung: Die atomare Bedrohung des Kalten Krieges schürte die Angst der Verant-wortlichen in Politik und Militär in den USA, im Fall eines Atomkrieges handlungsunfähigzu werden, weil die Übermittlung von Informationen nicht mehr funktionieren könnte.Es war schlichtweg zu riskant, sich auf einen einzigen Zentralcomputer mit Terminals zuverlassen. Deshalb begann 1969 der Betrieb eines experimentellen Netzes aus vier Com-putern an verschiedenen US-amerikanischen Universitäten. Federführend für das Projektwar die (Defense Department’s) Advanced Research Projects Agency (ARPA, später auchDARPA), eine Forschungskommission des amerikanischen Verteidigungsministeriums,die 1957 als Reaktion auf den ersten sowjetischen Satelliten Sputnik gegründet wordenwar. Die USA wollten den Anschluss auf verschiedenen wichtigen Gebieten der Wissen-schaft nicht verpassen – und neben der Raumfahrt gehörte auch die Computertechnik zudiesen Gebieten. Folgerichtig hieß dieses erste Netzwerk ARPANET.

Zur reinen Paketvermittlung gehört zunächst einmal kein Mechanismus, der die vollständigeAuslieferung aller Datenpakete garantiert. Es wird standardmäßig weder der Erfolg noch dasAusbleiben einer Paketlieferung gemeldet. Im Übrigen wird auch keine verbindliche Rei-henfolge festgelegt. Da jedes einzelne Paket einen beliebigen Weg durch das Netzwerk neh-men kann, kommt mitunter ein später abgesendetes Paket noch vor einem früher versand-ten beim Empfänger an.

Um die potentiell unsichere Datenübertragung per Paketvermittlung für bestimmte Anwen-dungen zuverlässiger zu machen, wird zusätzlich eine Erfolgskontrolle implementiert.Außerdem werden die Pakete oft durchnummeriert, um die korrekte Reihenfolge wieder-herzustellen. Allerdings haben solche Maßnahmen nichts mit der eigentlichen Paketvermitt-lung zu tun und müssen in diesem Zusammenhang nicht beachtet werden. In der Regel sinddie Softwarekomponenten, die sich um die Übertragung der Datenpakete kümmern, garnicht in der Lage, diese zusätzlichen Kontrollinformationen selbst auszuwerten.

172

Netzwerkgrundlagen4

ARPANET-Anwendung

und -Technik

Allgemein sind bei der Betrachtung von Netzwerken immer mindestens zwei Ebenen zuunterscheiden: zum einen der Anwendungszweck des Netzwerks, zum anderen dessentechnische Realisierung. Bei näherem Hinsehen sind sogar noch weitere solcher Ebenenauszumachen; diese sogenannten Schichtenmodelle werden im Abschnit »Funktionsebe-nen von Netzwerken« ab Seite 176 besprochen. Interessanterweise stellt sich im Entwick-lungsverlauf von Netzwerken manchmal heraus, dass der gewünschte Anwendungszwecktechnisch anders realisierbar ist, aber auch oft, dass eine bestimmte technische Realisationvöllig anderen Anwendungen als der ursprünglich geplanten dienlich sein kann. Beson-ders in der Geschichte des Internets, dessen Vorläufer das ARPANET war, ist dies oft fest-zustellen.

Die ursprüngliche Anwendung dieses Netzes bestand lediglich darin, Datenbestände aufden unterschiedlichen angeschlossenen Computern automatisch zu synchronisieren, d. h.einfach aus Sicherheitsgründen den gleichen Informationsbestand auf mehreren Rech-nern bereitzuhalten.1

Grundgedanke der Vernetzung selbst war dabei besonders die Fähigkeit jedes beteiligtenComputers, Daten, die nicht für ihn selbst bestimmt waren, sinnvoll weiterzuleiten. Hier-aus ergeben sich zwei unschätzbare organisatorische und technische Vorteile:

� Ein Computer muss nicht direkt mit demjenigen verbunden sein, mit dem er Datenaustauschen soll.

� Der Ausfall oder die Überlastung eines bestimmten Verbindungsweges kann durch Al-ternativen kompensiert werden.

Auf diese Weise konnte das ursprüngliche Ziel, nämlich die Angriffs- und Ausfallsicher-heit des Netzes zu gewährleisten, erreicht werden.

Schon unmittelbar nach der Einrichtung des ARPANETs begann die oben erwähnte Wei-terentwicklung. Man stellte schnell fest, dass die technische Infrastruktur dieses Netzesfür weit mehr Anwendungen zu nutzen war als das vergleichsweise langweilige automati-sche Synchronisieren von Datenbeständen. So kam bald eine benutzerorientierte Mög-lichkeit des Dateiaustauschs hinzu. Außerdem war es schon für gewöhnliche Konfigura-tionsaufgaben unerlässlich, einem entfernten Computer unmittelbar Anweisungenerteilen zu können. Dies war der Ausgangspunkt für die Entwicklung der Terminalemula-tion, also der Benutzung des eigenen Terminals für einen Computer, an den es nicht un-mittelbar, sondern nur indirekt über das Netzwerk angeschlossen ist. Auch wenn dieseAnwendungen noch nicht sofort ihre späteren Namen – FTP und Telnet – erhielten und

1 Auch heutige Serversysteme vervielfältigen wichtige Daten auf diese Weise automatisch. Das Verfahrenwird Replikation genannt und kommt insbesondere bei Datenbank- oder Verzeichnisdienstservern zumEinsatz. In Kapitel 12, »Datenbanken«, wird es am Beispiel von MySQL beschrieben.

173

Grundlagen 4.1

die technischen Details ihrer Implementierung sich noch weiterentwickelten, sind siedennoch nach wie vor wichtige Nutzungsschwerpunkte des Internets.

Alles in allem wurde dieses Netzwerk schnell populär. Zwei Jahre nach seiner Einrich-tung, im Jahr 1971, waren bereits 40 Computer an verschiedenen Universitäten und an-deren staatlichen Forschungseinrichtungen angeschlossen, und es war bei weitem nichtnur die militärische Nutzung von Interesse. Auch akademisch hatte das Netz viel zu bie-ten: Wissenschaftler sind darauf angewiesen, Daten auszutauschen; hier ergab sich eineMöglichkeit, dies sehr schnell und effektiv zu tun.

Erfindung der E-Mail

1972 wurde dann der bis dahin bedeutendste Dienst dieses Netzes erfunden: Ray Tomlin-son, ein Mitarbeiter eines Ingenieurbüros in Kalifornien, verschickte die erste E-Mail. Bisheute zählt die E-Mail zu den erfolgreichsten und verbreitetsten Anwendungen des Net-zes; sie kann sich nach dem viel jüngeren World Wide Web noch immer auf einem gutenzweiten Platz in puncto Beliebtheit von Internetdiensten halten, und es ist auch nicht zusehen, warum sich dies in absehbarer Zeit ändern sollte.

Das ursprüngliche ARPANET wuchs immer weiter. Zudem wurden nach dem gleichenPrinzip andere, ähnliche Netze konstruiert. Dies ist nicht zuletzt der Tatsache zu verdan-ken, dass alle Schritte, die zur Entwicklung des Netzes beigetragen haben, von Anfang ansorgfältig dokumentiert und der Öffentlichkeit zugänglich gemacht wurden. Dieser Doku-mentationsstil ist bis heute beibehalten worden; die entsprechenden Dokumente heißenRFC (Request For Comments, etwa »Bitte um Kommentare«).

RFC-Dokumente

Es gibt bis heute über 6.300 solcher RFC-Dokumente, die alle online zur Verfügung ste-hen, zum Beispiel unter http://www.rfc-editor.org/rfc-index2.html. Die meisten sind tech-nische Beschreibungen von Entwürfen, Protokollen und Verfahrensweisen; nur wenige(in der Regel mit dem Datum 1. April) nehmen sich nicht ganz so ernst – zum Beispiel RFC2324, in dem das Protokoll HTCPCP zur Steuerung vernetzter Kaffeemaschinen vorge-schlagen wird, oder RFC 1300, ein nettes Gedicht über Namen und Begriffe, die im Zugeder Computer- und Netzwerkentwicklung ihre ursprüngliche Bedeutung verändert haben.

Alle Personen, Institutionen und Unternehmen, die etwas Entscheidendes zum ARPANETund späteren Internet beigetragen haben, haben dies in solchen Dokumenten erläutert.Dies ermöglicht es jedem beliebigen Hersteller von Hard- oder Software, mit seinen Pro-dukten diese Standards zu unterstützen, denn sie gehören keinem einzelnen Herstellerund keiner bestimmten Person, und niemand kann den Zugriff darauf beschränken oderLizenzgebühren fordern – ein entscheidender Grund dafür, warum die Protokolle des In-ternets heute vom Personal Computer bis zum Großrechner überall dominieren.

ARPANET + NSFNet= Internet

In den 1980er Jahren schließlich wurde der militärisch genutzte Teil des ARPANETs alsMilNet von ihm abgetrennt, und das restliche ARPANET wurde mit dem NSFNet, demNetz der National Science Foundation, und einigen anderen Netzwerken zum Internet zu-

174

Netzwerkgrundlagen4

sammengeschlossen. Die kommerzielle Nutzung, heute Hauptverwendungsgebiet des In-ternets, ließ danach aber noch fast 15 Jahre auf sich warten. Denn die Anwendungen desInternets waren zwar robust und wenig störanfällig, aber alles andere als benutzerfreund-lich. Abgesehen davon waren die ersten Personal Computer, die in der zweiten Hälfte der1970er Jahre auftauchten, weder konzeptionell noch von der Leistung her in der Lage,mit den Internetprotokollen etwas anzufangen.

DFÜ Recht früh wurde dagegen die Datenfernübertragung (DFÜ), also der Datenaustausch überTelefonleitungen, für Home- und Personal Computer eingeführt. Seit Ende der 1970erJahre wurden sogenannte Akustikkoppler verwendet: Geräte, die an den Computer ange-schlossen wurden und auf die einfach der Telefonhörer gelegt werden musste. Diese lang-samen und störanfälligen Apparate wurden bald durch Modems ersetzt, die eine direkteVerbindung zwischen Computer und Telefonleitung zuließen und im Laufe der Jahre all-mählich schneller und zuverlässiger wurden. Hauptanwendungsgebiete waren auf der ei-nen Seite die sogenannten Mailboxen, also Informations- und Datenangebote für Compu-ter, die eine direkte Telefonverbindung zum Mailboxrechner herstellten. Auf der anderenSeite entstanden in den 1980er Jahren die meisten kommerziellen Onlinedienste wieCompuServe, AOL oder in Deutschland BTX (Vorläufer von T-Online), das zunächst überspezielle Terminals statt über PCs mit einer bestimmten Software genutzt wurde.

Das WWW Die Entwicklung des Internets vom exklusiven Wissenschaftler-Netz zum Massenmediumnahm ihren Anfang erst 1989 in der Schweiz, am Europäischen Forschungsinstitut fürKernphysik (CERN) in Genf. Dort machte sich der britische Informatiker Tim Berners-LeeGedanken darüber, wie man Netzwerke, besonders das Internet, für den einfachen undeffizienten Zugriff auf wissenschaftliche Dokumente nutzen könnte. Ergebnis dieser Ar-beit war die Grundidee des World Wide Webs, eines hypertextbasierten Informationssys-tems, das die Infrastruktur des Internets zur Datenübermittlung nutzen sollte.

Hypertext ist nichts anderes als Text mit integrierten Querverweisen, die automatischfunktionieren. Mit anderen Worten: Durch Betätigen des Querverweises, der in diesemZusammenhang Hyperlink heißt, stellt der Text selbst – beziehungsweise das System, dasdiesen darstellt – die Verbindung mit dem verknüpften Dokument her.

Nun war Hypertext 1989 gewiss nichts Neues. Versuche damit reichen zurück bis in die1950er Jahre, in Hilfesystemen war er in den 1980er Jahren bereits Alltag. Neu war nurseine Nutzung über ein Netzwerk, genauer gesagt über das Internet.

WWW-Bestandteile

So entstand ein äußerst effektives Informationssystem für Wissenschaftler, die auf dieseWeise ihre Forschungsergebnisse miteinander austauschten. Der Prototyp dieses Systems,das World Wide Web heißen sollte, umfasste im Einzelnen die folgenden Bestandteile:

� ein spezielles neues Anwendungsprotokoll, das Hypertext Transfer Protocol (HTTP)

� einen Serverdienst, der in der Lage ist, Anfragen, die in der Sprache des HTTP formu-liert sind, auszuliefern

175

Grundlagen 4.1

� eine neu geschaffene Formatierungs- und Beschreibungssprache für solche Hypertext-Dokumente, die Hypertext Markup Language (HTML)

� ein Anzeigeprogramm für entsprechend formatierte Dokumente, den Browser

1991 wurde das System der Öffentlichkeit vorgestellt. Es wurde praktisch von Anfang annicht nur zu ernsthaften wissenschaftlichen Zwecken genutzt, sondern allgemein zur Ver-öffentlichung von Text, Bildern und den verschiedensten Themen. Zunächst war die Nut-zung des Systems beschränkt auf wissenschaftliches Personal sowie interessierte Studen-ten. Sie störten sich nicht am mangelnden Komfort der ersten Browser oder den geringenLayoutfähigkeiten der ersten HTML-Versionen. Als jedoch immer mehr private Benutzerdazukamen – was durch das allmähliche Entstehen kommerzieller Internetprovider undBrowser für PC-Betriebssysteme wie Windows oder Mac OS gefördert wurde –, ändertesich dies. Der berühmt gewordene »Browserkrieg« zwischen Netscape und Microsoftschuf letztendlich Fakten, die niemand für möglich oder auch nur wünschenswert gehal-ten hätte, die jedoch bis heute das Wesen des World Wide Webs bestimmen.

Zwei Merkmale sind hier besonders wichtig:

� Die Seitenbeschreibungssprache HTML wurde immer mehr für die Definition des Sei-tenlayouts genutzt statt nur für die Struktur. Für Websites, die ein möglichst großes Pu-blikum erreichen sollen, das weniger technisch und mehr inhaltlich interessiert ist, istdas Layout wichtiger als die Struktur. (Inzwischen kommt für das Layout allerdingspraktisch nur noch CSS zum Einsatz, und HTML konzentriert sich wieder – wie ur-sprünglich angedacht – auf die Dokumentstruktur.)

� Der Anteil kommerzieller Websites am gesamten Bestand wurde immer größer undüberwiegt heute bei weitem; das Angebot im Web ist den Rundfunkmedien wie etwadem Fernsehen ähnlicher geworden. Während Tim Berners-Lee sich ursprünglich einNetz vorgestellt hatte, in dem alle Teilnehmer sowohl Anbieter als auch Konsumentenvon Inhalten sein sollten, wird das Web heutzutage von vielen weitgehend passiv alsMedium genutzt. Erst die neu entstehenden »Web 2.0«-Tools wie Blogs, Wikis und an-dere kommen Berners-Lees eigentlichen Ideen näher, wobei die gleichzeitig zu beob-achtende Kommerzialisierung samt Aufkauf der wichtigsten Sites durch große Medien-konzerne sicherlich nicht in seinem Sinne ist.

Lokale Netze

Einen vollkommen anderen Anstoß zur Entwicklung von Netzwerken gab das Aufkom-men des sogenannten Outsourcings in der Computertechnik, also der Verlagerung der Re-chenleistung von einem Zentralcomputer auf den einzelnen Schreibtisch.

Die fortschreitende Ausstattung von Büros mit Personal Computern führte mangels ande-rer Optionen zunächst zur Blüte des »Turnschuhnetzwerks«: Anwender liefen mit Daten-trägern bewaffnet durch das ganze Gebäude, um Daten miteinander auszutauschen oder

176

Netzwerkgrundlagen4

zum Beispiel einen speziellen Drucker zu verwenden. Auch zwischen verschiedenen Un-ternehmen erfreute sich der sogenannte Datenträgeraustausch großer Beliebtheit: Die Da-tensätze von Geschäftsvorfällen wurden auf Disketten oder Magnetbändern zwischen deneinzelnen Unternehmen hin und her gereicht.

Lokale Firmennetzwerke wurden zwar bereits Mitte der 1970er Jahre bei XEROX PARCerfunden, aber erst Ende der 80er Jahre rückten sie stärker ins allgemeine Interesse. Eswar ein Bedürfnis der Anwender von PCs, miteinander Daten auszutauschen, einfach des-halb, weil die meisten Vorgänge der Datenverarbeitung von mehreren Mitarbeitern erle-digt werden. So entstanden viele verschiedene Arten der Netzwerkhardware. Neben dembereits genannten Ethernet mit seinen vielfältigen Varianten gab es beispielsweise auchToken Ring von IBM, ARCnet oder auch einfache serielle Direktverbindungen zwischenComputern über die sogenannten Nullmodemkabel.

Was die Software angeht, so wurden die eigentlich nicht dafür geeigneten PC-Betriebssys-teme um Netzwerkfähigkeiten erweitert. Hinzu kamen spezielle Betriebssysteme für Ser-ver, also solche Rechner, die anderen im Netzwerk verschiedene Ressourcen zur Verfü-gung stellen. Bekannt sind hier etwa Novell NetWare, IBM OS/2 oder später auchWindows NT Server.

Wenn Sie in diesem Zusammenhang Linux und andere Unix-Varianten vermissen, dannliegt das daran, dass Unix als PC-Betriebssystem und als Serversystem für PC-Netzwerkeerst einige Jahre später populär wurde. Ein gewisses Grundverständnis für Unix ist übri-gens unerlässlich, um die Funktionsweise der Internetprotokolle nachvollziehen zu kön-nen. Einige Grundlagen dieses Systems werden in Kapitel 5, »Betriebssystemgrundlagen«,und 7, »Linux«, erläutert.

4.2 Funktionsebenen von Netzwerken

Wie bereits in der Einleitung mehrfach angedeutet wurde, besteht ein gewisses Problembeim Verständnis von Netzwerken darin, dass einige sehr verschiedene Aspekte zu ihremFunktionieren beitragen. Schon ganz zu Beginn haben Sie eine grobe Unterteilung in diedrei Ebenen Verkabelung oder allgemeine Netzwerkhardware, Kommunikationsstruktu-ren oder Netzwerkprotokolle und schließlich Anwendungen eines Netzwerks kennen-gelernt.

Eine so ungenaue Einteilung lässt die grundsätzliche Schwierigkeit erkennen, reicht abernicht ganz aus, um Netzwerke in all ihren Bestandteilen zu begreifen, und schon gar nicht,um verschiedene Arten von Netzwerken miteinander zu vergleichen. Auch die Tatsache,dass ein und dieselbe Komponente auf einer bestimmten Ebene wahlweise mit mehrerenunterschiedlichen Elementen einer anderen Funktionsebene zusammenarbeiten kann,wird so noch nicht transparent genug.

177

Funktionsebenen von Netzwerken 4.2

4.2.1 Das OSI-Referenzmodell

Um die Ebenen, die ein Netzwerk ausmachen, ganz genau auseinanderhalten zu können,bedient man sich sogenannter Schichtenmodelle (Layer Models). Das bekannteste und ver-breitetste von ihnen ist das OSI-Referenzmodell der internationalen Standardisierungsor-ganisation ISO. OSI steht für »Open Systems Interconnect«, also etwa »Verbindung zwi-schen offenen Systemen«. Das Modell wurde 1978 entworfen und besteht aus siebenübereinander angeordneten Schichten, die jeweils einen Aspekt der Netzwerkkommuni-kation beschreiben. Ganz unten ist die Hardware angesiedelt, ganz oben befindet sich dieAnwendung des Netzes. Hier zunächst die Schichten des OSI-Modells im Überblick, dieBeschreibung folgt danach:

Die einzelnen OSI-Schichten

1. Bitübertragungsschicht (Physical Layer)

2. Sicherungsschicht (Data Link Layer)

3. Vermittlungsschicht (Network Layer)

4. Transportschicht (Transport Layer)

5. Kommunikationssteuerungsschicht (Session Layer)

6. Darstellungsschicht (Presentation Layer)

7. Anwendungsschicht (Application Layer)

Die Bezeichnung »OSI-Referenzmodell« deutet bereits darauf hin, dass es sich nicht um ei-nen Standard handelt, der konkrete Netzwerkprotokolle definiert. Das OSI-Modell defi-niert nur die Funktionen der einzelnen Schichten und ist somit ein Schema zur Definitionsolcher Standards, beispielsweise für die weiter unten vorgestellten IEEE-802.3-Stan-dards. Jeder Standard deckt dabei immer nur Teilaspekte des OSI-Modells ab.

Die Bedeutung der einzelnen Schichten des OSI-Modells

1. Die Bitübertragungsschicht oder auch physikalische Schicht beschreibt nur, wie diereine Übertragung der Daten elektrisch beziehungsweise allgemein physikalisch von-stattengeht. OSI-basierte Netzwerkstandards beschreiben in dieser untersten Schichtdie Struktur der Signale. Dazu gehören unter anderem folgende Aspekte:

� zulässiger Amplitudenbereich

� Versand- und Empfangsmethoden für Bitfolgen

� Operationen zur Umwandlung dieser Bitfolgen in Daten für die nächsthöhereSchicht (und umgekehrt)

� Verarbeitungsgeschwindigkeit der Bitfolgen

� Start- und Stoppsignale

� Erkennung beziehungsweise Unterscheidung der Signale bei gemeinsam genutztenMedien

178

Netzwerkgrundlagen4

� Übertragungseigenschaften der Medien (Kabel, Lichtwellenleiter, Funk o. Ä.)

� Die Medien selbst sowie Netzwerkkarten oder Onboard-Netzwerkchips sind keinBestandteil der Definitionen auf der ersten Schicht. Die Hersteller müssen selbst da-für Sorge tragen, dass ihre Produkte den Spezifikationen genügen.

2. Die Sicherungsschicht beschreibt alle Vorkehrungen, die dafür sorgen, dass aus den ein-zelnen zu übertragenden Bits, also dem reinen physikalischen Stromfluss, ein verläss-licher Datenfluss wird. Dazu gehören die beiden Teilaufgaben Media Access Control(MAC) – die Regelung des Datenverkehrs, wenn mehrere Geräte den gleichen Kanalverwenden – sowie Logical Link Control (LLC), wobei es um die Herstellung und Auf-rechterhaltung von Verbindungen zwischen den Geräten geht.

Viele Protokolle dieser Schicht implementieren eine Fehlerkontrolle, bei Ethernet wirdzum Beispiel CRC verwendet. In manchen Fällen wird auch Quality of Service (QoS),eine Art Prioritätsinformation, benutzt. In der Sicherungsschicht werden die Bitfolgenin Einheiten einer bestimmten Größe unterteilt und mit einem Header aus Metainfor-mationen versehen. Je nach Standard werden auf dieser Ebene unterschiedlicheNamen für diese Datenpakete verwendet. Bei Ethernet und Token Ring ist beispiels-weise von »Frames« die Rede, bei ATM von »Zellen«. Der Payload (Nutzdateninhalt)eines Frames beziehungsweise einer Zelle beginnt in aller Regel mit dem Header eineshineinverschachtelten Pakets der nächsthöheren Schicht. Es kann aber auch vorkom-men, dass Pakete verschiedener Protokolle der zweiten Schicht ineinander verschach-telt werden. Dies ist zum Beispiel bei PPP over Ethernet, PPP over ATM oder ATM overSDH der Fall.

3. Die Netzwerkschicht oder Vermittlungsschicht definiert diejenigen Komponenten undProtokolle des Netzwerks, die an der indirekten Verbindung von Computern beteiligtsind. Hier ist sogenanntes Routing erforderlich, das Weiterleiten von Daten in anderelogische oder auch physikalisch inkompatible Netzwerke. So gehören zum Beispielauch alle diejenigen Protokolle zur Netzwerkschicht, die die logischen Computeradres-sen der höheren Schichten in die physikalischen Adressen umsetzen, bei Ethernet zumBeispiel ARP. Auch auf der Netzwerkschicht werden die Daten in Pakete unterteilt, de-ren Namen sich je nach konkretem Protokoll unterscheiden. Das mit Abstand verbrei-tetste Protokoll dieser Ebene, das weiter unten ausführlich vorgestellte IP-Protokoll,bezeichnet sie als »IP-Datagramme«.

4. Die Protokolle der Transportschicht lassen sich in verbindungsorientierte Protokollewie TCP und verbindungslose Protokolle wie etwa UDP unterteilen. Auf dieser Schichtwerden vielfältige Aufgaben erledigt. Ein wichtiger Aspekt sind Multiplex-Mechanis-men, die die Anbindung der Datenpakete an konkrete Prozesse auf den kommunizie-renden Rechnern ermöglichen, bei TCP und UDP beispielsweise über Portnummern,bei SPX über Connection-IDs. Verbindungsorientierte Transportprotokolle wie TCPoder SPX sind zudem meist mit einer Fluss- und Fehlerkontrolle ausgestattet, um zugewährleisten, dass Pakete vollständig am Ziel ankommen und dort in der richtigen

179

Funktionsebenen von Netzwerken 4.2

Reihenfolge verarbeitet werden. Auch auf der vierten Schicht verwenden verschiedeneProtokolle jeweils eigene Bezeichnungen für die Datenpakete; so ist etwa von »UDP-Datagrammen«, »TCP-Sequenzen« und »SPX-Paketen« die Rede.

5. Die Kommunikationssteuerungsschicht oder Sitzungsschicht stellt die Kommunikationzwischen kooperierenden Anwendungen oder Prozessen auf verschiedenen Rechnernsicher.

6. Die Darstellungs- oder Präsentationsschicht dient der Konvertierung und Übertragungvon Datenformaten, Zeichensätzen, grafischen Anweisungen und Dateidiensten.

7. Die Anwendungsschicht schließlich definiert die unmittelbare Kommunikation zwi-schen den Benutzeroberflächen der Anwendungsprogramme, kümmert sich also umdie Verwendung derjenigen Dienste über das Netzwerk, die Benutzer unmittelbar zuGesicht bekommen.2

Unterschied zur Praxis

Da das OSI-Modell eine Zusammenstellung von möglichen Fähigkeiten für viele verschie-dene Arten von Netzwerken darstellt, kann es natürlich vorkommen, dass die eine oderandere Schicht in einem bestimmten Netzwerk wichtiger ist als eine andere oder dass zumBeispiel ein Protokoll Funktionen zweier Schichten abdeckt oder auch nur eine Teilfunk-tion einer Schicht erbringt. Um diese Umstände deutlich zu machen, wendet man häufiganders aufgeteilte Schichtenmodelle an mit meist weniger, selten mehr Schichten. Diesgerade dann, wenn es um die konkrete Beschreibung einer bestimmten Art von Netzwerkgeht.

4.2.2 Das Schichtenmodell der Internetprotokolle

Im Bereich der TCP/IP-Netzwerkprotokolle, die unter dem Betriebssystem Unix und imInternet den Standard darstellen, wird zum Beispiel häufig ein Modell aus nur vier Schich-ten verwendet. Dies wird dem Wesen dieser Protokolle auch wesentlich eher gerecht alsdas OSI-Modell, denn die Internetprotokolle sind bereits einige Jahre älter als OSI. Es han-delt sich um das Schichtenmodell des ursprünglichen ARPANETs, das vom US-Vertei-digungsministerium finanziert wurde. Deshalb wird es meist als DoD-Modell (»Depart-ment of Defense«), manchmal auch als DDN-Modell (»Department of Defense Network«)bezeichnet.

Die vier Schichten bei TCP/IP-Netzwerken nach dem DDN Standard Protocol Handbooksind:

1. Netzzugangsschicht (Network Access Layer oder Link Layer)

2. Internetschicht (Internet Layer)

2 Halb scherzhaft wird der Anwender des vernetzten Rechners manchmal als achte Schicht bezeichnet, undProbleme, die durch fehlerhafte Benutzung zustande kommen, nennt man entsprechend »Layer-8-Fehler«.

180

Netzwerkgrundlagen4

3. Host-zu-Host-Transportschicht (Host-to-Host Transport Layer oder einfach TransportLayer)

4. Anwendungsschicht (Application Layer)

Diese vier Schichten sind den konkreten Gegebenheiten von TCP/IP-Netzwerken ange-passt, bei denen es zum Beispiel nur theoretisch möglich ist, von einer separaten Sitzungs-schicht zu sprechen.

Das OSI-Referenzmodell kann mit dem DDN-Schichtenmodell deshalb nur grob in Bezie-hung gesetzt werden. Tabelle 4.1 zeigt, wie ein solcher Vergleich ungefähr aussehenkönnte.

Die Bedeutung der Schichten des DDN-Modells

1. Die Netzzugangsschicht (Network Access Layer oder Link Layer) beschreibt, wie die phy-sikalische Datenübertragung erfolgt. Die Aufgaben, die auf dieser Schicht zu erledigensind, werden durch viele recht unterschiedliche Protokolle erbracht, einfach deshalb,weil es kaum eine Sorte von Netzwerkhardware gibt, auf der die Internetprotokollenoch nicht implementiert worden wären. Die eigentlichen Kernprotokolle, zu denenbesonders die Namensgeber der Protokollfamilie gehören – also das Transmission Con-trol Protocol (TCP) und das Internet Protocol (IP) – kümmern sich überhaupt nicht umdie physikalischen Verhältnisse. Damit dies möglich ist, müssen auf dieser unterstenSchicht die Bitübertragung und die Transportsicherung zuverlässig zur Verfügung ge-stellt werden.

Auf diese Weise entspricht die Netzzugangsschicht der Internetprotokolle den beidenuntersten Schichten von OSI.

OSI-Modell DDN-Modell

7. Anwendungsschicht 4. Anwendungsschicht

6. Darstellungsschicht

5. Sitzungsschicht

4. Transportschicht 3. Host-zu-Host-Transportschicht

3. Vermittlungsschicht 2. Internetschicht

2. Sicherungsschicht 1. Netzzugangsschicht

1. Bitübertragungsschicht

Tabelle 4.1 Vergleich zwischen dem OSI-Referenzmodell und demDDN-Schichtenmodell der Internetprotokolle

181

Funktionsebenen von Netzwerken 4.2

2. Die Internetschicht (Internet Layer), die im Wesentlichen der Vermittlungsschicht desOSI-Modells ähnelt, kümmert sich um die logische Adressierung der Rechner im Netz,durch die die grundsätzliche Identifizierbarkeit des jeweiligen Rechners sichergestelltwird. Eine weitere wichtige Aufgabe auf dieser Ebene ist das Routing, also die Weiter-leitung von Daten über verschiedene physikalisch und/oder logisch getrennte Netzehinweg. Grundlage dieser Tätigkeiten ist das IP-Protokoll (Internet Protocol). Es defi-niert die IP-Adressen, 32 (in einer neueren Version 128) Bit breite Nummern, die deneinzelnen Rechnern zugewiesen werden und die der Unterscheidung der einzelnenNetzwerke und der Rechner in diesen Netzen dienen. Außerdem versieht es jedes Da-tenpaket mit einem Header, also einer Zusatzinformation, die insbesondere die Quell-adresse des sendenden Rechners und die Zieladresse des empfangenden Hosts enthält.Ein Datenpaket dieser Ebene wird als Datagramm bezeichnet.

3. Die Host-zu-Host-Transportschicht (Host-to-Host Transport Layer) kümmert sich um denzuverlässigen Datenaustausch zwischen den kommunizierenden Rechnern. Im Wesent-lichen sind hier zwei verschiedene Protokolle verantwortlich (neben anderen, seltenverwendeten). Diese beiden Protokolle werden jedoch niemals gleichzeitig, sondernimmer alternativ verwendet. Das einfachere und weniger robuste UDP (User DatagramProtocol) stellt einen schlichten und wenig datenintensiven Mechanismus zur Verfü-gung, der die direkte Nutzung der IP-Datagramme für die Host-zu-Host-Kommunika-tion erlaubt. Hierbei wird keine virtuelle Verbindung zwischen den beiden Rechnernhergestellt; es findet also keine Kontrolle über einen kontinuierlichen Datenstrom statt.Das erheblich komplexere TCP (Transmission Control Protocol) hat zwar einen deutlichgrößeren Overhead (Daten-Mehraufwand durch Verwaltungsinformationen) als UDP,stellt aber dafür einen zuverlässigen Transportdienst dar: Es wird eine virtuelle Verbin-dung zwischen den beiden Hosts hergestellt. Sie besteht darin, dass die Datenpaketedurchnummeriert werden und eine Übertragungskontrolle und eventuelle Neu-Über-tragung jedes einzelnen Pakets stattfinden. Ob eine Anwendung nun UDP oder TCPverwendet, ist ihre eigene Entscheidung. Allgemein benutzen Dienste, die kontinuier-lich größere Datenmengen transportieren müssen, eher TCP, während etwa Verwal-tungs- und Konfigurationsdienste zu UDP tendieren.

Im Vergleich zum OSI-Modell nimmt die Host-zu-Host-Transportschicht insbesonderedie Aufgaben der OSI-Transportschicht wahr; je nach konkretem Protokoll könnenauch Funktionen der Sitzungsschicht ausgemacht werden.

Der Begriff Host (Gastgeber) bezeichnet übrigens jeden Computer, der an ein Netzwerkangeschlossen ist und mit anderen Geräten kommuniziert. Es ist keine Bezeichnung füreinen expliziten Dienstleistungsrechner, dieser (oder vielmehr die darauf ausgeführteSoftware) wird Server genannt. Der Host muss lediglich vom Router abgegrenzt wer-den, der Pakete nicht für sich selbst entgegennimmt, sondern an andere Netze weiter-leitet. Da das Routing jedoch eine Ebene weiter unten stattfindet, ist es ein auf dieser

182

Netzwerkgrundlagen4

Schicht unsichtbares Detail – die Transportschicht ist nur für Rechner relevant, dieDaten für den Eigenbedarf benötigen.3

4. Die Anwendungsschicht (Application Layer) schließlich definiert die Kommunikationzwischen den Anwendungsprogrammen auf den einzelnen Rechnern; hier arbeitenProtokolle wie HTTP für Webserver, FTP zur Dateiübertragung oder SMTP für den E-Mail-Versand. Die Schicht entspricht im Wesentlichen der gleichnamigen oberstenSchicht des OSI-Referenzmodells, wobei auch einige Komponenten von dessen Dar-stellungsschicht mit hineinspielen. Beispielsweise bedarf HTML-Code, der von einerWebserver-Anwendung ausgeliefert wird, der Interpretation durch einen Browser; hierentspräche der HTML-Code selbst eher der Darstellungsschicht, die Browseranwen-dung aber der OSI-Anwendungsschicht. Sitzungsmanagement ist dagegen vom ur-sprünglichen Design her gar nicht vorgesehen; falls es benötigt wird, muss es durch dieAnwendungen selbst bereitgestellt werden. In Kapitel 18, »Webserveranwendungen«,erfahren Sie beispielsweise, wie Sie mit Hilfe der Programmiersprache PHP Websessi-ons verwalten.

4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells

In diesem Abschnitt wird erläutert, wie die Kommunikation über die Schichten vonSchichtenmodellen funktioniert. Dazu werden zwei Beispiele angeboten: Das erste ist einAlltagsbeispiel, das mit Computernetzwerken nichts zu tun hat, während das zweite eineinfaches Beispiel der Netzwerkkommunikation darstellt.

Ein Alltagsbeispiel

Neben der Datenübertragung im Netzwerk lassen sich auch völlig andere Arten der Kom-munikation in Schichten gliedern. Beispielsweise kann die Kommunikation zwischen Ge-sprächspartnern am Telefon folgendermaßen unterteilt werden:

1. Die beiden Telefone sind physikalisch über eine Telefonleitung miteinander ver-bunden.

2. Die Verbindung zwischen den Telefonanschlüssen kommt dadurch zustande, dass ei-ner der beiden Teilnehmer die eindeutige Nummer des anderen wählt und der anderedas Gespräch annimmt.

3. Über die Telefonleitung werden Informationen in Form von elektromagnetischen Im-pulsen übertragen, beim klassischen Telefonnetz analog, bei ISDN, Mobilfunk oderVoIP dagegen digital.

3 Router verständigen sich allerdings auch mit Hilfe der weiter unten in diesem Kapitel vorgestellten Rou-ting-Protokolle miteinander; diese Protokolle werden durchaus auf der Host-zu-Host-Transportschichtausgeführt. Trotzdem ist dieses technische Detail für die eigentlichen Anwendungshosts uninteressantund unsichtbar.

183

Funktionsebenen von Netzwerken 4.2

4. An den beiden Endpunkten der Kommunikation sprechen die Gesprächspartner in ihrejeweilige Sprechmuschel hinein; die akustischen Signale werden in elektromagnetischeImpulse umgewandelt (bei den digitalen Varianten kommt noch die Analog-digital-Wandlung hinzu). Umgekehrt hört ein Teilnehmer aus der Hörmuschel wiederumakustische Signale, die aus den übertragenen Impulsen zurückverwandelt wurden.

5. Die akustischen Signale, die die Gesprächspartner miteinander austauschen, werden zuSilben, Wörtern und schließlich Sätzen kombiniert.

6. Aus den einzelnen Bestandteilen der Sprache ergibt sich schließlich der eigentliche In-halt der Nachrichten, die miteinander ausgetauscht werden.

Möglicherweise besteht dieses Kommunikationsmodell sogar aus noch mehr Schichten:Angenommen, die beiden Gesprächspartner sind leitende Angestellte oder gar Direktoreneines großen Unternehmens. Dann wird in aller Regel auf beiden Seiten eine Sekretärindie Gesprächsvermittlung vornehmen, möglicherweise ist sogar noch eine Telefonzent-rale involviert. Noch komplizierter wird es beispielsweise, wenn Dolmetscher mitwirken.

Höhere Schichten als Abstraktion

Dieses einfache Beispiel zeigt deutlich, dass alle Ebenen, die sich oberhalb der untersten,also der physikalischen Ebene befinden, nur Abstraktionen darstellen, durch die denübertragenen Signalen jeweils ein neuer Sinnzusammenhang zugeordnet wird. Die ei-gentliche Verbindung erfolgt nämlich stets nur auf dieser untersten Ebene! Für jedesSchichtenmodell gilt daher zusammenfassend Folgendes:

Die Daten, die über einen Kommunikationskanal übertragen werden sollen, werden aufder Seite des Senders zunächst Schicht für Schicht nach unten weitergereicht und jeweilsmit den spezifischen Zusatzinformationen für diese Schicht versehen. Schließlich werdensie über die unterste Schicht, die eigentliche physikalische Verbindung, übertragen. Aufder Empfängerseite werden sie dann wieder schichtweise nach oben weitergeleitet. JedeSchicht ermittelt die für sie bestimmten Informationen und regelt die Weiterleitung andie nächsthöhere Schicht.

Was in dem Telefonbeispiel geschieht, wird schematisch in Abbildung 4.1 dargestellt:Während die Gesprächspartner den Eindruck haben, in einem direkten Gespräch mitein-ander zu kommunizieren, geschieht in Wirklichkeit etwas erheblich Komplexeres: Die ge-sprochene Sprache (die eigentlich aus Silben beziehungsweise einzelnen Lauten besteht,die letztlich einfach nur Schallwellen sind) wird in eine andere Form von Information um-gewandelt, über eine elektrische Leitung übertragen und auf der Empfängerseite wiederzusammengesetzt.

Wichtig ist außerdem, dass jede Schicht immer nur die für sie selbst bestimmten Informa-tionen auswertet. Beim Empfang von Daten haben die niedrigeren Schichten überhaupterst dafür gesorgt, dass die Informationen auf der entsprechenden Schicht angekommensind, die Spezialinformationen der höheren Schichten sind der aktuellen Schicht dagegen

184

Netzwerkgrundlagen4

unbekannt. Sie muss lediglich anhand ihrer eigenen Informationen dafür sorgen, dass dieDaten an die korrekte Stelle einer höheren Schicht ausgeliefert werden. Auf diese Weiseist jede Schicht virtuell mit der Schicht der gleichen Stufe auf der anderen Seite verbun-den; das tatsächliche Zustandekommen dieser Verbindung ist für die jeweilige Schicht da-gegen absolut unsichtbar.

Ein Netzwerkbeispiel

Dieses zweite Beispiel – der Versand einer E-Mail an Galileo Press – zeigt, wie sich diebeim Telefonbeispiel erläuterten Sachverhalte wieder auf Netzwerke übertragen lassen.Schematisch geschieht Folgendes:

Abbildung 4.1 Schichtenmodell eines Telefongesprächs. Die tatsächlicheVerbindung besteht nur auf der Ebene der Telefonleitung!

Schallwellen

ElektromagnetischeImpulse

Punkt-zu-Punkt-Verbindung

Telefonleitung

EmpfängerSender

Silben: Hal-lo;einzelne Laute

Hört: »Hallo!«

Schallwellen

ElektromagnetischeImpulse

Punkt-zu-Punkt-Verbindung

Telefonleitung

Silben: Hal-lo;einzelne Laute

Sagt: »Hallo!«

185

Funktionsebenen von Netzwerken 4.2

1. In meinem E-Mail-Programm, zum Beispiel Mozilla Thunderbird, verfasse ich den ei-gentlichen Inhalt der Mail, als Empfänger setze ich [email protected] ein. Nachdemich alles fertig geschrieben habe, drücke ich auf den Absendeknopf.

2. Da eine E-Mail eine in sich geschlossene Dateneinheit darstellt, die in ihrer ursprüng-lichen Reihenfolge beim Empfänger ankommen muss, wird der Transport durch dasTCP-Protokoll übernommen, dessen eingebaute Datenflusskontrolle dafür sorgt, dassalle Daten vollständig und in der richtigen Reihenfolge übertragen werden.

3. Die Datenpakete, die durch das TCP-Protokoll angelegt wurden, werden nun durch dasIP-Protokoll mit der korrekten Absender- und Empfängeradresse versehen. DieseAdressen haben nichts mit den nur auf der Anwendungsebene wichtigen E-Mail-Adressen zu tun. Vielmehr geht es darum, dass mein Rechner die Daten an den zustän-digen Mailserver beziehungsweise an einen Vermittlungsrechner versendet.

4. Die fertig adressierten Datenpakete werden nun dem eigentlichen physikalischen Netz-werk anvertraut und entsprechend übertragen.

Auf der Empfängerseite – das heißt auf dem Serverrechner, der das Postfach [email protected] verwaltet – kommen die Daten dann folgendermaßen an:

1. Über die physikalische Netzwerkverbindung des Serverrechners treffen Datenpaketeein.

2. Auf der Ebene des IP-Protokolls werden die Datenpakete nach den zuständigen Trans-portdiensten sortiert und an diese weitergereicht – die E-Mail wird dem TCP-Dienstübergeben.

3. Der TCP-Dienst stellt fest, dass die entsprechenden Datenpakete für den Mailserver(gemeint ist das Programm, nicht der Rechner selbst) bestimmt sind, und reicht sie andiesen weiter.

4. Der Mailserver wertet die E-Mail-Adresse des Empfängers aus und speichert die Mailin dem Postfach [email protected]. Dort kann sie jederzeit vom berechtigten Emp-fänger abgeholt werden.

Die Übertragung der E-Mail vom empfangenden Server an das E-Mail-Programm des ei-gentlichen Empfängers funktioniert im Großen und Ganzen genauso, wenngleich auf derAnwendungsebene ein anderes Protokoll zum Einsatz kommt.

Abbildung 4.2 zeigt noch einmal schematisch, wie die Übertragung funktioniert. Mehrüber die grundlegenden E-Mail-Protokolle erfahren Sie im Abschnitt »Verschiedene Inter-net-Anwendungsprotokolle« ab Seite 256.

186

Netzwerkgrundlagen4

4.3 Klassifizierung von Netzwerken

Nachdem Sie nun mit Hilfe der Schichtenmodelle eine Möglichkeit kennengelernt haben,unterschiedliche Netzwerke in ihren Funktionen miteinander zu vergleichen, sollten Sieauch verstehen, worin sie sich unterscheiden. Es gibt diverse Unterscheidungsmerkmale,die zwar nicht genau den Schichten der Modelle entsprechen, aber doch ebenfalls meh-rere Aspekte der einzelnen Netzwerke betreffen. Es handelt sich um die Unterscheidungnach der Reichweite des Netzwerks, der physikalischen Grundstruktur oder Topologieund zuletzt nach der zentralen oder dezentralen Verwendung des jeweiligen Netzes.

4.3.1 Die Reichweite des Netzwerks

Bei der Unterteilung der Netzwerke entsprechend der Reichweite – also nach der geogra-fischen Größenordnung, die das Netzwerk überbrückt – werden insgesamt vier Stufen un-terschieden:

� Das Local Area Network (LAN) – lokales Netzwerk – beschreibt ein Netzwerk, das anein einzelnes zusammenhängendes Areal gebunden ist, also etwa einen Raum, ein Ge-bäude oder maximal ein zusammenhängendes (Firmen-)Gelände. LANs sind heutzu-tage weitverbreitet in Wirtschaftsunternehmen, Schulen und Universitäten oder ande-ren Organisationen und Instituten.

Abbildung 4.2 Übertragung einer E-Mail vom E-Mail-Programm des Absenders auf den Postfachserver des Empfängers. In der Regel sind allerdings mehrere Zwischenstationen beteiligt.

Anwendungsschicht

Host-zu-Host-Transportschicht

Internetschicht

Netzzugangsschicht

Speichern der Mailim richtigen Postfach

Zusammensetzendes TCP-Datenstroms

Empfang durchIP-Protokoll

PhysikalischerEmpfang

Mail [email protected]

ZuverlässigeTCP-Übertragung

Adressierungdurch IP-Protokoll

PhysikalischerNetzwerkzugriff

E-Mail-ServerE-Mail-Absender

187

Klassifizierung von Netzwerken 4.3

� Das Metropolitan Area Network (MAN) – Stadtgebiets-Netzwerk – bezeichnet ein Netz,das eine Stadt oder Gemeinde umfasst. Ein Beispiel wären die verschiedenen eigenenNetze von NetCologne in Köln.

� Das Wide Area Network (WAN) – Fernnetzwerk – ist ein Netz, das mehrere Städte, eineganze Region oder sogar ein ganzes Land umfasst. In Deutschland gibt es beispiels-weise das Deutsche Forschungsnetz (DFN).

� Das Global Area Network (GAN) – weltweites Netzwerk – ist über mehrere Länder, ei-nen ganzen Kontinent oder sogar die ganze Welt verbreitet. Das bei weitem größteGAN ist heutzutage natürlich das Internet – im engeren Sinne ist ein GAN allerdingsein homogenes Netzwerk, während das Internet aus zahllosen Einzelnetzen mit unter-schiedlichen Architekturen zusammengesetzt ist.

Es sei noch angemerkt, dass die drei Netzwerkarten, die größere Entfernungen überbrü-cken – also MAN, WAN und GAN – oftmals einfach unter dem Sammelnamen WAN zu-sammengefasst werden. Dies umso mehr, als alle drei Typen von Fernnetzen im Wesent-lichen die gleiche Art von Technologie verwenden – oder genauer gesagt: Alle Arten vonTechnologien für Fernnetze werden von allen drei Netzarten benutzt.

WAN-Tech-nologien

Es gibt Fernnetze, die Wählleitungen, also einfache Telefonverbindungen, verwenden, so-wohl das klassische Analog- als auch das digitale ISDN-Netz. Immer beliebter werden auchdie neuen diversen DSL-Dienste, bei denen durch die Verwendung besonders hochfre-quenter Signale über die normalen Kupferdrähte der Telefonleitungen wesentlich höhereDatenübertragungsraten erzielt werden. Zu einer besonderen Form der Wählleitung zäh-len Verbindungen über die digitalen GSM-Mobilfunknetze und deren Nachfolger GPRSund UMTS. Daneben existieren unterschiedliche Arten von Standleitungen, die für beson-ders häufig beanspruchte oder besonders zuverlässige Leitungen verwendet werden.Hierbei gibt es unter anderem spezielle DSL-Standleitungen oder Glasfasernetze. Auchdrahtlose Übertragung, etwa über Funk- oder Satellitenverbindungen, spielt eine immergrößere Rolle.

Zu beachten ist allerdings, dass DSL, Wireless LAN und Mobilfunknetze im Wesentlichendie Technologien für den Zugang einzelner Hosts zu einem MAN oder WAN darstellen.Im Backbone-Bereich, also in der eigentlichen Netzwerkinfrastruktur, kommen vor allemZeitmultiplexing-Verfahren über Glasfasernetze zum Einsatz. Sprache, Video und sonstigeDaten werden dabei über Gigabit-Ethernet, SDH/SONET, ATM oder manchmal auchFrame-Relay übertragen. Eine zunehmende Bedeutung erlangten in den letzten Jahrenauch DWDM-Verfahren (Dense Wavelength Division Multiplexing). Dabei werden überein und denselben Lichtwellenleiter mehrere Signale mit unterschiedlicher Wellenlängegleichzeitig versandt, was für extrem hohe Datenraten sorgt.

LAN-Techno-logien

Lokale Netzwerke verwenden ebenfalls viele unterschiedliche technische Übertragungsar-ten. Allein für Ethernet, die häufigste Form der lokalen Vernetzung, werden unterschied-

188

Netzwerkgrundlagen4

liche Arten von Koaxial-, Twisted-Pair- oder Glasfaserkabeln benutzt. Diese zeichnen sichdurch verschiedene Übertragungsgeschwindigkeiten, mögliche maximale Entfernungenund natürlich auch unterschiedliche Kosten aus. Wireless LAN – der Betrieb von lokalenNetzwerken ohne Kabel über Funk, Infrarot oder Mikrowellen – erfreut sich auch zuneh-mender Beliebtheit. Abgesehen davon gibt es neben Ethernet viele andere Formen lokalerNetzwerke.

Die technologischen Grundlagen der Verkabelung, der Signalübermittlung und des Netz-zugangs werden im Abschnitt »Netzwerkkarten, Netzwerkkabel und Netzzugangsverfah-ren« ab Seite 196 ausführlicher besprochen.

4.3.2 Die Netzwerktopologie

Die Topologie eines Netzwerks beschreibt, in welcher physikalischen Grundform die ein-zelnen Geräte organisiert sind. Manche Arten von Netzwerkhardware setzen eine be-stimmte Topologie voraus, andere überlassen dem Einrichtenden die Entscheidung zwi-schen mehreren Möglichkeiten. Topologie ist normalerweise eine Eigenschaft lokalerNetzwerke oder gar einzelner Netzsegmente. Die meisten Fernnetze verbinden ohnehinnicht einzelne Rechner, sondern ganze Netzwerke an unterschiedlichen Orten miteinan-der.

Es werden im Wesentlichen folgende Grundformen unterschieden:

� Die Bus-Topologie beschreibt ein Netzwerk, bei dem die einzelnen Knoten (Anschlüsse)hintereinander an einem einzelnen Kabelstrang angeschlossen sind, dessen Endennicht miteinander verbunden werden dürfen (sonst würde es sich um eine Ring-Topo-logie handeln!). Häufig werden die beiden Enden des Kabelstrangs durch Abschlusswi-derstände (Terminatoren) abgeschlossen. Ein Beispiel für echte busförmige Netzwerkeist Ethernet über Koaxialkabel.

� Die Stern-Topologie ist die Form eines Netzes, bei dem alle Knoten mit jeweils eigenemKabel an einem zentralen Gerät miteinander verbunden werden. Dieses zentrale Bin-deglied heißt, je nach seiner genauen Funktionsweise, Hub oder Switch. Die Stern-To-pologie wird zum Beispiel von Ethernet über Twisted-Pair-Kabel verwendet.

� Die Ring-Topologie ähnelt der Bus-Topologie insofern, als auch hier alle Knoten an ei-nem zentralen Strang aufgereiht sind. Dieser zentrale Kabelstrang bildet jedoch einengeschlossenen Ring. Daraus ergibt sich automatisch eine Datenstromrichtung, in diedie Datenpakete grundsätzlich weitergereicht werden. Bekanntestes Beispiel der ring-förmigen Vernetzung ist Token Ring.

� Die Baum-Topologie schließlich ist eher ein Standard für den Zusammenschluss ver-schiedener Netzsegmente. Von einem zentralen Kabelstrang, gewissermaßen dem»Stamm« des Baums, gehen nach beliebigen Richtungen einzelne Verästelungen ab, andenen entweder eine einzelne Station oder ein ganzes Netz hängt.

189

Klassifizierung von Netzwerken 4.3

Physikalische versus logische Topologie

Wichtig ist zu guter Letzt, dass ein Unterschied zwischen einer physikalischen und einerlogischen Topologie bestehen kann, denn die äußere Form der Verkabelung (physikali-sche Topologie) kann einfach aus praktischen Erwägungen heraus gewählt worden sein,obwohl von der Funktion her eine völlig andere Struktur herrscht, nämlich die logischeTopologie.

Ein gutes Beispiel für eine unterschiedliche physikalische und logische Struktur sind neu-ere Token-Ring-Varianten: Die eigentliche Vernetzung erfolgt sternförmig, logisch gese-hen handelt es sich jedoch um einen Ring. Auch Ethernet über Twisted-Pair-Kabel ver-wendet physikalisch gesehen die Stern-Topologie, die logische Funktionsweise hängt vonder Art des zentralen Verteilers ab: Ein Hub erzeugt letztlich die Funktion eines busförmi-gen Netzes, da es einen durchgehenden Strang enthält, an dem alle Stationen angeschlos-sen sind. Ein Switch dagegen stellt jeweils eine gesonderte Verbindung zwischen zwei Sta-tionen her, die miteinander Daten austauschen; mithin handelt es sich hier auch logischum die echte Sternform.

4.3.3 Der Zentralisierungsgrad des Netzwerks

Ein weiteres wichtiges Kriterium bei der Einteilung von Netzwerken in unterschiedlicheGruppen ist die Frage nach der Arbeitsaufteilung in ihnen. Kleine Arbeitsgruppen, die je-weils mit ihren Arbeitsplatzrechnern untereinander Dateien austauschen möchten, habenhier sicherlich andere Bedürfnisse als riesige Organisationen, in denen Tausende von An-wendern auf bestimmte Datenbestände zugreifen müssen. Deshalb werden die sogenann-ten Client-Server-Netzwerke, in denen zentrale Dienstleistungsrechner, die Server, arbei-ten, von den Peer-to-Peer-Netzwerken unterschieden, in denen die einzelnen Computergleichberechtigt Ressourcen freigeben und verwenden können.

� Das Client-Server-Netzwerk unterscheidet generell zwei Arten von beteiligten Rech-nern: Der Server (Dienstleister) ist ein Computer, der den Arbeitsstationen der einzel-nen Anwender an zentraler Stelle Ressourcen und Funktionen zur Verfügung stellt; derClient (Kunde) nimmt diese Dienstleistungen in Anspruch. Die Dienste, die von Ser-vern angeboten werden, sind sehr vielfältig: Sie reichen vom einfachen Dateiserver,der Dateien im Netzwerk verteilt oder Festplattenplatz für andere freigibt, über Druck-server, Mail- und andere Kommunikationsserver bis hin zu ganz speziellen Dienstenwie Datenbank- oder Anwendungsserver.

� Das Peer-to-Peer-Netzwerk besteht aus prinzipiell gleichberechtigten Arbeitsplatzrech-nern (peer heißt etwa »Kollege«). Jeder Anwender ist in der Lage, Ressourcen seineseigenen Rechners an andere im Netzwerk freizugeben. Das heißt, dass alle Rechner imNetz bis zu einem gewissen Grad Serverdienste wahrnehmen.

PraxisfälleIn der Praxis sind allerdings Mischformen häufiger anzutreffen als reine Client-Server-oder absolute Peer-to-Peer-Netze. Beispielsweise könnte man sich in einem Unternehmen

190

Netzwerkgrundlagen4

die folgende Situation vorstellen: Aufgaben wie die direkte Kommunikation (E-Mail), derZugang zum Internet (über einen Proxyserver oder einfach einen Router) oder Lösungenzum Backup (Datensicherung) werden durch zentrale Server zur Verfügung gestellt; derZugang zu Dateien innerhalb der Abteilungen oder auf Drucker der Kollegen innerhalbeines Büros wird dagegen im Peer-to-Peer-Verfahren, unter Umgehung von Servern, ge-regelt.

Wichtig ist außerdem, zu verstehen, dass die Begriffe »Client« und »Server« im engerenSinne nicht unbedingt spezifische Rechner, sondern besondere Softwarekomponentenbezeichnen.

Definitioneines Servers

Ein Server ist einfach ein Programm, das meist automatisch gestartet wird und im Hinter-grund darauf »lauert«, irgendeine Dienstleistung zur Verfügung zu stellen. Allgemeinerwerden solche Programme zum Beispiel im Unix-Umfeld als Daemon bezeichnet, unterWindows NT und seinen Nachfolgern (Windows 2000, XP, Vista und Windows 7) heißensie Dienst (Service). Grundsätzlich kann ein solcher Serverdienst auf jedem beliebigenRechner laufen – vorausgesetzt natürlich, er ist für die Hardwareplattform und das Be-triebssystem dieses Rechners bestimmt. Der Grund für den Einsatz besonders leistungs-fähiger Hardware (eben der Serverhardware) und spezialisierter Betriebssysteme liegt ein-fach in ihrer höheren Belastbarkeit, wenn viele Benutzer gleichzeitig diese Dienstebenötigen.

Definitioneines Clients

Ein Client ist zunächst eine Software, die in der Lage ist, mit der Serversoftware zu kom-munizieren; üblicherweise stellt sie dem Benutzer auch eine Schnittstelle zur Verfügung,um diese Kommunikation in Anspruch zu nehmen. So ist beispielsweise ein Webbrowserein Client für das HTTP-Anwendungsprotokoll, er kommuniziert also mit HTTP-Servern.Interessanterweise können Webserver und Browser auch beide auf demselben Rechnerlaufen. Dies ist nützlich, um Webanwendungen zunächst lokal auszuprobieren.

Arten von Servern

Im Folgenden sollen einige Serverarten genauer vorgestellt werden. Sie sollten auf jedenFall das oben Gesagte im Hinterkopf behalten: Es spielt überhaupt keine Rolle für die all-gemeine Funktion, ob ein Serverdienst, also die Software, die diesen Dienst zur Verfü-gung stellt,

� mit anderen Diensten zusammen auf dem gleichen Rechner läuft,

� allein auf einem separaten Serverrechner ausgeführt wird oder

� sogar auf mehrere Server verteilt ist, weil ansonsten die Belastung zu groß wäre.

Letzteres ist insbesondere im Bereich öffentlicher WWW-Server sehr häufig zu finden, dapopuläre Sites wie etwa Suchmaschinen oder große Webshops sehr viel Datenverkehr zuverkraften haben. Hier werden sogenannte Load-Balancing-Systeme eingesetzt, die die

191

Klassifizierung von Netzwerken 4.3

hereinstürmenden Anfragen automatisch möglichst gerecht auf mehrere physikalischeServer verteilen.

Im Wesentlichen gibt es die folgenden wichtigen Arten von Serverdiensten:

� Fileserver

� Printserver

� Mailserver

� Webserver

� Verzeichnisdienst-Server

� Anwendungsserver und Serveranwendungen

In den folgenden Unterabschnitten wird jeder dieser Servertypen kurz vorgestellt; in spä-teren Kapiteln lernen Sie auch konkrete Beispiele für viele von ihnen kennen.

Fileserver

Der Fileserver (Dateiserver) stellt anderen Rechnern im Netzwerk freigegebene Verzeich-nisse zur Verfügung. Auf diese Weise können sich die Anwender über einen zentralenAustauschpunkt gegenseitig Dateien zukommen lassen. Der Fileserver ist relativ stark anein bestimmtes Betriebssystem oder eine Plattform gebunden. Erst allmählich setzen sichneuere Möglichkeiten durch, die in der Lage sind, auch unterschiedliche Rechner gleich-zeitig zu bedienen. Denn die Besonderheit eines Fileservers ist, dass die Benutzer ihn völ-lig transparent genau so benutzen können wie die lokalen Dateisysteme ihres Arbeits-platzrechners. In einem idealen (lokalen) Netzwerk sollte es dem normalen Anwendervollkommen egal sein, ob seine Dateien am Arbeitsplatz oder auf einem Fileserver zu fin-den sind.

Sehr wichtig ist im Zusammenhang mit Fileservern die Verwaltung von Zugriffsrechten,da nicht jede Datei für alle Benutzer gedacht ist.

Der Internetdienst FTP (File Transfer Protocol) ist übrigens kein vollwertiger Fileserver,sondern dient lediglich der einfachen Dateiübertragung. Die Informationen über die Da-teien des entfernten Rechners sind nicht vollständig genug, um das Äquivalent einesDateisystems abzubilden.

Informationen über Fileserver für die verschiedenen Systemplattformen finden Sie in denKapiteln 6, »Windows«, 7, »Linux«, und 8, »Mac OS X«. FTP wird dagegen zusammen mitanderen Arten von Internetservern in Kapitel 14, »Weitere Internet-Serverdienste«, be-handelt.

192

Netzwerkgrundlagen4

Printserver

Der Printserver (oder Druckserver) erlaubt mehreren Anwendern beziehungsweise Ar-beitsstationen den gemeinsamen Zugriff auf einen Drucker. Die größte Herausforderungbesteht darin, den einzelnen Arbeitsstationen automatisch den passenden Druckertreiberfür ihr jeweiliges Betriebssystem zur Verfügung zu stellen, so dass diese den Drucker ein-fach verwenden können, ohne dass der Treiber zuvor noch einmal lokal installiert werdenmüsste.

Der Betrieb von Printservern ist besonders in Windows-Netzwerken weitverbreitet, dahier der Drucker gewöhnlich über ein USB-Kabel an einen einzelnen Rechner angeschlos-sen wird. Dieser Rechner wird dann so eingerichtet, dass er den Zugriff auf den Druckerauch den anderen Computern erlaubt.

Bei anderen Plattformen gibt es das Problem in dieser Form seltener. In klassischenMacintosh-Netzwerken ist es beispielsweise üblich – und viel bedienungsfreundlicher –,den Drucker unmittelbar per Ethernet ans Netzwerk anzuschließen, denn damit ist erautomatisch für alle freigegeben.

In heterogenen Netzen war es bis vor wenigen Jahren verhältnismäßig schwierig, überBetriebssystemgrenzen hinweg gemeinsam auf einen Drucker zuzugreifen. Inzwischen istjedoch beispielsweise das Drucksystem CUPS für alle Unix-Varianten verfügbar, das sogarWindows-Clients relativ problemlos bedienen kann.

Da Druckserver, genau wie Dateiserver, an das jeweilige Betriebssystem gebunden sind,werden die wichtigsten Varianten in Kapitel 6, »Windows«, und Kapitel 7, »Linux«, be-schrieben.

Mailserver

Ein Server für elektronische Post (E-Mail) muss nicht immer bei einem Internetproviderinstalliert sein, sondern kann auch im lokalen Netz seinen Dienst verrichten. Denn erstensist es in Unternehmen oder Organisationen oft von Vorteil, wenn die Mitarbeiter unterei-nander per E-Mail kommunizieren können, und zweitens ist es manchmal schon alleindeshalb erforderlich, einen internen Mailserver zu betreiben, weil der Zugang zum Inter-net aus Sicherheitsgründen stark eingeschränkt ist und etwa die Kommunikation eines Ar-beitsplatzrechners mit einem externen Mailserver gar nicht zulässt.

Internet-E-Mail

Obwohl im Lauf der Netzwerk-Entwicklungsgeschichte verschiedene Formen der elektro-nischen Post entstanden sind, gibt es heute eigentlich keine Alternative mehr zu Internet-E-Mail. Diese verwendet verschiedene Serverdienste zum Senden und Empfangen derE-Mail: Das SMTP-Protokoll (Simple Mail Transport Protocol) bestimmt, wie zu versen-dende E-Mails zu transportieren sind; POP3 (Post Office Protocol Version 3) oder das mo-dernere, komfortablere IMAP (Internet Message Access Protocol) beschreiben ein Benut-zerkonto (Postfach) für eingehende E-Mails sowie den Vorgang der »Abholung«.

193

Klassifizierung von Netzwerken 4.3

Rein theoretisch kann Internet-E-Mail direkt zum einzelnen Host gesendet werden. Das istaber insofern problematisch, als normale Arbeitsplatzrechner manchmal ausgeschaltetwerden und private Einzelplatzrechner meist nur temporär über Wählleitungen mit demInternet verbunden sind. Dies ist überhaupt der wichtigste Grund dafür, warum sichPosteingangsserver etabliert haben, auf denen die Mail für einen bestimmten Anwenderim Prinzip vorgehalten wird, bis dieser sie abruft.

Da die gewöhnliche Form der E-Mail auf den Standard-Internetprotokollen aufsetzt, gibtes übrigens kein Problem, sie plattform- und betriebssystemübergreifend zu verwenden.

Webserver

Ein Webserver (die exakte Bezeichnung ist eigentlich »HTTP-Server«) liefert auf AnfrageWebseiten über ein Netzwerk aus. In der Regel ist dieses Netzwerk das Internet. In denlokalen Netzen von Unternehmen und Institutionen setzt sich diese Form der Informati-onsübermittlung aber auch immer mehr durch. Ein solches lokales Netz, das Technolo-gien und Dienste der Internetprotokolle verwendet, wird Intranet genannt. Der Anwen-der verwendet ein Anzeigeprogramm für Webseiten, den sogenannten Browser, umWebseiten anzufordern, anzusehen und auch, um die enthaltenen Hyperlinks – also Ver-knüpfungen zu anderen Dokumenten auf dem gleichen oder einem anderen Server – perMausklick zu folgen.

Webseiten sind prinzipiell Textdokumente, die in der Strukturierungssprache HTML ge-schrieben werden. Viele dieser Dokumente liegen statisch auf dem Server und werdeneinfach auf Anfrage ausgeliefert. Eine wachsende Anzahl solcher Dokumente wird aberauch aus Vorlagen und dynamischen Daten, etwa aus einer Datenbank, kombiniert unddann an den anfragenden Host geschickt. Diese Entwicklung ist für Websites mit umfang-reichem, schnell wechselndem Inhalt, etwa Online-Tageszeitungen oder die Kataloge inE-Commerce-Sites, unvermeidlich.

Webserver sind im Übrigen schon von ihrer Grundidee her dafür gedacht, Clients untervielen verschiedenen Betriebssystemen zu bedienen. Falls es Inkompatibilitäten gebensollte, liegt das höchstens daran, dass bei der Erstellung des HTML-Codes Steuerbefehleverwendet wurden, die nicht jeder Browser versteht.

Der praktische Einsatz eines Webservers wird in Kapitel 13, »Server für Webanwendun-gen«, am wichtigsten Beispiel Apache beschrieben; die Kapitel 17 bis 19 kümmern sich da-gegen um die Erstellung von Webinhalten und -anwendungen.

Verzeichnisdienst-Server

Verzeichnisdienste (Directory Services) gewinnen in der IT seit längerer Zeit stark an Be-deutung. Ein Verzeichnis ist in diesem Zusammenhang kein Dateisystem, sondern ein da-tenbankähnlicher, standardisierter Katalog von Benutzern, Computern, Peripheriegeräten

194

Netzwerkgrundlagen4

und Rechten in einem Netzwerk. Durch den Eintrag in das Verzeichnis können diese In-formationen netzwerkweit abgerufen werden, so dass Verzeichnisdienste eine praktischeGrundlage für zahlreiche Dienste legen, die in einer größeren Netzwerkumgebung dieArbeit der Administratoren und das Leben der Anwender erleichtern. Hier nur einige Bei-spiele:

� automatisierte Softwareverteilung und -installation

� mobile Benutzerprofile (Roaming User Profiles)

� zentralisierte Anmeldedienste (Single-Sign-on)

� rechner-, benutzer- und eigenschaftsbasierte Rechtekontrolle

In Kapitel 14, »Weitere Internet-Serverdienste«, wird OpenLDAP als Praxisbeispiel für ei-nen Verzeichnisdienst vorgestellt.

Anwendungsserver und Serveranwendungen

Ein Anwendungsserver (Application Server) erlaubt den Benutzern die Verwendung vonAnwendungsprogrammen, die sich eigentlich auf dem Server befinden, über das Netz-werk.

EinfacheAnwen-

dungsdienste

Bei der einfachsten Form des Anwendungsservers liegt der Datenbestand der Anwendungauf den Datenträgern des Servers, die Anwendung wird über das Netzwerk in denArbeitsspeicher des Clients geladen und dort lokal ausgeführt. Der Unterschied zum File-server ist hier minimal: Es muss der Anwendung lediglich klar sein, dass eventuell not-wendige Zusatzkomponenten oder Konfigurationsdaten nicht auf dem Rechner liegen, aufdem sie ausgeführt wird, sondern auf der Maschine, von der sie geladen wurde.

Bei vielen normalen Einzelplatz-Anwendungsprogrammen kann eine solche Einstellungvorgenommen werden. Diese Verwendung von Software hat vor allem zwei Vorteile: Ers-tens kann es weniger Arbeit bedeuten, ein Programm einmal auf dem Server statt aufmehreren Arbeitsplatzrechnern zu installieren, und zweitens können Kosten gespart wer-den – die meisten Softwarelizenzen gelten jeweils pro Rechner, auf dem das jeweilige Pro-gramm installiert ist. Wird eine Anwendung auf mehreren Rechnern genutzt, aber nichtgleichzeitig, so kann die Software auf dem Server installiert werden; damit werden dieLizenzgebühren dann nur einmal fällig.

Echte Client-Server-

Anwen-dungen

Bei komplexeren Formen von Anwendungsservern werden Teile des Programms – oderunter Umständen auch das ganze Programm – direkt auf dem Server ausgeführt. Diemöglichen Gründe hierfür sind im Einzelfall genauso vielfältig wie die verschiedenen For-men der Verwirklichung. Beispielsweise ist es bei großen Datenbanken üblich, dass derDatenbestand als solcher auf einem Server liegt, ebenso die grundlegende Datenverwal-tungssoftware. Auf den Clients existieren dann in der Regel sogenannte Frontends, alsoSoftwarekomponenten, die den Benutzern eine Bedienoberfläche für die eigentliche

195

Klassifizierung von Netzwerken 4.3

Datenbank bereitstellen. (Den Gegenbegriff zum Frontend bildet das Backend, wobei essich um einen nur für spezielle, angemeldete Benutzer zugänglichen Teil des Clients han-delt, der der Verwaltung des Servers dient.)

Noch einen Schritt weiter gehen die sogenannten verteilten Anwendungen oder Enter-prise-Anwendungen. Sie basieren in der Regel auf einem oder mehreren Datenbankser-vern für den Datenbestand, einem Anwendungsserver für die Geschäftsabläufe und diver-sen Client-Frontends (sowohl native Programme für bestimmte Betriebssysteme als auchWebanwendungen).

Eine andere Form der Serveranwendung existiert bei der Verwendung der sogenanntenTerminalserver. Die einfachste Form, der Internetdienst Telnet, stellt dem Anwender eineKonsolenoberfläche zur Verfügung, über die sich von fern auf dem Server selbst mittelsKommandoeingabe arbeiten lässt. Das heißt, die Ein- und Ausgabe von zeilenorientiertenKommandos und Anwendungsprogrammen erfolgt auf dem Client, die eigentliche Aus-führung auf dem Server – der eigene Rechner wird somit zu einem Terminal für den ent-fernten Server.

Der X-ServerEine sehr merkwürdige Form der Serversoftware ist in diesem Zusammenhang der ausdem Unix-Bereich stammende X-Window-Server oder einfach X-Server (siehe Kapitel 7,»Linux«). Die Bezeichnung »Server« für diese Software erscheint zunächst sehr irrefüh-rend, handelt es sich doch einfach um die Grundlage der grafischen Benutzeroberfläche(GUI) unter Unix. Der X-Server stellt den Anwendungsprogrammen seine Dienste zurVerfügung, die darauf zugreifen, um Fenster und andere Komponenten der GUI darzu-stellen.

Die Tatsache, dass hier ein Dienst verfügbar gemacht wird, ist es übrigens, die den Begriff»Server« rechtfertigt. Dabei müssen Anwendung und X-Server auch nicht unbedingt aufdem gleichen Rechner laufen. Erstaunlicherweise läuft aber der X-Server auf dem Anwen-dungsclient! Denn da die Programmausführung auf dem entfernten Rechner stattfindet,aber die grafische Darstellung auf dem lokalen Rechner, muss hier dieser Dienst angebo-ten werden.

Terminalserver gibt es auch unter Windows Server 2008 und anderen Microsoft-Syste-men; auch hier läuft die eigentliche Anwendung auf dem Server, der Client erlaubt derenBedienung und Anzeige. Das Angebot solcher Anwendungsdienste über das Internet wirdallmählich beliebter. Ein ASP (Application Service Provider) lässt Anwendungen wie bei-spielsweise Bürosoftware auf seinen Servern laufen; über eine spezielle Clientsoftwareoder sogar über einen Webbrowser kann der Kunde darauf zugreifen und die angeboteneSoftware von der ganzen Welt aus benutzen. Eine wesentlich einfachere Form solcher Ser-veranwendungen, die über das Web verwendet werden und die Sie wahrscheinlich gutkennen, ist der weitverbreitete webbasierte E-Mail-Dienst mit diversen Zusatzfunktionen,wie ihn GMX, Google Mail oder web.de anbieten.

196

Netzwerkgrundlagen4

Thin Clientsstatt PCs?

Die Quintessenz der Verwendung von Anwendungsservern ist die von einigen Firmen(Sun Microsystems, Oracle) seit Jahren angestrebte Abschaffung der gewöhnlichen Perso-nal Computer und deren Ersatz durch sogenannte Thin Clients – Rechner ohne Festplatte,die ihr Betriebssystem und die Anwendungsprogramme vollständig aus dem Netzwerkoder aus dem Internet beziehen. Allerdings konnte sich das Konzept bisher nicht rechtdurchsetzen. Das Hauptargument der entsprechenden Unternehmen, nämlich die gerin-geren Kosten, lässt sich angesichts des massiven Preisverfalls bei den »ausgewachsenen«PCs nicht aufrechterhalten.

4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren

Im Laufe der Entwicklungsgeschichte der Netzwerke, die weiter oben in diesem Kapitelskizziert wurde, haben sich viele verschiedene Formen der Netzwerkhardware entwickelt.Jede von ihnen hatte zum Zeitpunkt ihrer Entstehung ihre Berechtigung, und dennoch ha-ben sich einige auf breiter Front durchgesetzt, während andere schnell wieder vom Marktverschwunden sind. Die verbreitetste Art der Netzwerkhardware ist heute Ethernet in sei-nen vielfältigen Varianten.

DieIEEE-802-Standards

Analog zu den oben beschriebenen Schichtenmodellen – vor allem dem standardisiertenOSI-Referenzmodell – gibt es auch Standards, die speziell die Netzwerkhardware und denNetzzugang betreffen, also die beiden untersten Ebenen des OSI-Modells. Die umfang-reichste Sammlung ist IEEE 802 des Institute of Electrical and Electronical Engineers. DieNummer 802 bezeichnet Jahr und Monat der ursprünglichen Festlegung, nämlich denFebruar 1980. Innerhalb dieser Sammlung existiert eine Reihe verschiedener Unterstan-dards beziehungsweise Arbeitsgruppen. Zu den wichtigsten gehören 802.1 (allgemeineNetzwerkstandards), 802.3 (Netzzugangsverfahren CSMA/CD, besonders Ethernet) und802.11 (drahtlose Netze). Tabelle 4.2 zeigt die vollständige Liste. Einige dieser Standardswerden im Folgenden näher beschrieben.

IEEE-Gruppe Bezeichnung

802.1 Internetworking

802.2 Logical Link Control (LLC)

802.3 CSMA/CD, Ethernet

802.3u Fast Ethernet

802.3z Gigabit Ethernet über Glasfaser

802.3ab Gigabit Ethernet über Twisted Pair

802.4 Token-Bus-Zugriffsverfahren

802.5 Token-Ring-Zugriffsverfahren

Tabelle 4.2 Die IEEE-802-Arbeitsgruppen im Überblick

197

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

4.4.1 Die verschiedenen Ethernet-Standards

Ethernet ist heute der verbreitetste Standard für lokale Netze (LANs). Zehntausende vonHersteller weltweit unterstützen diese Art von Netzwerken mit ihrer Hard- und Software.

Identifika-tion per MAC-Adresse

Jede Ethernet-Schnittstelle, also die Netzwerkkarte oder der fest eingebaute Anschluss, istmit einer weltweit einmaligen Identifikationsnummer ausgestattet, der sogenanntenMAC-Adresse (für Media Access Control, einer der beiden Bestandteile der OSI-Netz-zugangsschicht). Es handelt sich um eine 48 Bit lange Zahl, die in sechs hexadezimalenBlöcken zwischen 0 und 255 (00 bis FF hex) geschrieben wird, zum Beispiel 00-A0-C9-E8-5F-64.

Die Datenpakete – auf der Netzzugangsschicht Frames genannt – werden mit den MAC-Adressen der sendenden und der empfangenden Station versehen und in der Regel an alleStationen im Segment versandt. Jede Station überprüft daraufhin, ob die Daten für sie be-stimmt sind. Im Übrigen kann man Ethernet-Schnittstellen auch in den »PromiscuousMode« schalten, in dem sie ohne Unterschied alle Daten entgegennehmen. Auf dieseWeise kann der gesamte Datenverkehr in einem Netzsegment überwacht werden.

802.6 Metropolitan Area Network (MAN)

802.7 Breitbandübertragungstechnologie

802.8 Glasfaserübertragungstechnologie

802.9 integrierte Sprach- und Datendienste

802.10 Netzwerksicherheit

802.11 drahtlose Netze

802.12 Demand-Priority-Verfahren

802.14 Breitband-Kabelfernsehen (CATV)

802.15 Wireless Personal Area Network (WPAN)

802.16 Broadband Wireless Access (BWA)

802.17 Resilient Packet Ring (RPR)

802.18 Radio Regulatory Technical Advisory Group (RRTAG)

802.19 Coexistence TAG

802.20 drahtlose Breitbandnetze

802.21 medienunabhängiges Handover

802.22 drahtlose Regionalnetze (WRAN)

802.30 100BaseX, 100BaseT, Fast Ethernet

IEEE-Gruppe Bezeichnung

Tabelle 4.2 Die IEEE-802-Arbeitsgruppen im Überblick (Forts.)

198

Netzwerkgrundlagen4

Die MAC-Adresse wird normalerweise nicht über das jeweilige Teilnetz hinaus weiterver-breitet.4 Nach außen ergäbe ihre Verwendung auch keinen Sinn, da das nächste Teilnetzauf einer Route womöglich noch nicht einmal zum Ethernet-Standard gehört.

Das Netzzugangsverfahren CSMA/CD

Es ist wichtig zu verstehen, dass mit dem Namen »Ethernet« gar keine einheitliche Netz-werkhardware bezeichnet wird. Vielmehr handelt es sich um einen Sammelnamen fürdiverse Netzwerkstandards, die ein bestimmtes Netzzugangsverfahren verwenden. Inso-fern sind alle Ethernet-Varianten auf der OSI-Schicht 2 identisch, unterscheiden sich aberauf der untersten Schicht.

Als der Vorläufer von Ethernet Ende der 60er Jahre des vorigen Jahrhunderts an der Uni-versität von Hawaii konzipiert wurde (anfangs unter dem geografisch passenden NamenALOHANet), handelte es sich zunächst um Datenfunk. Diesem Umstand ist übrigens auchder endgültige Name zu verdanken: »ether«, zu Deutsch Äther, ist das gedachte Medium,durch das sich Funkwellen fortpflanzen. Erst in den 1970er Jahren wurde dasselbe Netz-zugangsverfahren auch für die Datenübertragung per Kabel eingesetzt, und zwar zunächstüber Koaxialkabel.

CSMA/CD-Schema

Das gemeinsame Netzzugangsverfahren aller Ethernet-Formen trägt den Namen CSMA/CD: Carrier Sense Multiple Access with Collision Detection. Schematisch gesehen funk-tioniert dieses Verfahren wie folgt:

1. Ein Gerät, das Daten senden möchte, lauscht den Netzabschnitt ab, um festzustellen,ob dieser gerade frei ist, das heißt, ob gerade kein anderes Gerät sendet (Carrier Sense).

2. Wurde in Schritt 1 festgestellt, dass der Netzabschnitt frei ist, beginnt die Station mitdem Senden der Daten. Möglicherweise hat auch eine andere Station festgestellt, dassdas Netz frei ist, und beginnt gleichzeitig ebenfalls mit dem Senden (Multiple Access).

3. Falls auf die beschriebene Art und Weise zwei Stationen gleichzeitig mit dem Sendenbegonnen haben, findet eine sogenannte Datenkollision statt, die von den beteiligtenStationen entdeckt wird (Collision Detection). Eine Station, die eine Kollision bemerkt,stellt das Senden von Nutzdaten ein und versendet stattdessen eine Warnmeldung (JamSignal).

4. Eine Station, die wegen einer Datenkollision das Senden abgebrochen hat, beginntnach einer zufällig gewählten Zeitspanne von wenigen Millisekunden erneut mit demSenden. Genau diese Zufälligkeit der Zeitspanne, die nach einem komplizierten Verfah-ren berechnet wird, ist enorm wichtig, damit die beiden Stationen beim nächsten Ver-such nicht wieder genau gleichzeitig mit dem Senden beginnen.

4 Ausnahmen: Das weiter unten beschriebene IPX/SPX-Protokoll verwendet die MAC-Adresse auch für dieAdressierung auf der Netzwerkschicht, und die IP-Weiterentwicklung IPv6 benutzt die MAC-Adresse alsTeil der 128 Bit langen IP-Adresse.

199

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

Das große Problem von Ethernet besteht darin, dass das CSMA/CD-Verfahren umso inef-fektiver wird, je frequentierter der jeweilige Netzabschnitt ist: Ab einem gewissen Grenz-wert überschreitet die Anzahl der Datenkollisionen die Menge der Nutzdaten. Heutzutageumgeht man dieses Problem in der Regel durch die Verwendung sogenannter Switches,die für zwei miteinander kommunizierende Stationen jeweils eine exklusive Punkt-zu-Punkt-Verbindung einrichten. Wo diese Möglichkeit aufgrund veralteter, inkompatiblerHardware nicht zur Verfügung steht, muss ein Netz mit viel Datenverkehr stattdessen seg-mentiert, das heißt in kleinere Abschnitte unterteilt werden.

Ethernet-Hardware

Die Bezeichnungen der verschiedenen Arten der Hardware, die für Ethernet-Netzwerkeverwendet werden, setzen sich aus der Übertragungsgeschwindigkeit des jeweiligen Net-zes in MBit/s und einer spezifischen Bezeichnung für den Kabeltyp oder die maximal zu-lässige Kabellänge zusammen.

KoaxialkabelWie bereits erwähnt, waren Koaxialkabel die ersten für Ethernet verwendeten Kabel. DerAufbau dieser Kabel ist folgender: Im Zentrum befindet sich ein leitender Draht, der voneiner Isolationsschicht umgeben ist, darüber befindet sich ein weiterer Ring aus leitendemMetall und außen natürlich wiederum eine Isolationsschicht. Das bekannteste Alltagsbei-spiel für ein Koaxialkabel ist ein handelsübliches Fernsehantennenkabel.

Es gibt zwei Arten von Koaxialkabeln, die für Ethernet eingesetzt werden:

� 10Base2: dünnes schwarzes KoaxialkabelDie 10 steht für die maximale Datenübertragungsgeschwindigkeit des Netzes, in die-sem Fall 10 MBit/s. Die nähere Spezifikation, die durch die 2 angegeben wird, betrifftdie maximal zulässige Gesamtlänge eines 10Base2-Netzsegments von etwa 200 Metern(eigentlich 200 Yard, was ca. 185 Metern entspricht). In einem Segment dürfen sichmaximal 30 Stationen befinden. Um eine größere Entfernung zu überbrücken odermehr Stationen zu betreiben, muss eine Signalverstärkung durch sogenannte Repeaterdurchgeführt werden.

Alternative Bezeichnungen für diese Ethernet-Form sind »Thinnet Coaxial« oder»Cheapernet«, weil es sich früher um die billigste Art der Vernetzung handelte.

An der Netzwerkkarte wird an eine BNC-Buchse ein T-Adapter angeschlossen. An des-sen beiden Seiten werden wiederum über BNC-Stecker die Koaxialkabel angeschlossen,die zu den T-Stücken der Netzwerkkarten der benachbarten Rechner führen. Der Min-destabstand zwischen zwei T-Stücken, das heißt die minimale Länge eines einzelnenKabels, beträgt 50 cm. Das Netzwerk ist in einer Bus-Topologie organisiert; die T-Stückedes ersten und des letzten Rechners im Netzwerk werden auf je einer Seite mit einemAbschlusswiderstand oder Terminator versehen.

200

Netzwerkgrundlagen4

� 10Base5: dickes gelbes KoaxialkabelDer Vorteil dieser auch »Thicknet Coaxial« genannten Variante besteht in der größerenzulässigen Länge des Netzsegments, nämlich – wie die Zahl 5 vermuten lässt – 500 Yard(knapp 460 m). Andererseits ist dieses erheblich dickere Kabel weniger flexibel als dasdünnere 10Base2. Beispielsweise ist es schwieriger, solche Kabel durch verwinkelteKabelkanäle zu ziehen.

Auf dem Kabel sitzen bei dieser Ethernet-Form sogenannte Transceiver, die über 15-polige Buchsen an die Netzwerkkarten angeschlossen werden. Zwischen zwei Transcei-vern muss ein Mindestabstand von 2,5 Metern eingehalten werden; das Kabel enthältab Werk Markierungen in diesem Abstand. Die Transceiver werden an diesen Stelleneinfach in das Kabel hineingebohrt (deshalb werden sie als »Vampirabzweige« bezeich-net). In einem Segment dürfen sich maximal 100 davon befinden. Auch dieses Netz istbusförmig, und beide Enden müssen durch Abschlusswiderstände terminiert werden.

Twisted-Pair-Kabel

Heutzutage wird Ethernet viel häufiger über Twisted-Pair-Kabel betrieben. Bei dieser Ka-belsorte handelt es sich um einen verdrillten Kupfer-Zweidrahtleiter: Je zwei isolierteKupferdrähte werden umeinandergewickelt. Dies verhindert die gegenseitige Beeinträch-tigung der Signalqualität, die bei parallel zueinander verlaufenden Kabeln durch die elek-tromagnetischen Felder aufträte. In einem Twisted-Pair-Kabel verlaufen üblicherweisevier, manchmal auch acht solcher Doppeladern nebeneinander. Sie enden auf beiden Sei-ten in einem RJ-45-Stecker, der auch für ISDN-Anschlüsse verwendet wird. Bekannt sindsolche Kabel vor allem durch ihre Verwendung als Telefonleitungen.

Man unterscheidet zwei verschiedene Grundarten von Twisted-Pair-Kabeln: UTP oder Un-shielded Twisted Pair ist ein nicht abgeschirmter Zweidrahtleiter, STP (Shielded TwistedPair) ein abgeschirmter, der eine höhere Signalqualität aufweist, so dass er zum Beispielgrößere Entfernungen überbrücken kann.

Außerdem werden Twisted-Pair-Kabel in verschiedene Kategorien unterteilt, die unter-schiedliche maximale Datenübertragungsraten zulassen. Diese sind in Tabelle 4.3 aufge-listet.

Kategorie Übertragungsrate Verwendungszweck

1 nicht festgelegt Telefonie

2 4 MBit/s ISDN

3 10 MBit/s Ethernet; Token Ring

4 16 MBit/s verschiedene

5 100 MBit/s Fast Ethernet; allgemeiner Standard

6 200 MBit/s verschiedene

7 600 MBit/s verschiedene

Tabelle 4.3 Die verschiedenen Kategorien von Twisted-Pair-Kabeln

201

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

Alle über Twisted Pair verkabelten Arten von Ethernet weisen eine sternförmige Topolo-gie auf, zumindest im physischen Sinn: Alle Stationen werden jeweils über ein eigenstän-diges Kabel an einen zentralen Verteiler angeschlossen. Der Vorteil dieser Form der Ver-netzung besteht grundsätzlich darin, dass der Ausfall einer einzelnen Verbindungzwischen einem Rechner und dem Verteiler nicht zur Unterbrechung des gesamten Net-zes führt, wie es beim busförmigen Koaxialkabel-Ethernet der Fall ist.

Hub versus Switch

Der zentrale Verteiler wird in seiner einfacheren Form Hub genannt, die etwas teurere,aber leistungsfähigere Bauweise heißt Switching Hub oder kurz Switch. Die innere Struk-tur des Hubs ist letztlich busförmig, so dass es genau wie bei der Vernetzung über Koaxi-alkabel zu Datenkollisionen kommen kann. Ein Switch stellt dagegen für zwei Stationen,die miteinander kommunizieren möchten, eine exklusive Punkt-zu-Punkt-Verbindung be-reit. Dies geschieht dadurch, dass ein Switch die MAC-Adressen aller Schnittstellen zwi-schenspeichert, an die er bereits Daten ausgeliefert hat, und auf diese Weise die restlichenStationen nicht mehr mit Daten behelligen muss, die gar nicht für sie bestimmt sind. Dadie Preise für Netzwerkzubehör in den letzten Jahren stark gesunken sind, gibt es eigent-lich keinen Grund mehr, etwas anderes als einen Switch einzusetzen.

Bei einem Hub teilen sich alle Stationen die gesamte Übertragungsgeschwindigkeit, beimSwitch steht sie dagegen jeder einzelnen Verbindung zur Verfügung.

Im Übrigen gibt es besondere Hubs, die als Bridges bezeichnet werden. Sie verbindenEthernet-Netzwerke verschiedenen Typs miteinander, beispielsweise besitzen sie eineReihe von RJ-45-Ports für Twisted-Pair-Kabel und zusätzlich einen Anschluss für 10Base2-BNC-Kabel; oder sie unterstützen einfach verschiedene maximale Übertragungsgeschwin-digkeiten.

Hubs oder Switches weisen in der Regel 5 bis 24 Anschlüsse (Ports) auf, an die jeweils einGerät angeschlossen werden kann. Um Netzwerke mit mehr Geräten zu betreiben, sinddiese Geräte kaskadierbar: Die meisten Hubs oder Switches besitzen einen speziellen Port,den sogenannten Uplink-Port, der über ein Kabel mit einem normalen Port eines weiterenVerteilers verbunden werden kann. Bei vielen Hubs/Switches kann ein einzelner Portüber einen Schalter zwischen »Normal« und »Uplink« umgeschaltet werden.

Zwei-Rechner-Netzeohne Hub

Die einzige Ausnahme von der allgemeinen Regel, dass ein Hub oder Switch benötigtwird, bildet der Sonderfall, in dem nur zwei Rechner miteinander vernetzt werden sollen:Die beiden Stationen können unmittelbar über ein sogenanntes Crosslink-Kabel verbun-den werden. Dieses spezielle Kabel besitzt überkreuzte Anschlusspaare anstelle der gerad-linig verlaufenden bei normalen Twisted-Pair-Kabeln.

Historisch betrachtet existieren zwei Arten von Ethernet über Twisted Pair, die unter-schiedliche Übertragungsgeschwindigkeiten unterstützen:

202

Netzwerkgrundlagen4

� 10BaseT: Die Datenübertragungsrate beträgt 10 MBit/s.

� 100BaseT (auch Fast Ethernet genannt): Daten werden mit bis zu 100 MBit/s übertra-gen; hierzu sind mindestens UTP-Kabel der Kategorie 5 erforderlich. Genauer gesagtgibt es zwei Unterarten: 100BaseTX ist voll kompatibel mit 10BaseT, so dass das Netzschrittweise umgerüstet werden kann. 100BaseT4 verwendet dagegen alle vier Kupfer-drahtpaare eines Twisted-Pair-Kabels und ist mit den anderen Standards inkompatibel;in der Praxis spielt es keine Rolle mehr.

Die meisten Netzwerkkarten, Hubs und Switches, die heute verkauft werden, unterstüt-zen beide Übertragungsraten. Der zu verwendende Wert kann bei vielen Netzwerkkartenper Software eingestellt werden, häufiger wird er automatisch gewählt. Natürlich solltenSie prinzipiell darauf achten, keine reine 10-MBit-Hardware mehr zu kaufen. Aber mögli-cherweise hat 100-MBit-Hardware der ersten Generation, die nicht auf 10 MBit/s herun-tergeschaltet werden kann, sogar noch schlimmere Einschränkungen zur Folge. Zwar istes bei normalen Standard-PCs ein Leichtes, die Netzwerkkarte gegen ein neueres Modellauszutauschen, um die Kompatibilität zu einer aktualisierten Netzwerkumgebung auf-rechtzuerhalten, aber bei anderen Geräten wie beispielsweise Netzwerkdruckern oderkompakten Router-Boxen ist das eventuell nicht möglich. Solche Geräte sind mit einemreinen 100er-Netz eventuell nicht mehr kompatibel.

NeueEthernet-Versionen

Noch neuere Formen von Ethernet erreichen Übertragungsraten von 1.000 MBit/s (Giga-bit-Ethernet), entweder über Lichtwellenleiter (1000BaseFL für »Fiber Logic«) oder übermehradrige Twisted-Pair-Kabel (1000BaseTX). Bereits entwickelt, aber noch nicht weit-verbreitet, sind Ethernet-Varianten mit 10 oder gar 100 GBit/s – anfangs nur über ver-schiedene Arten von Lichtwellenleitern, aber inzwischen ebenfalls über Twisted Pair.

4.4.2 Token Ring

Das Token-Ring-Netzwerk wurde ursprünglich 1972 von IBM konzipiert. Es besitztgrundsätzlich eine ringförmige Topologie, wobei dies heute nur noch den logischen Auf-bau betrifft, während die physikalische Topologie sternförmig ist: Die Rechner werdenüber die bei Ethernet beschriebenen Twisted-Pair-Kabel an einen speziellen Token-Ring-Hub angeschlossen; innerhalb dieses Gerätes sind die Anschlüsse ringförmig miteinanderverbunden.

TokenPassing

Die Datenübertragungsrate von Token Ring betrug anfangs 4 MBit/s, wurde jedoch späterauf 16 MBit/s erhöht. Auch wenn diese Geschwindigkeiten im Vergleich zu Fast Ethernetsehr gering erscheinen, kann Token Ring in gewisser Hinsicht dennoch damit konkurrie-ren. Es verwendet ein wesentlich ausgeklügelteres Netzzugangsverfahren als Ethernet, dasToken-Passing-Verfahren. Dieses funktioniert schematisch gesehen folgendermaßen:

203

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

1. In Datenstromrichtung reichen die einzelnen Stationen ein spezielles Datenmusterweiter, das sogenannte Frei-Token.

2. Eine Station kann nur senden, wenn sie das Token erhalten hat. Sie wandelt das Frei-Token in ein Besetzt-Token um, hängt die zu übertragenden Daten an und sendet sie inDatenstromrichtung weiter.

3. Die Empfängerstation sendet nach erfolgreichem Empfang der Daten eine Bestätigungan den Absender.

4. Nach Erhalt der Bestätigung erzeugt der ursprüngliche Absender ein neues Frei-Tokenund versendet es wiederum in Datenstromrichtung.

Durch dieses Konzept können in einem solchen Netz grundsätzlich keine Datenkollisio-nen auftreten. Andere Probleme müssen dagegen speziell behandelt werden:

� Eine Station muss in der Lage sein, zu erkennen, dass ihr Nachfolger in Datenstrom-richtung ausgefallen ist, um einen neuen Nachfolger zu bestimmen. Dazu wartet sienach der Weitergabe des Tokens eine bestimmte Zeitspanne – die sogenannte Slot-Time – auf eine Bestätigung ihres Nachfolgers. Bleibt diese aus, so sendet sie ein neuesToken aus. Wird auch dieses nicht bestätigt, so versendet die Station ein speziellesWho_Follows-Frame (»Wer folgt«) mit der Adresse ihres bisherigen Nachfolgers. JederRechner kontrolliert diese Adresse; derjenige, um dessen Vorgänger es sich handelt,sendet ein Set_Successor-Frame (»Setze Nachfolger«) an den ursprünglichen Absender,der diesen Rechner als seinen neuen Nachfolger einträgt.

� Es muss die Möglichkeit geben, nachträglich hinzugekommene Rechner in den Ringaufzunehmen. Dazu sendet die Station, die gerade das Token besitzt, von Zeit zu Zeiteine Solicit_Successor-Anfrage aus. Eine neu in Betrieb genommene Station ist in derLage, normale Frames zu empfangen, kann jedoch nur auf dieses spezielle Frame ant-worten, und zwar mit der Set_Successor-Meldung.

� Falls mehrere Stationen gleichzeitig dem Netz beitreten möchten und deshalb auf die-selbe Solicit_Successor-Anfrage antworten, versendet deren Absender ein Resolve_Contention-Frame (»Beendet Auseinandersetzung«). Daraufhin berechnet jeder Rech-ner aus seiner Adresse eine spezifische Wartezeit, so dass die Stationen letztlich nach-einander bei späteren Solicit_Successor-Anfragen dem Netzwerk beitreten.

Heute werden kaum noch neue Token-Ring-Netzwerke eingerichtet, im LAN-Bereich wirdfast nur noch Ethernet eingesetzt. Die Technik, die sich als nächste allgemein durchzuset-zen scheint, sind drahtlose Netzwerke nach IEEE 802.11, die im nächsten Abschnitt be-handelt werden.

204

Netzwerkgrundlagen4

4.4.3 Drahtlose NetzeSchon seit sehr langer Zeit werden über drahtlose Technologien wie Funk, Mikrowellen,Satellit oder Infrarot nicht nur Sprache, Radio- und Fernsehsignale, sondern auch Datenübertragen. Die digitale (!) Datenübertragung per Funk war sogar die erste Anwendungder drahtlosen Nachrichtentechnik überhaupt: Der Funkpionier Guglielmo Marconi er-fand die drahtlose Telegrafie mit Hilfe des binären Morse-Alphabets5 lange vor demSprechfunk.

Im Bereich der Netzwerke gibt es immer mehr Anwendungsfälle, bei denen sich der Ein-satz drahtloser Techniken anbietet. Die folgenden Beispiele können als Anhaltspunktedienen:

� In Privathaushalten wird WLAN inzwischen häufiger eingesetzt als kabelbasierteNetze. Da viele Menschen Laptops und/oder WLAN-fähige Mobiltelefone haben, istdies auch viel praktischer. Für den Internetzugang kommen entsprechend oft WLAN-DSL-Router zum Einsatz, die eine Verbindung zwischen dem Internet und den End-geräten vermitteln.

� In einem Unternehmen werden viele Außendienstmitarbeiter beschäftigt. Sie sind mitNotebooks ausgestattet und kommen nur gelegentlich in die Firmenzentrale.

� Eine Firma zieht in ein denkmalgeschütztes Haus ein, an dessen Bausubstanz nichts ge-ändert werden darf – an das Verlegen von Kabelkanälen oder gar das Aufstemmen vonWänden für die Vernetzung ist nicht zu denken.

� Zwischen zwei Gebäuden eines Unternehmens verläuft eine öffentliche Straße; für dieÜberbrückung durch ein Kabel müsste ein langfristiges Genehmigungsverfahren mitungewissem Ausgang eingeleitet werden.

� Auf LAN-Partys (Treffen von Netzwerkspielern), Messen, Kongressen oder ähnlichenVeranstaltungen müssen Unmengen von Computern für kurze Zeit vernetzt werden.

Für den Betrieb drahtloser Netzwerke kommen die verschiedensten Übertragungsmetho-den zum Einsatz. Sie lassen sich nach folgenden Kriterien unterscheiden oder für denpraktischen Einsatz auswählen:

� Welche maximale Entfernung zwischen zwei Stationen muss überbrückt werden?

� Besteht zwischen den einzelnen Standorten Sichtkontakt, oder befinden sich Wändeoder andere Hindernisse zwischen ihnen?

� Soll eine freie Funkfrequenz genutzt werden, oder kann es auch eine lizenzpflichtigesein (Letzteres kann teuer werden)?

� Sind die vernetzten Geräte selbst stationär oder mobil?

5 Ganz und gar binär ist das Morsealphabet übrigens nicht: Neben »Lang« und »Kurz« muss die Pause zwi-schen zwei Zeichen als drittes mögliches Signal betrachtet werden, da die einzelnen Zeichen (übrigensgemäß ihrer Häufigkeit in englischen Texten) aus unterschiedlich vielen Einzelsignalen bestehen.

205

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

Diese diversen Auswahlkriterien zeigen bereits, dass es so etwas wie »das« drahtlose Netznicht gibt. Für jeden Anwendungszweck bieten sich verschiedene Lösungen an, die sorg-fältig geprüft werden müssen.

Genau wie bei der verkabelten Konkurrenz lassen sich auch hier verschiedene Kategorienvon Reichweiten unterscheiden. Das WLAN (Wireless LAN, auch WiFi genannt) nachIEEE 802.11 ist ein drahtloses Netz für den Nahbereich, also für die Vernetzung innerhalbeiner einzelnen Institution. Das WWAN (Wireless Wide Area Network) dagegen ist eindrahtloses Fernnetzwerk. Dazu zählen unter anderem Satellitenverbindungen.

In diesem Abschnitt wird nur das 802.11-kompatible WLAN beschrieben, da es sich seitseiner Einführung 1997 sehr schnell verbreitet hat und heute von allen Wireless-Techno-logien am häufigsten eingesetzt wird. 802.11 besteht aus mehreren Unterstandards, diesich in den Punkten Frequenzspektrum, Übertragungsrate und Funktechnologie unter-scheiden. Sie alle werden jedoch über Funk betrieben; eine ursprünglich ebenfalls spe-zifizierte Infrarotvariante hat sich nicht durchgesetzt. Infrarot wird größtenteils für dendrahtlosen Anschluss von Peripheriegeräten wie Mäusen oder Tastaturen verwendet.Tabelle 4.4 zeigt eine Übersicht über die wichtigsten gebräuchlichen 802.11-Varianten.

Die Trägerfrequenz von 2,4 GHz wird vor allem deshalb am häufigsten verwendet, weilsie nicht lizenzpflichtig ist. Es handelt sich nämlich um diejenige Frequenz, mit der Mikro-wellenherde arbeiten, da diese Wellenlänge Wassermoleküle am effektivsten erhitzt.

Frequency Hopping

Die diversen Funkverfahren arbeiten alle mit verschiedenen Varianten der Frequency-Hopping-Methode, die auch im Mobilfunk eingesetzt wird: Nach einem bestimmtenSchema werden die Funkwellen über mehrere Frequenzen übertragen, die mehrmals inder Sekunde wechseln. Dies ist erheblich weniger störanfällig als die Verwendung einereinzelnen Frequenz. Die grundlegende Technik wurde Mitte der 1930er Jahre von derösterreichischen Schauspielerin Hedy Lamarr erfunden. Ihr damaliger Ehemann warRüstungsfabrikant, und diese Funktechnik sollte helfen, Torpedos der Alliierten fernzu-steuern, ohne dass die Signale abgefangen und verfälscht werden konnten. Im Einzelnenwerden folgende Verfahren unterschieden:

Standard Frequenzbereich Übertragungsrate Funktechnik

802.11 2,4 GHz 1 oder 2 MBit/s FHSS/DSSS

802.11a 5 GHz bis zu 54 MBit/s OFDM

802.11b 2,4 GHz 5,5/11/22 MBit/s HR/DSSS

802.11g 2,4 GHz bis zu 54 MBit/s OFDM

802.11n6 2,4 und 5 GHz bis zu 600 MBit/s MIMO

Tabelle 4.4 Verschiedene Varianten von IEEE 802.11

206

Netzwerkgrundlagen4

� FHSS (Frequency Hopping Spread Spectrum): Die Frequenzen wechseln nach einemzufälligen Muster.

� DSSS (Direct Sequence Spread Spectrum): Es werden erheblich mehr Einzelfrequenzenverwendet; die Verteilung erfolgt nach einem komplexen mathematischen Verfahren.

� HR/DSSS (High Rate Direct Sequence Spread Spectrum): Entspricht DSSS mit speziellenErweiterungen, die eine höhere Übertragungsrate ermöglichen.

� OFDM (Orthogonal Frequency Division Multiplexing): Jeder Kanal wird in mehrereTeilkanäle unterteilt, die Signale werden über alle Teilkanäle parallel übertragen. Ausdiesem Grund ist OFDM das Übertragungsverfahren mit der höchsten Datenrate, an-dererseits aber auch das aufwendigste, so dass die entsprechende Hardware noch vorwenigen Jahren vergleichsweise teuer war.

� MIMO (Multiple Input/Multiple Output): Im Wesentlichen eine nochmals verbesserteOFDM-Variante, die wiederum erheblich höhere Übertragungsraten ermöglicht. DieDatenübertragung kann gleichzeitig über mehrere Frequenzbänder erfolgen.

WLAN-Hardware

Der größte Teil der Wireless-LAN-Hardware, der momentan verkauft wird, basiert aufden Standards 802.11b und 802.11g (die meisten Geräte unterstützen wahlweise beide).Die Preise für Hardware dieser Variante sind in den letzten Jahren stark gefallen. EinWLAN-Adapter ist inzwischen ab etwa 20 € erhältlich, sowohl als PCI-Karte als auch alsPCMCIA- oder USB-Adapter. Außerdem sind Notebooks (und meist auch Desktop-PCs) abWerk standardmäßig mit einer WLAN-Schnittstelle ausgestattet. Vorreiter dürften das Po-werBook und das iBook von Apple gewesen sein; Apple fördert diese Technologie unterdem Namen AirPort seit vielen Jahren.

CSMA/CA Als Netzzugangsverfahren in 802.11-Netzen kommt CSMA/CA zum Einsatz (Carrier SenseMultiple Access with Collision Avoidance) – wie der Name vermuten lässt, werden Daten-kollisionen von vornherein vermieden. Anders als bei CSMA/CD sendet eine Station, dieein freies Übertragungsmedium (in diesem Fall den entsprechenden Funkkanal) vorfin-det, nicht einfach ihre Daten, sondern eine Sendeanforderung (RTS). Daraufhin wartenandere sendebereite Stationen; und die erste Station, die das RTS gesendet hat, sendet ihreDaten, nachdem ihr die Empfängerstation ihre Empfangsbereitschaft (CTS) signalisierthat. Abgeschlossen wird die Datenübertragung durch ein ACK-Signal, daraufhin kann dienächste Station ihren Sendewunsch bekanntgeben.

Das einfachste denkbare 802.11-WLAN besteht nur aus mehreren Rechnern mit entspre-chender Schnittstelle, die auf direktem Weg miteinander kommunizieren. Ein solcherAufbau wird als Basic Service Set (BSS) bezeichnet. Die Entfernung zwischen zwei beliebi-gen Stationen darf die maximale Reichweite des Funksignals nicht überschreiten, da jedeStation die Signale nur senden und empfangen, aber nicht verstärken und weiterleitenkann. Da ein solches Netzwerk nicht mit anderen Netzen kommunizieren kann, wird esals unabhängiges BSS (Independent BSS oder kurz IBSS) bezeichnet. Derartige Netzwerke

207

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

sind sinnvoll für die sogenannte Ad-hoc-Vernetzung temporärer Zusammenkünfte wieMessen oder LAN-Partys.

Access PointsEin wenig komplexer wird der Aufbau eines BSS, wenn ein Access Point hinzugefügtwird. Im Grunde funktioniert ein Access Point wie ein Ethernet-Hub, denn sobald er vor-handen ist, kommunizieren die Stationen nicht mehr direkt miteinander, sondern sendendie Frames an den Access Point, der sie an den gewünschten Empfänger weitergibt. DieIdentifikation der einzelnen Stationen erfolgt wie bei Ethernet anhand einer 48 Bit langenMAC-Adresse. Ein BSS mit einem Access Point wird als Infrastruktur-BSS bezeichnet. Fürdie Reichweite des Netzes ist nur noch die Entfernung zwischen einer Station und demAccess Point ausschlaggebend.

Die wichtigste Aufgabe eines Access Points besteht in seiner Funktion als Bridge. Er ver-bindet das WLAN mit einem Backbone-Netzwerk – meistens Twisted-Pair-Ethernet. Aufdiese Weise kann das WLAN mit stationären Teilen des Netzes verbunden werden oderZugang zu Servern und Routern erhalten, ohne dass diese selbst mit WLAN-Schnittstellenausgestattet werden müssten.

Im Übrigen bildet ein Verbund aus miteinander vernetzten Access Points (entweder eben-falls über Funk oder über Ethernet) ein sogenanntes Extended Service Set (ESS). Eine Sta-tion kann sich innerhalb eines ESS frei bewegen, weil die Access Points einander darüberauf dem Laufenden halten, welche Stationen sich gerade in ihrem Bereich befinden. EineStation kann immer nur genau mit einem Access Point verbunden sein; sobald das Signaleines anderen Access Points stärker wird als das des bisherigen, meldet die Station sich beiihrem alten Access Point ab und bei dem neuen an. Auf diese Weise werden Frames im-mer über den jeweils aktuellen Access Point an eine Station gesendet.

Ein zusätzlicher Nutzen von Access Points besteht darin, dass sie in der Lage sind, Frameszu puffern, die an bestimmte Stationen adressiert sind. Gerade Notebooks schalten imStandby-Modus oft auch die WLAN-Schnittstelle ab, um Strom zu sparen; sobald die Ver-bindung wieder aufgebaut wird, werden die zwischengespeicherten Frames ausgeliefert.

Das ESS-Modell wird immer häufiger für öffentlich verfügbare Netzwerkzugänge ein-gesetzt. In Bahnhöfen, Flughäfen oder Gaststätten stehen öffentlich zunehmend WLAN-Access-Points (auch Hotspots genannt) zur Verfügung, in die sich Notebook-Benutzerohne weiteres einwählen können. Mittlerweile werden sogar die ersten Innenstädte fastflächendeckend mit einander überlappenden Access Points ausgestattet. Irgendwannkönnte ein ähnlich dichtes Netz entstehen, wie es die Mobilfunkzellen inzwischen bilden.

WLAN-Sicherheit

Eine der größten Herausforderungen beim Einsatz von Wireless-Technologien bleibt dieSicherheit. Es ist zwar auch nicht weiter schwierig, das Signal von Ethernet-Kabeln abzu-hören, aber immerhin ist es vergleichsweise einfach, den physikalischen Zugang zu ihnenzu kontrollieren. Bei WLAN kann dagegen im Grunde genommen jeder die Signale mit ei-ner kompatiblen Antenne auffangen und analysieren, um unberechtigt Informationen zu

208

Netzwerkgrundlagen4

erhalten oder gar zu manipulieren. Das gilt umso mehr, als man die Grenzen der Funk-reichweite niemals ganz genau auf die Größe des zu vernetzenden Gebäudes oder Gelän-des abstimmen kann; es ist also durchaus möglich, die Funkwellen außen zu empfangen.

Um ein Mindestmaß an Sicherheit zu gewährleisten, bot die ursprüngliche 802.11-Spezi-fikation eine optionale Verschlüsselung der Frames an. Allerdings ist diese Methode nichtbesonders sicher; Sicherheitsexperten haben bereits bewiesen, dass die Verschlüsselungverhältnismäßig leicht zu knacken ist. Schon der Name dieser Technik, WEP (Wired Equi-valent Privacy), sagt allzu deutlich aus, dass es nicht um mehr geht, als etwa dasselbe Maßan Sicherheit zu gewährleisten wie beim rein physikalischen Schutz verkabelter Netz-werke. Der Hauptverwendungszweck besteht auch gar nicht in der Geheimhaltung, son-dern in der Abgrenzung eines Wireless-Netzes von benachbarten Netzen: Es ist ärgerlich,wenn jedes vorbeifahrende Fahrzeug, in dem sich zufälligerweise ein Laptop mit 802.11-Schnittstelle befindet, diesen vorübergehend automatisch ins Netz einbucht und wiederdaraus verschwindet. Dies lässt sich allerdings zuverlässiger verhindern, indem der AccessPoint mit einer Whitelist zugelassener MAC-Adressen konfiguriert wird.

Inzwischen stehen mit WPA und WPA2 (WiFi Protected Access) stark verbesserte WLAN-Verschlüsselungsverfahren zur Verfügung.

4.4.4 Sonstige Zugangsarten

Einige weitere Formen von Netzwerkhardware und Netzzugang sollen hier kurz erwähnt,aber nicht weiter vertieft werden. Es handelt sich zum Teil um nicht mehr gebräuchliche,zum Teil aber auch um seltene Zugangsverfahren.

ATM

Der Asynchronous Transfer Mode (ATM) verwendet als physikalisches Trägermedium Te-lefonleitungen. Es handelt sich um einen Standard für Breitband-WAN-Verbindungen,der seit Anfang der 1990er Jahre von Telefongesellschaften angeboten wird. Die Vernet-zung erfolgt über ATM-Switches, die genau wie Ethernet-Switches direkte Verbindungenzwischen den Stationen herstellen und auf diese Weise eine feste Übertragungsrate garan-tieren. Bei ATM beträgt diese 155 MBit/s.

TCP/IPüber ATM

ATM wurde kurz vor dem Siegeszug des Internets und der TCP/IP-Netze eingeführt unddefinierte ursprünglich nicht nur Hardware- und Netzzugangsstandards, sondern aucheigene Vermittlungs- und Transportverfahren, die mit IP-Netzen inkompatibel sind.Insbesondere scheiterte IP-Datentransport über ATM an der außerordentlich geringenATM-Datenpaketgröße, die gerade einmal 53 Byte beträgt: 48 Byte Nutzdaten und ein nur5 Byte großer Header.

Dies macht ATM besonders schnell und flexibel, gerät aber für TCP/IP zu einem fast un-überwindbaren Hindernis, da oft noch nicht einmal ein IP-Paket-Header in ein ATM-Paket

209

Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren 4.4

hineinpasst. Die IP-Pakete müssen auf komplizierte Art und Weise fragmentiert und amZiel wieder zusammengesetzt werden. Zu diesem Zweck wurde eine Reihe von konkretenVerfahren entwickelt. Deshalb spielt ATM heute durchaus eine gewisse Rolle im Bereichder Breitband-Internetzugänge für Unternehmen, praktischere und kostengünstigereTechnologien wie das im nächsten Abschnitt vorgestellte DSL liefen ihm jedoch sehrschnell den Rang ab.

In Backbones spielt ATM dagegen noch eine gewisse Rolle, aber selbst dort erfolgt allmäh-lich ein Umstieg auf Technologien wie Gigabit Ethernet. Selbst Cisco Systems als wichtigs-ter Hersteller von Backbone-Technologien rät seinen Kunden inzwischen zur Migrationvon ATM nach Ethernet: http://www.cisco.com/warp/public/cc/pd/si/casi/ca2900xl/index.shtml.

FDDI

Das Fiber Distributed Data Interface (FDDI) ist ein LAN- und WAN-Standard, der Glas-faserkabel verwendet. Als dieser Standard Anfang der 1990er Jahre konzipiert wurde,sollte er hauptsächlich als Backbone-Netz für Ethernet in Firmen eingesetzt werden,wurde jedoch in manchen Umgebungen auch als normales LAN eingeführt. Wie TokenRing ist FDDI in einer ringförmigen Topologie angeordnet. Allerdings existieren zwei un-abhängige Ringe, von denen einer als Ersatzring fungiert, falls der Hauptring ausfällt.Genauer gesagt verläuft die Datenstromrichtung des zweiten Rings andersherum als diedes ersten, so dass ein größerer Ring aus dem Zusammenschluss von beiden gebildet wer-den kann, falls ein bestimmtes Stück ausfällt.

Innerhalb eines FDDI-Rings können bis zu 500 Stationen betrieben werden. Der maxi-male Umfang des gesamten Rings beträgt 100 Kilometer, wobei jedoch spätestens alle2 Kilometer ein Repeater eingesetzt werden muss. Die Übertragungsrate beträgt 100MBit/s. Eine noch höhere Geschwindigkeit ist erreichbar, wenn beide Ringe parallel fürdie Datenübertragung verwendet werden, dann allerdings ohne zusätzliche Ausfallsicher-heit.

Als Netzzugangsverfahren wird eine spezielle Form von Token Passing eingesetzt, dasTimed-Token-Protokoll. Bei dieser Variante wird unmittelbar, nachdem eine Station mitdem Senden begonnen hat, wieder ein neues Frei-Token erzeugt, so dass gleichzeitig meh-rere Datenübertragungsvorgänge im Netz stattfinden können.

ARCNet

Bei Attached Resource Computer Network (ARCNet) handelt es sich um eine bereits inden 1970er Jahren entwickelte proprietäre LAN-Lösung der Firma Datapoint. Daher exis-tiert für sie kein IEEE-Standard. In Büronetzwerken wird ARCNet so gut wie gar nicht ein-gesetzt, es konnte sich jedoch einen Platz im Bereich der Industrie erobern, wo es insbe-sondere zur Vernetzung von Steuercomputern dient.

210

Netzwerkgrundlagen4

Es wird über Twisted-Pair-Kabel und Hubs in einer Stern-Topologie betrieben; die maxi-male Datenübertragungsrate beträgt 2,5 MBit/s. Ein neuerer Standard, ARCNet Plus, be-herrscht 20 MBit/s. Als Netzzugangsverfahren wird Token Passing verwendet.

4.5 Datenfernübertragung

Nachdem im vorigen Abschnitt die verschiedenen Formen der LAN-Vernetzung und derWANs über Standleitungen beschrieben wurden, sollen nun diverse Verfahren der Daten-fernübertragung (DFÜ) geschildert werden. Wie bereits angesprochen, wurde DFÜ be-reits eingesetzt, als sie lediglich der Punkt-zu-Punkt-Kommunikation zwischen einzelnenRechnern über eine direkte Telefonverbindung diente. Heute geht es in der Regel darum,den Zugang zu einem bestehenden Netzwerk oder (über einen kommerziellen Provider)zum Internet herzustellen.

DFÜ-Varianten

Die erste Generation der DFÜ-Hardware, der umständliche und störanfällige Akustik-koppler, muss hier nicht mehr beschrieben werden. Die drei wesentlichen Technologiensind heute Modems für den Netzwerkzugang über analoge Telefonleitungen, der Zugangüber die digitale Telefonleitung ISDN sowie Hochfrequenz-Verbindungen über verschie-dene DSL-Dienste. Diese verschiedenen Zugangsverfahren werden im Folgenden darge-stellt.

Eine Gemeinsamkeit aller DFÜ-Netzwerkverbindungen besteht in der Notwendigkeit, dieDatenübertragung über diese Leitungen zu standardisieren und bestimmte Grundlagenfür die Protokolle der Vermittlungsschicht zu schaffen. Dafür werden spezielle Protokolleverwendet, die den Netzzugang über relativ langsame serielle Leitungen ermöglichen. Dastraditionelle Protokoll für die Vernetzung über Wählleitungen war SLIP (Serial Line Inter-face Protocol). Allerdings besitzt es eine Reihe organisatorischer und technischer Mängelund wurde deshalb weitgehend durch PPP (Point-to-Point Protocol) ersetzt.

Aufgabenvon PPP

PPP kümmert sich um die Authentifizierung des Benutzers nach der Einwahl, indem Be-nutzername und Passwort übermittelt werden; anschließend verhandeln die beidendirekt miteinander verbundenen Punkte die eigentlichen Netzwerkdetails. Eine der we-sentlichsten Fähigkeiten des Protokolls für Internetverbindungen besteht darin, dass derEinwahlknoten dem anwählenden Rechner automatisch eine IP-Adresse zuweisen kann,über die diese Netzwerkschnittstelle im gesamten Internet identifiziert wird.

Im Einzelnen erfolgen bei PPP also die folgenden Schritte:

� Wird eine Wählleitung (analog oder ISDN) verwendet, so stellt der Rechner des Benut-zers über die entsprechende Schnittstelle eine Telefonverbindung her. Falls die Leitungbesetzt sein sollte, werden spezielle frei konfigurierbare Maßnahmen getroffen; in derRegel erfolgt nach einer gewissen Wartezeit ein erneuter Wählversuch. Bei DSL-Leitun-

211

Datenfernübertragung 4.5

gen wird ebenfalls die Verbindung aktiviert, auch wenn man dies nicht als »Wählen«im klassischen Sinne bezeichnen kann.

� Der Einwahlknoten verlangt eine Authentifizierung, in der Regel in Form von Benut-zername und Passwort. Die meisten PPP-Implementierungen in modernen Betriebs-systemen übermitteln diese Daten nach einmaliger Konfiguration automatisch, ohneZutun des Benutzers.

� Nachdem die Daten überprüft wurden, erfolgen entweder die Ablehnung des Benut-zers und der Verbindungsabbau, oder die Netzwerkparameter werden ausgehandelt.Auch wenn PPP als Netzzugangsgrundlage für alle möglichen Protokolle der Vermitt-lungsschicht dienen kann, wird heute fast nur noch TCP/IP aufgesetzt. Zu diesemZweck weist der PPP-Knotenpunkt des Internetproviders der seriellen Verbindung aufder Einwahlseite eine IP-Adresse zu, eine im gesamten Internet einmalige Identifika-tionsnummer. Ihr Konzept wird im nächsten Abschnitt genau beschrieben.

4.5.1 Netzwerkzugang per Modem (analoge Telefonleitung)

Für Modems wurden im Laufe der Zeit viele verschiedene Standards entwickelt, die sichinsbesondere bezüglich ihrer maximalen Datenübertragungsrate voneinander unterschei-den. Der aktuelle Standard heißt V.90 und überträgt bis zu 56.600 Bit/s. Gemessen an denüblichen Geschwindigkeiten fest verdrahteter Netzwerke ist das natürlich sehr langsam,aber kein Vergleich zu den Modem-Geschwindigkeiten vergangener Jahrzehnte. Reinphysikalisch scheint mit 56,6 KBit/s die Leistungsgrenze erreicht zu sein; etwas höhereÜbertragungsraten lassen sich durch die heutzutage häufig verwendete Datenkomprimie-rung erzielen – je nach übertragener Datenart etwa bis zur doppelten Leistung.

Das Wort »Modem« ist eine Zusammensetzung aus den Abkürzungen für »Modulator«und »Demodulator«, weil es die digitalen Signale des Computers in frequenzmodulierteAnalogimpulse umwandelt, diese über die Telefonleitung überträgt und am Ziel wiederzurückverwandelt. Zu diesem Zweck muss es auf der einen Seite mit dem Computer ver-bunden werden, zum Beispiel über USB, klassisch auch über die alte serielle Schnittstelleoder als PCI-Steckkarte. Auf der anderen Seite wird das Modem über einen TAE-Steckeran die Telefonbuchse angeschlossen. Praktisch sind in diesem Zusammenhang Dreifach-TAE-Dosen, die leicht nachgerüstet werden können: Sie verfügen über einen speziellenAnschluss (TAE-F) für ein Telefon in der Mitte und zwei Anschlüsse (TAE-N) für Zusatz-geräte – Faxgerät, Anrufbeantworter oder eben Modem – außen.

Der Hayes-Befehlssatz

Das Modem wird vom Computer über ein einfaches ASCII-basiertes Protokoll gesteuert.Heutzutage verwenden praktisch alle Modems den sogenannten Hayes-Befehlssatz (be-nannt nach einem längst vergessenen Modem-Hersteller). Da die Befehle dieses Protokollsalle mit der Zeichenfolge »AT« beginnen, wird er mitunter auch als AT-Befehlssatz be-zeichnet. Wichtige Befehle sind etwa folgende:

212

Netzwerkgrundlagen4

� ATDT <Rufnummer>: DT steht für »Dial Tone« – eine Rufnummer wird im Tonwahlver-fahren (Mehrfrequenzverfahren) angewählt.

� ATDP <Rufnummer>: »Dial Pulse« – eine Rufnummer wird im Pulswahlverfahren ange-wählt (heute sehr selten).

� ATH: »Hangup« – die Telefonverbindung wird unterbrochen, es wird »aufgelegt«.

� ATZ: Das Modem wird auf den Einschaltzustand zurückgesetzt (Reset).

Telefon-Wahl-

verfahren

Das Tonwahlverfahren verwendet mehrere Töne unterschiedlicher Frequenzen, die zu-sammen die verschiedenen Ziffern und Funktionen des Telefons repräsentieren. Das Puls-wahlverfahren sendet dagegen eine Reihe von »Klicktönen« – einen für eine 1, zwei füreine 2 und so weiter, bis zehn für eine 0. Seitdem alle Vermittlungsstellen in den deut-schen Telefonnetzen digital sind, benötigt niemand mehr das langsamere und unzuverläs-sigere Pulswahlverfahren. Verwechseln Sie übrigens digitale Vermittlung nicht mit digita-ler Signalübertragung – Letztere findet beispielsweise bei ISDN statt, das im nächstenAbschnitt behandelt wird.

Bevor eine Datenkommunikation überhaupt denkbar ist, müssen sich beide Seiten darü-ber einig sein, auf welche Weise sie die aufeinanderfolgenden einzelnen Bits überhauptals Datenbits interpretieren sollen, was Datenbits, Stoppbits und eventuelle Parity-Bitsangeht. Die meisten Internet-Einwahlpunkte verwenden heutzutage den Standard 8N1(8 Datenbits, kein Parity-Bit, 1 Stoppbit). Dies muss in den Modem-Konfigurationsdateneingetragen werden. Eine Beschreibung der verschiedenen Formen der seriellen Daten-übertragung finden Sie in Kapitel 3, »Hardware«.

Der Hand-shake

Nach der Herstellung der eigentlichen Telefonverbindung findet der sogenannte Hand-shake (»Handschlag«) zwischen den beiden Gegenstellen statt. Es wird eine Übertragungs-kapazität ausgehandelt, die beide Seiten verwenden können. Erst nachdem die grund-legende Datenübertragung funktioniert, wird PPP eingesetzt, um die eigentlicheNetzwerkverbindung über die Telefonverbindung herzustellen, wie weiter oben beschrie-ben wurde.

4.5.2 ISDN

Das Integrated Services Digital Network (etwa »Digitalnetzwerk mit integrierten Diens-ten«) oder kurz ISDN wurde in den 1980er Jahren von verschiedenen europäischen Tele-fongesellschaften eingeführt; die aktivste von ihnen dürfte die in Deutschland damalsnoch zuständige Deutsche Bundespost gewesen sein. Es handelt sich im Prinzip um dieÜbertragung digitaler Signale über klassische Kupferdraht-Telefonleitungen. Einem rei-nen Telefonkunden bietet ISDN zunächst die folgenden unmittelbaren Vorteile:

� Es werden zwei voneinander unabhängige Kanäle zur Verfügung gestellt; über beidekann gleichzeitig telefoniert, gefaxt oder Datenfernübertragung betrieben werden.

213

Datenfernübertragung 4.5

� Die Rufnummer eines Anrufers, der ebenfalls ISDN verwendet, wird übermittelt undim Display eines entsprechend ausgerüsteten Telefons angezeigt (dies funktioniert na-türlich auch bei Standard-Telefonleitungen mit Digitalvermittlung).

� Während eine Verbindung besteht, kann ein weiterer Anruf angenommen werden.Entweder wird der jeweils andere Gesprächspartner in den Wartezustand versetzt(Makeln), oder der neue Anrufer wird mit dem bisherigen in dieselbe Verbindung auf-genommen (Dreierkonferenz).

Inzwischen stehen die meisten dieser Dienste dank der flächendeckend digitalen Vermitt-lung in Deutschland auch Analogkunden zur Verfügung; lediglich die beiden separatenKanäle bleiben ISDN vorbehalten. Im Übrigen erhalten ISDN-Benutzer üblicherweise dreiunabhängige Rufnummern (bei einigen Telefongesellschaften sogar noch mehr), die freiauf die jeweiligen Geräte verteilt werden können.

Die ISDN-Kanäle

Technisch betrachtet werden sogar drei Kanäle zur Verfügung gestellt; die beidenB-Kanäle übertragen Telefongespräche, Faxe oder Daten mit jeweils 64 KBit/s, währendder D-Kanal Dienstinformationen wie Rufnummernübermittlung oder Anklopfen mit16 KBit/s überträgt. Für Internetverbindungen und andere Datenübertragungsmethodenbesteht die Möglichkeit, beide B-Kanäle zu bündeln und auf diese Weise insgesamt eineDatenübertragungsrate von 128 KBit/s zu gewährleisten; natürlich entstehen dafür auchdoppelte Kosten.

ISDN anschließen

In der Praxis funktioniert ISDN folgendermaßen: An die normale TAE-Telefonsteckdosewird ein spezielles ISDN-Endgerät namens NTBA angeschlossen. Es stellt zwei sogenannteS0-Basisanschlüsse zur Verfügung. Diese verwenden die auch vom Twisted-Pair-Ethernetbekannten RJ-45-Stecker. An jeden dieser Anschlüsse kann ein ISDN-Endgerät ange-schlossen werden, beispielsweise ein Telefon, ein Faxgerät oder ein ISDN-Adapter zurComputerdatenübertragung. Damit niemand seinen kompletten Telekommunikations-Gerätepark umstellen muss, werden als spezielle Form von ISDN-Endgeräten sogenannteTK-Anlagen angeboten, die wiederum den Anschluss analoger Endgeräte ermöglichen. Ei-nige TK-Anlagen bieten auch durchgeschleifte S0-Anschlüsse an, beispielsweise um ISDN-Geräte an einer praktischeren Stelle anzuschließen.

Natürlich sollten Sie nicht versuchen, ein Analogmodem an eine TK-Anlage anzuschließen– es würde nicht etwa nur den eigentlichen Vorteil der ISDN-Datenübertragung zunichtemachen, sondern funktioniert gar nicht. Da die übertragenen Daten nach außen wie ISDNaussehen, würde die Gegenstelle ihre Antworten mit einer Übertragungsgeschwindigkeitübermitteln, die das Modem nicht verarbeiten kann.

ISDN-Adapter

Um einen Computer mit ISDN zu verbinden, werden stattdessen verschiedene Formenvon ISDN-Adaptern angeboten: als PCI-Steckkarten (früher gab es sogar ISA-Modelle),externe USB-Geräte oder PCMCIA-Geräte für Notebooks. Mittlerweile werden einigeexterne ISDN-Geräte auch mit integrierter TK-Anlagen-Funktion angeboten. Eine interne

214

Netzwerkgrundlagen4

ISDN-Karte sieht genauso aus wie eine moderne Ethernet-Karte, und es kann leicht passie-ren, dass man das Twisted-Pair-Netzwerkkabel mit seinem baugleichen Stecker in dieISDN-Karte steckt und umgekehrt (selbstverständlich geschieht in diesem Fall gar nichts).Jedenfalls muss normalerweise ein ISDN-Kabel vom Anschluss des ISDN-Adapters zu ei-nem S0-Anschluss verlaufen.

Der Unterschied zwischen den Übertragungsraten eines heutigen Modems (56,6 KBit/s)und Ein-Kanal-ISDN (64 KBit/s) mag Ihnen nicht besonders groß erscheinen. Als jedochdas Internet für Privatkunden interessant zu werden begann, lag die Übertragungsrate dermeisten Modems bei 9.600 oder 14.400 Bit/s; erst allmählich kamen Geräte mit 28.800Bit/s hinzu. Abgesehen davon besitzt ISDN noch heute einen weiteren Vorteil gegenüberModem-Verbindungen: Der Verbindungsaufbau geht fast ohne Verzögerung vonstatten,während es bei Modems zu Wartezeiten von etlichen Sekunden kommen kann, bis dieLeitung bereit ist.

KlassischeISDN-Daten-übertragung

Neben der Verbindung zu einem Internetprovider, die mittlerweile wohl die häufigsteüber ISDN genutzte Dienstleistung ist, war über Jahre hinweg auch die direkte Verbin-dung zwischen Computern für die ISDN-Datenübertragung üblich. Sehr viele Macintosh-Benutzer verwendeten hierfür regelmäßig die Software Leonardo, während Windows-Benutzern beispielsweise das Programm Fritz!Data zur Verfügung stand, das mit der inDeutschland besonders populären Fritz!Card der Berliner Firma AVM geliefert wurde.Auch viele Mailbox/BBS-Systeme wurden in der zweiten Hälfte der 1990er Jahre auf ISDNumgestellt oder um eine ISDN-Einwahlmöglichkeit erweitert.

Insgesamt lässt sich feststellen, dass ISDN erst mit dem Aufkommen von Internetzugän-gen in Firmen und Privathaushalten wirklich populär wurde. Zuvor wurde es manchmalals Telefonleitung für Firmen eingesetzt, allerdings nicht annähernd so häufig, wie dieTelefongesellschaften sich dies erhofft hatten. Als ISDN dann schließlich immer öfterbenutzt wurde, reichte seine Übertragungsrate immer mehr Nutzern nicht mehr aus; dasBedürfnis nach multimediafähigen Breitband-Verbindungen wuchs deutlich. Dies führtezur Einführung der im nächsten Abschnitt vorgestellten DSL-Dienste.

4.5.3 DSL-Dienste

DSL ist die Abkürzung für »Digital Subscriber Line« (etwa »digitale Abonnement-Lei-tung«). Der Name soll verdeutlichen, dass es sich de facto um eine Standleitung anstelleeiner Wählleitung handelt. Zur Einführung von DSL kam es, da es durch die allmählicheVerbesserung der Qualität von Telefonleitungen möglich wurde, Signale hoher Frequenzzu übertragen. Auch die meisten DSL-Dienste verwenden also genau wie Modem- undISDN-Verbindungen die klassischen Kupferleitungen der Telefongesellschaften, die aller-dings immer häufiger durch Glasfaserleitungen ersetzt oder ergänzt werden.

215

Datenfernübertragung 4.5

DSL-Varianten

Es existieren zwei grundsätzliche Varianten von DSL: Bei Symmetric DSL (SDSL) sind dieÜbertragungsraten für ankommende und ausgehende Daten identisch, bei AsymmetricDSL (ADSL) ist die ankommende Übertragungsrate höher als die ausgehende. SDSL isteher für mittlere bis große Unternehmen geeignet, die nicht nur permanent auf das Inter-net zugreifen, um im Web zu recherchieren oder ihre E-Mails zu lesen, sondern bei denenauch eine Menge Datenausgänge stattfinden – beispielsweise für den Vor-Ort-Betriebeigener Web- oder Mailserver oder für den Direktzugriff auf das Firmennetzwerk durchexterne Mitarbeiter. ADSL dagegen wird häufiger von Privatkunden oder kleineren Fir-men eingesetzt, die recht hohe Datenmengen aus dem Internet herunterladen, aber nurverhältnismäßig wenige und eher kleine Uploads durchführen.

Übliche ADSL-Angebote wie T-DSL der Deutschen Telekom stellten ursprünglich eineDownload-Rate von 1.024 KBit/s und eine Upload-Rate von 128 KBit/s zur Verfügung,teilweise sogar noch weniger. Aktuelle ADSL-Anschlüsse des klassischen Typs sind dage-gen mit Download-Geschwindigkeiten von 2 bis 8 MBit/s ausgestattet. Auch die umge-kehrte Datenrate wurde entsprechend vervielfacht. Die neueren Typen ADSL2 undADSL2+, die allerdings eine nicht überall verfügbare hohe Leitungsqualität und spezielleHardware benötigen, schaffen sogar 16 beziehungsweise 25 MBit/s im Download.

SDSL-Lösungen werden von sehr vielen kommerziellen Providern angeboten und stellenje nach Bedarf viele verschiedene Übertragungsraten von 1.024 KBit/s bis hin zu mehre-ren MBit/s zur Verfügung. Sie sind deutlich teurer als ADSL-Angebote mit der gleichenoder gar mit einer höheren Übertragungsrate, weil die entsprechende Technik aufwendi-ger ist.

Anders als bei Modem- oder ISDN-Angeboten werden die Gebühren für DSL-Anschlüssein der Regel nicht nach der Nutzungsdauer berechnet, sondern als sogenannte Flatrate fürbeliebig lange Onlinezeiten. Einige Provider verwenden allerdings eine Volumen-beschränkung, das heißt, ohne Aufpreis darf monatlich nur eine bestimmte Datenmengetransferiert werden.

Seltenere Varianten

Neben den DSL-Angeboten, die über normale Telefonleitungen laufen, werden seit eini-ger Zeit auch spezielle Lösungen angeboten. Eine davon ist die Internetverbindung überdas Glasfaserkabel des Kabelfernsehens. Da dieses Kabel für das Passivmedium Fernsehenerfunden wurde, besitzt es in seiner ursprünglichen Version keine Rückkanal-Fähigkeit.Es können Daten empfangen, aber nicht gesendet werden; noch nicht einmal die Anfor-derung einer URL kann abgesetzt werden. Erst allmählich wird der Rückkanal derjenigenKabelnetze nachgerüstet, die die Deutsche Telekom bereits verkauft hat.

Eine andere Lösung ist besonders interessant für kleine Gemeinden, die so weit von dernächsten größeren Stadt entfernt liegen, dass sich eine Nachrüstung der bestehendenTelefonleitungen oder Fernsehkabelnetze nicht lohnt: die Kommunikation mit einem

216

Netzwerkgrundlagen4

Satelliten über eine Parabolantenne. Diese Lösung bietet beispielsweise die Firma Telesunter dem Namen skyDSL an. Die Datenübertragungsrate beträgt bis zu 24.000 KBit/s.Über den Satelliten ist allerdings nur der Datenempfang möglich; Anfragen und andereSendevorgänge erfolgen über Analogmodem, ISDN oder GSM-Mobilfunk.

ADSL anschließen

An den TAE-Anschluss eines ADSL-Kunden wird ein sogenannter Splitter angeschlossen –eine Frequenzweiche, die die hochfrequenten DSL-Signale und die niedrigfrequentennormalen Telefonsignale voneinander trennt. Den Ausgang für die Telefonsignale bietetwiederum ein TAE-Anschluss, an den entweder ein Analog-Telefon oder ein NTBA ange-schlossen wird, je nachdem, ob ADSL mit einem Analog- oder mit einem ISDN-Telefonan-schluss kombiniert wird.

Den Ausgang für die speziellen ADSL-Signale bietet eine Twisted-Pair-Buchse vom TypRJ-11. An diesen Anschluss wird in der Regel ein ADSL-Modem angeschlossen, das dannüber USB oder Twisted-Pair-Ethernet mit dem Computer verbunden wird. Natürlich istdie Bezeichnung »ADSL-Modem« technisch gesehen Unfug. Bei DSL findet keinerlei Ana-log-Digital-Umwandlung statt. Dennoch ist der Begriff »Modem« für das Gerät weitver-breitet, weil es den Computer mit einer seriellen Fernleitung verbindet. Beim Anschlussüber eine Ethernet-Schnittstelle kommt eine spezielle PPP-Variante namens PPPoE (PPPover Ethernet) zum Einsatz.

Statt der reinen ADSL-Modems zum Anschluss eines einzelnen Rechners werden inzwi-schen meist DSL-Router verwendet, die gleich einem gesamten Netzwerk per Ethernet,WLAN oder beidem den Internetzugang bereitstellen. Inzwischen erlauben auch die meis-ten Provider den Einsatz solcher Router; früher waren die günstigsten Tarife dagegen viel-fach auf einen Einzelrechner beschränkt.

Internetzugänge über Mobilfunk

Neben den hier behandelten stationären DFÜ-Verbindungen werden auch diejenigen überMobilfunk immer wichtiger. Über die seit den 1990er Jahren errichteten GSM-Netze (inDeutschland beispielsweise D1, D2, E-Plus und so weiter) kam ursprünglich vor allem einVerfahren namens GPRS (General Packet Radio Service) zum Einsatz; es wurde mehrfach inDetails verbessert, bietet aber noch immer keine allzu hohen Datentransferraten – sie liegenbei 53,6 KBit/s im Download und 26,8 KBit/s im Upload. Neuere Verfahren sind zum Teilerheblich schneller:

� EDGE: Download 217,6 KBit/s, Upload 108,8 KBit/s

� UMTS: Download und Upload 384 KBit/s

� HSPA: Download (HSDPA) 7,2 Mbit/s, Upload (HSUPA) 1,4 Mbit/s

217

Die TCP/IP-Protokollfamilie 4.6

4.6 Die TCP/IP-Protokollfamilie

Nach einigen halbherzigen Versuchen, das OSI-Referenzmodell durch konkrete Protokolletatsächlich zu implementieren, bemerkte man letzten Endes, dass die bereits Jahre zuvorentwickelten Internetprotokolle hervorragend als flexible, skalierbare und universelleNetzwerkprotokollfamilie einsetzbar sind. Die rasante Ausbreitung des Internets und diefreie Verfügbarkeit sorgten dafür, dass diese Protokolle heute häufiger als jeder andereProtokollstapel eingesetzt werden.

Der Internet-Protokoll-stapel

Abbildung 4.3 zeigt eine konkrete Version des weiter oben bereits vorgestellten TCP/IP-Protokollstapels: Auf jeder Ebene sind einige der Protokolle zu erkennen, die dort arbei-ten können. Die meisten davon werden in den folgenden Abschnitten genau erläutert; dieNetzzugangsprotokolle der untersten Schicht wurden bereits weiter oben vorgestellt.Ganz unten habe ich zusätzlich einige Beispiele für die Hardware angegeben, auch wennsie kein Teil des eigentlichen TCP/IP-Stapels ist.

Zwischen der Hardware und dem Netzzugang auf der einen und den anwendungsorien-tierten Protokollen auf der anderen Seite befinden sich die Protokolle der Vermittlungs-und der Transportschicht. Insgesamt werden alle Protokolle, die auf den verschiedenenEbenen eines Schichtenmodells zusammenarbeiten, als Protokollstapel oder auch Proto-kollfamilie bezeichnet. Allerdings konzentriert sich der Schwerpunkt von TCP/IP auf diebeiden mittleren Ebenen des Internet-Protokollstapels. Sie können zum einen auf fast

Mobilfunkzugänge können entweder für Web-, E-Mail- und andere Netzwerksoftware aufdem Mobiltelefon selbst verwendet werden, oder aber das Handy dient – beispielsweiseüber Bluetooth – als Mobilfunkmodem für einen Laptop. Speziell für UMTS oder HSPA gibtes auch eigenständige Netzwerkzugangsgeräte, die per USB an den Rechner angeschlossenwerden und beinahe überall einen Internetzugang mit annehmbarer Geschwindigkeitbieten.

Um die Vorteile eines solchen Anschlusses wirklich zu nutzen, sollte aus Kostengründen einDatenflatrate-Vertrag mit dem Mobilfunkanbieter abgeschlossen werden. Beachten Sieaber, dass diese Zugänge sehr oft eine Transfervolumenbeschränkung enthalten. Nachdemdas Volumen für den entsprechenden Monat aufgebraucht ist, steht in der Regel nur nocheine langsamere Verbindung wie etwa EDGE zur Verfügung. Glücklicherweise verfügenpraktisch alle modernen Smartphones auch über WLAN, so dass zu Hause oder am Arbeits-platz meist keine Datenübertragung über Mobilfunk erforderlich ist.

Für den Urlaub oder ähnliche Gelegenheiten werden auch Prepaid-SIM-Karten oder USB-Sticks angeboten. Auf keinen Fall sollten Sie den Fehler machen, im Ausland ungeprüft dassogenannte Daten-Roaming Ihres Mobiltelefons zu aktivieren, da es geradezu irrationalteuer ist (zum Beispiel 1 Euro pro 50 Kilobyte übertragener Daten). Verschiedene Initiativender EU-Kommission, diese Tarife zu senken, zeigen erst allmählich Wirkung.

1119

Index

!, Operator 465!=, Operator 466!~, Perl-Operator 560#, Perl-Kommentar 504#define, Präprozessor-Direktive

482#endif, Präprozessor-Direktive

482#ifdef, Präprozessor-Direktive

482#include, C-Präprozessor-Direk-

tive 459#include, Präprozessor-Direktive

482$, Operator in RegExp 559$, Perl-Variable 499, 501$, PHP-Variable 925$/, Perl-Variable 840$_, Perl-Variable 502$0, Unix-Systemvariable 372%, Operator 465%, Perl-Variable 501&&, Operator

als Perl-Fallunterscheidung 507C 465Perl 507

&, Dereferenzierungs-Operator 475

&, Operator, C 465*, Operator 465

RegExp 557++, Operator 467+, Operator 465

JavaScript-String-Verkettung 997

RegExp 557String-Verkettung, Java 488

-, Operator 465, 478--, Operator 467., Perl-Operator 506.bashrc, Unix-Konfigurations-

datei 373/, Operator 465//, Java-Kommentar 489/etc/exports, NFS-Konfigurations-

datei 431

/etc/passwd, Unix-Konfigurations-datei 369

/etc/profile, Unix-Konfigurations-datei 373

/etc/shadow, Unix-Konfigurations-datei 370

<a>, HTML-Tag 880<address>, HTML-Tag 876<applet>, HTML-Tag 904<area>, HTML-Tag 887<article>, HTML5-Tag 874<aside>, HTML5-Tag 874<audio>, HTML5-Tag 903<b>, HTML-Tag 875<body>, HTML-Tag 868<br />, HTML-Tag 870<caption>, HTML-Tag 888<code>, HTML-Tag 876<col>, HTML-Tag 892<colgroup>, HTML-Tag 892<dl>, HTML-Tag 879<dt>, HTML-Tag 879<em>, HTML-Tag 875<embed>, HTML-Tag 902<figcaption>, HTML5-Tag 875<figure>, HTML5-Tag 874<footer>, HTML5-Tag 874<form>, HTML-Tag 894<h1> bis <h6>, HTML-Tags 873<head>, HTML-Tag 868<header>, HTML5-Tag 874<hgroup>, HTML5-Tag 874<html>, HTML-Tag 868<i>, HTML-Tag 875<img>, HTML-Tag 884<input>, HTML-Tag 896

neue Typen in HTML5 900<li>, HTML-Tag 876<map>, HTML-Tag 887<meta>, HTML-Tag 870, 905<nav>, HTML5-Tag 874<object>, HTML-Tag 904<ol>, HTML-Tag 877<option>, HTML-Tag 897<p>, HTML-Tag 872<pre>, HTML-Tag 873

<script>, HTML-Tag 994<section>, HTML5-Tag 874<select>, HTML-Tag 897<strike>, HTML-Tag 875<strong>, HTML-Tag 875<style>, HTML-Tag 910<sub>, HTML-Tag 875<sup>, HTML-Tag 875<table>, HTML-Tag 888<tbody>, HTML-Tag 891<td>, HTML-Tag 888<textarea>, HTML-Tag 898<tfoot>, HTML-Tag 891<th>, HTML-Tag 888<thead>, HTML-Tag 891<title>, HTML-Tag 868<tr>, HTML-Tag 888<tt>, HTML-Tag 875<u>, HTML-Tag 875<ul>, HTML-Tag 876<video>, HTML5-Tag 903=, Operator 466–467==, Operator 466=~, Operator 560=~, Perl-Operator 510? , Operator 468?, Operator

RegExp 557@, Perl-Variable 501@_, Perl 508@font-face (CSS3) 920^, Operator

C 466in RegExp 557, 559

__call(), magische PHP-Methode 947

__get(), magische PHP-Methode 946

__isset(), magische PHP-Methode 947

__set(), magische PHP-Methode 946

__toString(), magische PHP-Methode 937

``, Operatoren 565

Index

1120

|, Operator 466in RegExp 559

||, Operator 465als Perl-Fallunterscheidung 506Perl 506

~, Operator 4660900-Dialer 10651:1-Beziehung, RDBMS 6801:n-Beziehung, RDBMS 6801000BaseFL, Ethernet-Standard

2021000BaseTX, Ethernet-Standard

202100BaseT, Ethernet-Standard 20210Base2, Ethernet-Standard 19910Base5, Ethernet-Standard 20010BaseT, Ethernet-Standard 20216-Bit-Anwendung

unter Win32 3213D Now! (CPU-Befehlserweite-

rung) 1218.3 (MS-DOS-Dateinamens-

schema) 311

A

Abakus 35Abfrage, RDBMS

Änderungsabfrage 695Auswahlabfrage 682, 694Einfügeabfrage 694Löschabfrage 695

Abfrage, RDBMS, SQL 683Abgeleitete Klasse 493Absatz

HTML 872Absoluter Pfad 307, 310Abstract Factory, Entwurfs-

muster 663accept(), Perl-Funktion 577ACCEPT, iptables-Regel 1077Access Point (WLAN) 207, 1087Access, Datenbank 686ACID (Transaktionen) 705Action Mailer (Ruby on Rails) 973Action Pack (Ruby on Rails) 973Action Web Service (Ruby on

Rails) 973ActionListener 621

actionPerformed(), AWT-Methode 621

Active Directory 362, 1087Active Record (Ruby on Rails)

973Active Server Pages � ASP.NETActive Support (Ruby on Rails)

973ActivePerl 498ActiveX 1087ActiveX-Objekt 903Ada, Programmiersprache 35Adapter, Entwurfsmuster 663Addierer (Schaltung) 87Addiermaschine 35Addierwerk (Schaltung) 88Addition, Operator 465Administrator, Windows-Benutzer

350Administratorendokumentation

649Admin-Rechte 1063Adobe PostScript 165, 849Adressbus 117

Wortbreite 119Adressierung, Speicher 78ADSL 215

anschließen 216ADSL2(+) 215Advanced Data Guarding (RAID)

149AdWare 1087Adware 1067Aggregatfunktion, SQL 701Agile Softwareentwicklung 651AGP 138, 1087AI � Künstliche IntelligenzAIFF, Audio-Dateiformat 857AirDrop, Mac OS X 452AIX, Betriebssystem 285Ajax 1035

Antwort verarbeiten 1038Aspekte 1036Bibliotheken für 1053DOM-Einsatz für 1039JSON 1042, 1051komplexes Beispiel 1043mit jQuery 1055Objekt erzeugen 1036

Ajax (Forts.)onreadystatechange, Eigen-

schaft 1037open(), Methode 1037PHP-Skript (Serverantwort)

1040readyState, Eigenschaft 1037responseText, Eigenschaft 1039responseXML, Eigenschaft 1043,

1045send(), Methode 1038Serverantwort 1040XML 1042, 1044–1045XMLHttpRequest 1036

Akteur (UML) 656Aktivitätsdiagramm (UML) 659Akustikkoppler 174Al Chwarismi (arab. Mathemati-

ker) 33Algebra

boolesche 60, 92Definition 91lineare 91relationale 679zur Algorithmendarstellung 91

Algorithmus 33, 91, 541, 1087algebraische Darstellung 91anschaulich-sprachliche Darstel-

lung 92Berechenbarkeit 93binäre Suche 549BubbleSort 544Diagrammdarstellung 92entwickeln 541größter gemeinsamer Teiler (GGT)

542Komplexität 94lineare Suche 94, 548O-Notation der Komplexität 94Permutationen 95Pseudocode-Darstellung 92QuickSort 547Sortier- 544Such- 548

Alias (Mac-Verknüpfung) 445Alias (Unix-Shell) 407Alias, Apache-Direktive 746alias, Unix-Befehl 407Allen, Paul 286Allow, Apache-Direktive 746

Index

1121

AllowOverride, Apache-Direk-tive 747

ALOHANet 198Alpha, Prozessor 119, 122ALRM, Signal 299Altair 8800, früher Mikrocom-

puter 40ALU 116, 1087

FPU 116Amazon Web Services 989AMD 115Amiga 43Amigos, drei 654Amplitude, Audio 54Analog

Unterschied zu digital 52Analyse, Software-Engineering

643Lastenheft 644objektorientierte Analyse 644Pflichtenheft 645strukturierte Analyse 644

Analytical Engine 35Änderungsabfrage 695Android (Smartphone-OS) 44AND-Schaltung 85

Aufbau mit Transistoren 85mit einfachen Mitteln nach-

bauen 83AND-Verknüpfung 61Anführungszeichen

PHP 928verschiedene, Bedeutung in Perl

505Angewandte Informatik 26Animation

Doble Buffering 615Java, AWT 615

ANSI 1087C-Standard 479

ANSI-C 457ANSI-Zeichensatz 842Antivirenprogramm 1061Antville, Blog-Tool 988Anweisung

C 461Anweisungsblock 469Anwenderdokumentation 649Anwendung

DDN-Modell-Schicht 182

Anwendung (Forts.)OSI-Schicht 179

Anwendungsfall 650Anwendungsfalldiagramm (UML)

656Anwendungsserver 194

verteilte Anwendung 195Apache

Installation, Windows 743Xalan 819Xerces 825

Apache CouchDB 723–724Apache HTTP Server 737

Alias, Direktive 746Allow, Direktive 746AllowOverride, Direktive 747apachectl, Hilfsprogramm 743AuthBasicProvider, Direktive

748AuthDigestProvider, Direktive

748Authentifizierung 756AuthName, Direktive 748AuthType, Direktive 748AuthUserFile, Direktive 748Deny, Direktive 749Directory, Direktive 749DirectoryIndex, Direktive 749Direktive 745DocumentRoot, Direktive 750Grundlagen 738htpasswd, Hilfsprogramm 748IfModule, Direktive 750Installation 741Konfiguration 744Konfigurationsbeispiele 755Listen, Direktive 750LoadModule, Direktive 750Location, Direktive 751mod_alias, Modul 746,

752–753mod_auth_basic, Modul 748mod_auth_digest, Modul 748mod_authn_file, Modul 748mod_authz_host, Modul 746,

749, 752mod_dir, Modul 749mod_so, Modul 750Modul dynamisch laden 750Module 739

Apache HTTP Server (Forts.)NameVirtualHost, Direktive 751Neuerungen in 2.4 747, 749,

752–753Options, Direktive 751Order, Direktive 752Redirect, Apache-Direktive 752Require, Direktive 747, 752RequireAll, Direktive 753RequireAny, Direktive 753RequireNone, Direktive 753Satisfy, Direktive 753ScriptAlias, Direktive 753ServerAdmin, Direktive 753ServerName, Direktive 753ServerRoot, Direktive 754ServerSignature, Direktive 754ServerTokens, Direktive 754SSL-Konfiguration 757Startseite festlegen 749VirtualHost, Direktive 754virtueller Host 751, 754–755

apachectl, Apache-Hilfspro-gramm 743

API 1087Apple

iCloud 453iPad 45iPhone 44Mac OS X 437Macintosh 287QuickTime 439

Apple II 41, 286Apple Macintosh 43Apple-Menü

Mac OS X 440, 442wichtige Befehle 442

Applet, Java 483, 609, 632AppleTalk 272, 1087

Protokollstapel 274Vergleich zu TCP/IP 275

Application Gateway Firewall 1074

Application Server 194, 1087Java 599

apt, Linux-Paketmanager 401Aqua, Mac OS X-Oberfläche 285,

439Arabische Zahlen 35

Index

1122

Arbeitsspeicher 114des virtuellen Prozessors 100

Arbeitsverzeichnis 307anzeigen, Unix 387wechseln, Unix 387wechseln, Windows 336

Archivdatei 859bzip2 861GNU zip 861tar 401, 860ZIP 859

ARCNetNetzwerk 209

A-Record (DNS) 771ArgoUML, Tool 655Arithmetic-Logical Unit � ALUArithmetischer Operator

C 465SQL 701

Arithmetisch-logische Einheit � ALU

ARP 1087TCP/IP-Netzzugang 219

ARPA 171, 1087ARPANET 171

Anwendungen 172MilNet 173technische Grundidee 172ursprüngliche Aufgabe 172

Array 476, 1088Anzahl der Elemente, Perl 545aus String, Perl 503C 476Deklaration, C 476mehrdimensionales, PHP 929Perl 501PHP 926zur C-String-Darstellung 477zusammenfassen, Perl 503

Artificial Intelligence � Künst-liche Intelligenz

AS, SQL-Klausel 701ASCII 1088

Zeichensatz 55ASCII-Art 874ASCII-Code 841

Erweiterungen 842IBM-Erweiterung 842Steuerzeichen 841Tabelle 841

ASCII-Modus 1088ASP.NET 986, 1088Assembler 46, 1088

Mnemonics 46Nicht-x86 124praktische Anwendung 46x86-Beispiele 124

Asymmetrische Verschlüsselung 1080

AT&T 49, 284Unix System V 285

AT&T Bell Laboratories 49Atari 43, 286Atari 800XL 43, 286Atari ST 43AT-Befehlssatz 1088Athlon, Prozessor 115, 121ATM (Asynchronous Transfer

Mode) 208, 1088Atom, Newsfeed-Format 988Atomar, Information in RDBMS

683Attachment (E-Mail) 264attrib, Windows-Befehl 337Attribut

HTML 867statisches (PHP) 942XML 793, 797

Attribut (Windows-Datei) 310Audio, zeit- und wertdiskret 54Audio-CD 151

über Soundkarte abspielen 166Audio-Dateiformat 857

AIFF 857MP3 858MP4 858OGG Vorbis 858WAV 857

Audiodaten 54Sampling 54Sampling-Rate 54Sampling-Tiefe 54Tonkanal 55

Auflicht-Scanner 158Auflösung

Bild 54Digitalkamera 159Grafikkarte 160

AufzählungHTML 876

AufzählungszeichenHTML 877

Ausbildung 27Fachinformatiker 28Informatikkaufmann 29IT-Systemelektroniker 29IT-Systemkaufmann 29Prüfung 30Studienfächer 31

Ausdruck 1088Bedingung 469C 464Perl 504

Ausgabein Datei, C 480Konsole, C 479Perl 499

Ausgabeeinheit 111Ausgabegerät 142, 160

Drucker 163Grafikkarte 160Monitor 161

Ausgabesteuerungdurch das Betriebssystem 281

Ausgabeumleitungin Unix-Shells 381Windows 335

Auslagerungsdatei 303Ausnahme

auslösen 497FileNotFoundException, Java

497IOException, Java 497Java 487, 496Java, IOException 487

Aussage 58, 1088falsche 58mathematische 58wahre 58

Aussageformen 59Aussagenlogik 57Auswahlabfrage 682, 694AuthBasicProvider, Apache-Direk-

tive 748AuthDigestProvider, Apache-

Direktive 748Authentifizierung (Apache) 756Authentifizierung (MySQL) 707AuthName, Apache-Direktive

748

Index

1123

AuthType, Apache-Direktive 748AuthUserFile, Apache-Direktive

748AUTO_INCREMENT, SQL-Feld-

option 699Autoflush-Modus 576Autoloader, PHP 948Automatentheorie 26, 90

Registermaschine 100Turing-Maschine 97

Automatisch startenProgramm unter Unix 399System V Init 399

Automatische Variable 463Autonomes System 1088Autonomes System (AS), Routing

241Average Case (Komplexität) 94AVI, Video-Dateiformat 858awk 497, 555AWT 1088AWT, Java 609

Ereignisbehandlung 609

B

Babbage, Charles 35Back Orifice, Backdoor 1064Backdoor 1064Backend 195background-attachment, CSS-

Angabe 916background-color, CSS-Angabe

915background-image, CSS-Angabe

916background-repeat, CSS-Angabe

916Backlog, Scrum 653Backtick, Operator 565Backup 1062Banana Ware 668Band, der Turing-Maschine 97Base, OpenOffice.org-Datenbank

686bash

.bashrc, Konfigurationsdatei 373

/etc/profile, Unix-Konfigurations-datei 373

bash (Forts.)alias-Befehl 407

bash (Bourne Again Shell) 372Basic Input/Output System

� BIOSBasic Service Set (WLAN) 206BASIC, Programmiersprache 40,

48Basis

bei Stellenwertsystemen 73Bastion-Host 1074Batch Processing � Stapelver-

arbeitungBatch-Datei, Windows 337Baum, Datenstruktur 553

Binärbaum 553Baum-Topologie, Netzwerk 188BCD � Binary Coded DecimalBEA WebLogic-Server 599Beck, Kent 651Bedingter Sprung 123Befehl

Dateiverwaltung, Unix 384des virtuellen Prozessors 102Systemverwaltung, Unix 392Textmanipulation, Unix 388Unix 383Windows-Konsole 336

Befehlstabelle 116der CPU 116

Befehlszeiger (CPU-Register) 116Behavioral Pattern � Verhaltens-

musterBell Laboratories 284belongs_to, Rails-Relation 977Bemer, Robert 841Benutzer

Administrator, Windows 350an- und abmelden, Windows

329entfernen, Linux 395Gruppe hinzufügen, Unix 395hinzufügen, Linux 394Home-Verzeichnis 306, 310Passwort ändern, Unix 395root (Unix) 300, 369Verwaltung, Mac OS X 448Verwaltung, Windows 350Zugriffsrechte 308

Benutzermodus 292, 299

Benutzeroberfläche 282grafische 282, 287, 297Konsole 282, 297

Benutzerrechte, ändern, Unix 387

Berechenbarkeit 26, 1088Halteproblem 93von Algorithmen 93

Berkeley Socket API 571, 1088Berkeley, Universität 284, 410,

571Unix-Version 284

Berners-Lee, Tim 174Beschaffungsmanagement 642Beschreibbare DVD 155Besitzer, wechseln (Datei, Unix)

388Best Case (Komplexität) 94Betriebssystem

Aufbau 290Aufgaben 281Ausgabesteuerung 281Benutzermodus 292Benutzeroberfläche 282Bibliothek 296booten 292BSD-Unix 284CP/M 286Darwin 285, 439Dateiverwaltung 282Dialogverarbeitung 283Eingabesteuerung 281FreeBSD 285Gerätetreiber 294Geschichte 282herunterfahren, Unix 397HP UX 285IBM AIX 285iOS 438ITS (Incompatible Timesharing

System) 283Kernel 291Kernelmodus 292Konsole 297Linux 285, 288Mac OS X 285, 437Minix 288MS-DOS 286MULTICS 284Multitasking 293, 298

Index

1124

Betriebssystem (Forts.)Neustart (Unix) 397OS/2 287Prozessmanagement 281Shell 297Speichermanagement 281Stapelverarbeitung 283Sun Solaris 285Systemaufruf 125, 293, 295Systemprogramm 294Task Scheduler 292Thread 291, 302Timesharing 283Unicode-Unterstützung 845Unix 49, 284Unix System V 285Verwaltungsbefehle, Unix 392Virtualisierung 311VMS 287Win32 API 296Windows 319Windows 2000 288, 320Windows 7 288, 320Windows 95 288, 320Windows 98 288, 320Windows Me 288, 320Windows NT 287, 320Windows Server 320Windows Vista 288, 320Windows XP 288, 320Windows, Versionsübersicht 320Zeichensatzeinstellung 845

Bewegungsdaten 676Bezeichner 1088

C 462in PHP 925

BGP 1088Routing-Protokoll 243

Bibliothek des Betriebssystems 296

Big-Endian-Architektur 1088Big-Endian-Plattform 851BIGINT, SQL-Datentyp 697Bild in HTML einbetten 884Bilddateiformat 853

BMP 856GIF 855JPEG 855Photoshop 854PICT 857

Bilddateiformat (Forts.)PNG 856PSD 854TIFF 854

BilddatenAuflösung 54digitale 53Farbkanal 54Farbtiefe 54

Bilddatenbank 677Bildwiederholrate (Monitor) 162bin, Unix-Verzeichnis 306Binärbaum, Datenstruktur 553

C 553Binärdaten 52, 72Binäre Suche 549, 1088

Java 549Binärmodus 1088Binary Coded Decimal 82, 1088BINARY, SQL-Feldoption 699bind(), Perl-Funktion 576BIND, DNS-Serversoftware 254BIND-Nameserver 767

A-Record 771CNAME-Record 772Installation 768Konfiguration 768MX-Record 773NS-Record 772PTR-Record 772Reverse-Lookup-Zone 769SOA-Record 771Zonendaten-Datei 770Zonendefinition 769

Bio-Computer 45Bioinformatik 32BIOS 114, 127, 1088

Aufgaben 128Betriebssystem starten 129Bootreihenfolge 130CMOS löschen 130CMOS-RAM 129eingebaute Routinen 129POST 129POST beschleunigen 130Power Management einstellen

131Setup 129Update 132

BIOS-Setup 129Einstellmöglichkeiten 130Einstellungen zurücksetzen 131

BIOS-Update 132Anleitung 132Motivation 132

Bit 78Bit-Komplement, Operator 466Bitmap-Grafik 53Bit-Operator

Vergleich mit logischen Opera-toren 62

Bit-Operatoren 465Bitübertragung, OSI-Schicht 177Bit-Verschiebung

links 466rechts 466

Bitweises exklusives Oder, Opera-tor 466

Bitweises Oder, Operator 466Bitweises Und, Operator 465BLOB, SQL-Datentyp 698Block, Anweisungen 469Blockgerät (Block Device) 294Blocksatz

in HTML 873Blog � WeblogsBlue Book (Mixed-Mode-CD)

152, 1089Bluetooth 142Blu-ray Disc 156BMP, Bilddateiformat 856body, HTML 868Booch, Grady 654Boole, George 60boolean, Java-Datentyp 488Boolesche Algebra 60, 92, 1089

Java-Datentyp 488Booten 292

BSD-Startskript 401Mac OS X-Startvolume 447System V Init 399

Bootreihenfolge, einstellen 130Bootsektor 146Bootsektor-Virus 1059border, CSS-Angabe 915border-image (CSS3) 920BorderLayout 620border-radius (CSS3) 919Bourne Again Shell (bash) 372

Index

1125

Bourne-Shell 372box-shadow (CSS3) 921Boyce-Codd-Normalform, RDBMS

684Branch Prediction � Sprung-

vorhersage (Prozessor)break

C-Anweisung 471break, Schleife abbrechen 548Bridge 201, 1089Bridge, Entwurfsmuster 663Broadcast, IP-Protokoll 222Brute-Force-Attacke 370, 1089BSD 1089BSD-Startskript 401BSD-Unix 284

FreeBSD 285BubbleSort, Algorithmus 544

Java 545Buffer im Emacs-Editor 418BufferedReader

Java-Klasse 487, 496BufferedReader, Java-Klasse, read-

Line(), Methode 487Builder, Entwurfsmuster 663Bundestrojaner � Online-Durch-

suchungBuntes Buch (CD-Standards) 151bunzip2, Unix-Befehl 862BURN-Proof-Technologie 153Bus 133

Bluetooth 142Definition 115der CPU 117drahtloser 141EIDE 138FireWire 141Funk-Schnittstelle 142Hot-Plugging 141Infrarot 142IrDA 142Kartensteckplatz 137Laufwerksanschluss 138Light Peak 141paralleler 141PS/2 141RS-232 141SCSI 139serieller 141Thunderbolt 141

Bus (Forts.)USB 140

Bus Mastering 137, 1089Bus-Topologie, Netzwerk 188Button, AWT-Klasse 619Byron, Ada � Lovelace, AdaByte 79byte, Java-Datentyp 488bzip2, Komprimierung 402bzip2, Unix-Befehl 862

C

C#, Programmiersprache 51, 1089

C, Programmiersprache 49, 51, 284, 456, 1089#define, Präprozessor-Direktive

482#endif, Präprozessor-Direktive

482#ifdef, Präprozessor-Direktive

482#include, Präprozessor-Direk-

tive 459, 482&, Dereferenzierungs-Operator

475-, Operator 478ANSI-C 457ANSI-Standard 479Anweisung 459, 461Anweisungsblock 469arithmetischer Operator 465Array 476Ausdrücke 464Bezeichner 462Binärbaum 553Bit-Operatoren 465break-Anweisung 471char 463Compiler 457Datentypen 462Datentypkonvertierung 464Datum und Uhrzeit 481difftime()-Funktion 482double 463else 470Escape-Sequenz 460exec()-Funktion 564–565EXIT_SUCCESS, Konstante 460

C, Programmiersprache (Forts.)Exponentialschreibweise 464Fallunterscheidungen 469fgets()-Funktion 480Fließkomma-Datentypen 463Fließkomma-Literal 464float 463Flusskontrolle 466fopen()-Funktion 480for()-Schleife 473fork()-Funktion 563fprintf()-Funktion 480fscanf()-Funktion 480Funktionen 474Funktionsaufruf 461, 474Funktionsparameter 474Funktionsrückgabewert 460ganzzahlige Datentypen 463Geschichte 457getchar() 480gets()-Funktion 460, 480globale Variable 463Header-Datei 479Hexadezimalzahl 464int 463int, Funktionsdatentyp 459Integer-Literal 464Kommandozeilenparameter 475Kommentar 461kompilieren 458Kontrollstrukturen 461, 469Liste 550Literal 464localtime()-Funktion 481logische Operatoren 465lokale Variable 463long 463main()-Funktion 459, 474malloc()-Funktion 551mem.h 551NULL 481Oktalzahl 464Operator 465Präprozessor 482printf()-Funktion 460, 479puts()-Funktion 460, 479return-Anweisung 460, 474scanf()-Funktion 471, 479Schleife 472short 463

Index

1126

C, Programmiersprache (Forts.)Speicher reservieren 551Standardbibliothek 296, 479static-Deklaration 463statische Variable 463stddef.h 463stdio.h 459, 479stdlib.h 459strcat(), Funktion 481strcmp()-Funktion 481strcpy()-Funktion 481strftime()-Funktion 481string.h 481String-Literal 464struct 478Strukturen 478switch/case 471Syntax 461sys/types.h 564time()-Funktion 481time.h 481time_t, Datentyp 481Variable 462Variable, Gültigkeitsbereich 463Variablendeklaration 459,

461–462Vergleichsoperatoren 466void, Funktionsdatentyp 474Vorzeichen in Datentypen 463wchar_t 463Wertzuweisung 461while()-Schleife 472Whitespace, Umgang mit 462Zeichen-Literal 464Zeiger 475

C64 43, 286Cache 117

bei Festplatten 150Level 1 117Level 2 117

Call by Reference 476PHP 934

Call by Value 476Callback-Methode 569, 1089Canvas, AWT-Klasse 610Capistrano, Rails-Deployment-

Tool 985CAPTCHA 1066, 1089Carbon 1089Carbon, Mac OS X-API 439

Carry-in, Logikschaltung 87Carry-out, Logikschaltung 87Cäsar-Code 1079Cascading Style Sheets � CSScase-Befehl

in Shell-Skripten 405CASE-Tools 655cat, Unix-Befehl 389catch(), Java 487CAV � Konstante Winkel-

geschwindigkeitCCD

bei der Digitalkamera 159beim Scanner 158

C-Compiler 457GCC 457

CDbeschreibbare 152Brennsoftware 153BURN-Proof-Technologie 153Datenformate 153Disc-at-once 153Hybrid-CD 154ISO-9660-Format 154Joliet-Format 154Lead-in-Area 153Lead-out-Area 153Multisession 153Track-at-once 153

cd, Unix-Befehl 387cd, Windows-Befehl 336CD-Brenn-Software 153CDE, Window-Manager 423CDi 152CD-R 152CD-ROM 151

Geschwindigkeit 152CD-RW 152CD-Standard 151

Blue Book 152Green Book 152Orange Book 152Red Book 151White Book 152Yellow Book 152

CD-Text 152Central Processing Unit

� ProzessorCentronics-Anschluss 141

CGI 986, 1089Sicherheitsprobleme 1072

Chain (iptables) 1076Chain of Responsibility, Entwurfs-

muster 664char, C-Datentyp 463CHAR, SQL-Datentyp 698Character Devices 294charAt(), Java-Methode 489Chatbot Eliza 96chgrp, Unix-Befehl 388Child-Prozess 299, 1089Chip 37Chipsatz 114chmod, Unix-Befehl 387chomp, Perl-Funktion 500Chomsky, Noam 51chown, Unix-Befehl 388chroot-Umgebung 1074CHS (Festplattenadressierung)

145CIDR, IP-Adressierung 224CIDR-Adressierung 1089CIFS-Protokoll, Microsoft-Netz-

werk 277Circuit Switching 170CISC-Prozessor 121

Beispiele 121class, Java-Schlüsselwort 486CLASSPATH, Umgebungsvaria-

ble 484clear, CSS-Angabe 917Clear-CMOS-Jumper 130Client

bei Entwurfsmustern 663Netzwerk 190

Clojure, Programmiersprache 51close, Perl-Anweisung 509closedir, Perl-Anweisung 510Cloud Computing 989, 1089

Apple iCloud 453für Privatanwender 990

Cluster (Dateisystem) 304CLV � Konstante lineare

GeschwindigkeitCmd.exe

WinNT-Shell 334Cmdet, PowerShell 338CMOS-RAM 129

löschen 130

Index

1127

CMS � Content-ManagementCMYK-Farbe 54cn, LDAP-Attribut 776CNAME-Record (DNS) 772Cobol, Programmiersprache 47Cocoa 1090Cocoa, Mac OS X-API 439Code-Review 648Color, AWT-Klasse 612color, CSS-Angabe 915column-count (CSS3) 921column-width (CSS3) 921COM, Microsoft-Komponenten-

modell 599Command, Entwurfsmuster 664COMMAND.COM, MS-DOS-Shell

334Commit (Transaktionen) 685COMMIT, SQL-Anweisung 705Commodore 43, 286Commodore Amiga 43Common Gateway Interface

� CGICompact Disc 151compareTo(), Java-Methode 489Compiler 47, 124

Java 486Composite, Entwurfsmuster 663Computer

Definition 33Computer Science � InformatikComputersystem

schematischer Aufbau 109Computervirus � Virusconnect(), Perl-Funktion 575Connection, JDBC-Klasse 721console, interaktive Rails-Kon-

sole 978Constant Angular Velocity � Kon-

stante WinkelgeschwindigkeitConstant Linear Velocity � Kon-

stante lineare GeschwindigkeitContentHandler, SAX-Interface

828Content-Management 986

Drupal 987Joomla! 987papaya CMS 987TYPO3 987

ControllerRuby on Rails 980

Convention over Configuration (Rails-Prinzip) 974

Cookie 1090in PHP 952

Coprozessor � Koprozessorcopy, Windows-Befehl 337CORBA, Komponentenmodell

599CouchDB 723

Futon, Administrationsoberfläche 724

count(), PHP-Funktion 928COUNT, SQL-Funktion 702cp, Unix-Befehl 385CP/M, Betriebssystem 286C-Programmiersprache, char,

Datentyp 459CPU 114

alte Bedeutung 115Dualcore 114

CPU � ProzessorCR, Mac-Zeilenumbruch 839crack (Passwort-Knackpro-

gramm) 369Crackerangriff 1072Crackertools 1075CREATE DATABASE, SQL-Befehl

695CREATE TABLE, SQL-Befehl 695CREATE USER, MySQL-Anwei-

sung 708create, Rails-Methode 978create_table, Rails-Methode 976CreateProcess(), Windows-System-

aufruf 300Creational Patterns � Erzeugungs-

musterCreator ID, HFS 448CRLF, Windows-Zeilenumbruch

839Cronjob 408Crosslink-Ethernet-Kabel 201Cross-Site-Scripting 1072CRT � Röhrenmonitorcsh (C-Shell) 372C-Shell 372CSMA/CA 1090

CSMA/CA, Netzzugangsverfah-ren 206

CSMA/CD 1090CSMA/CD, Netzzugangsver-

fahren 198CSS 908, 1090

<style>, HTML-Tag 910Absatzformatierung 914Abstand vom linken Rand 916Abstand vom oberen Rand 916Anzeigeart 914Aufgabe 908Ausrichtung 914Außenrand 914background-attachment 916background-color 915background-image 916background-repeat 916Bild 915border 915clear 917color 915display 914Einzug 914Element (Tag) formatieren 909externe Datei 910Farbangabe 912Farbe 915feste Werte 911fett 913float 917font-family 913font-size 913font-style 913font-weight 913Format dynamisch ändern, DOM

1031für XML-Dokumente 819Hintergrund befestigen 916Hintergrund kacheln 916Hintergrundbild 916Hintergrundfarbe 915Innenabstand 914Klasse 909kursiv 913Laufweite 913Layer 916Layer, Beispiele 917left 916letter-spacing 913

Index

1128

CSS (Forts.)line-height 914Linie 914margin 914numerische Werte 911padding 914position 916Positionsart 916Pseudoformat 909Rahmen 914–915Schriftart 913Schriftgröße 913Selektor 909Stapelreihenfolge 917Struktur 909style, HTML-Attribut 911text-align 914text-decoration 913Textfarbe 915Textformatierung 913text-indent 914top 916unabhängiger Stil 909unterstrichen 913vertical-align 914vertikale Ausrichtung 914Vorteile 908Wertangaben 911Zeilenhöhe 914z-index 917

CSS3 919border-image 920border-radius 919box-shadow 921browserspezifische Eigenschaf-

ten 921column-count 921column-width 921Neue Selektoren 921opacity 921Web Fonts 920

C-Standardbibliothek 296, 479, 1089

CUPS 1090CUPS, Unix-Drucksystem 431

Scheduler 432starten 432

Cutler, David 287CygWin 457

D

Daemon 396, 1090DARPA 171Darstellung, OSI-Schicht 179Darwin, Betriebssystem 285, 439Data Fork, HFS 448Database Management System

� DMSdatabase.yml, Rails-Konfigura-

tionsdatei 975Datagramm 1090Datagramm-Socket 572Date, JavaScript-Klasse 1008DATE, SQL-Datentyp 697date, Unix-Befehl 393

Formatierung 394Datei 282

Attribute ändern 337Ausgabe in, C 480bearbeiten, Perl 509Besitzer wechseln, Unix 388Eingabe aus, C 480Gruppe wechseln, Unix 388kopieren unter Windows 331,

337kopieren, Mac OS X 444kopieren, Unix 385löschen unter Unix 386löschen unter Windows 337öffnen, C 480schließen, C 480String lesen aus, C 480umbenennen unter Windows

337umbenennen, Mac OS X 445umbenennen, Unix 385verarbeiten, Java 496verschieben unter Windows 331,

337verschieben, Mac OS X 444verschieben, Unix 385Verwaltung 304Zugriffsrechte ändern 387

Dateiattribut 310Windows, ändern 337

Dateierweiterung 311Anzeige einschalten 311

Dateiformat 837AIFF 857

Dateiformat (Forts.)Audio 857AVI 858Bild 853binäres 850BMP 856GIF 855JPEG 855MP3 858MP4 858MPEG 859OGG Vorbis 858PICT 857PNG 856PostScript 849QuickTime 858Text 837textbasiertes 847TIFF 854Video 858WAV 857

DateihandlePerl 509

DateinameEndung 385Endung sichtbar machen 311Erweiterung 311, 385Groß- und Kleinschreibung 307MS-DOS 311Unix-Platzhalter 384unter Unix 307, 384unter Windows 310

Dateiserver 191Dateisystem 304

Benutzerrechte 308CD 153erzeugen, Unix 393ext3 393FAT12 323FAT16 323FAT32 324Fehlerprüfung (Unix) 393HFS 448HFS+ 448inode 307Journaling-Funktion 393Laufwerksbuchstaben 309Link 308Linux 305Mac OS X 448

Index

1129

Dateisystem (Forts.)mounten 308mounten, Unix 392NTFS 324reiserfs 393Unix 305Unix-Pfadangabe 306Unix-Verzeichnisbaum 306virtuelles 305Windows 309, 323Windows-Pfadangabe 309Zuordnungseinheit 304

Dateiverwaltung 282, 304unter Unix 384

Dateivirus 1060Daten

Bewegungsdaten 676Ordnungsdaten 676Rechendaten 676Stammdaten 675

Datenanalyse 644Datenbank 675

1:1-Beziehung 6801:n-Beziehung 680Abfrage, objektorientierte 689Access 686atomare Information 683Auswahlabfrage 682Bild- 677Boyce-Codd-Normalform 684CouchDB 723Datenarten 675Datenfeld 678Datensatz 678dokumentenbasierte 723Einzeltabellen- 676Einzeltabellen-, Definition 678Einzeltabellen-, Grenzen 679Entity 678erzeugen, SQL 695FileMaker 686Filterung 678freier Server 686Fremdschlüssel 680Funktionen 678Grenzen der RDBMS 687IBM DB2 686Index 680Join-Abhängigkeit 685kommerzieller Server 686

Datenbank (Forts.)Konsistenz 679löschen, SQL 696m:n-Beziehung 681Microsoft SQL Server 686Multimedia- 677MySQL 689Normalform 683Normalisierung 683NoSQL 677, 724objektorientierte 677, 686ODBC 720ODL 688OpenOffice.org Base 686OQL 689Oracle 686PostgreSQL 686Primärschlüssel 680Programmierung 720Relation 680relationale 676, 679Schlüssel 680sortieren 678SQL 683, 694suchen in 678Tabelle erzeugen, SQL 695Tabelle löschen, SQL 696Transaktion 685, 705Typen 676Volltextdatenbank 677XML 677

Datenbus 117Wortbreite 118

Datenfeld 678Datenfernübertragung � DFÜDatenformat 837

Text 837Datenkollision 198Datenkomprimierung 852Datenpaket 170

Frame 197Datensatz 678Datensicherung 1062Datenstruktur 541, 550

Baum 553Queue 550Stack 550

Datenstrukturen 91Datenträger

magnetischer 143

Datenträger (Forts.)magneto-optischer 143optischer 143

Datenträgeraustausch 176Datenträgerverwaltung, Win-

dows 352Datentyp

boolean, Java 488ganzzahliger, C 463in der PowerShell 343in Java 488testen, PHP 936Umwandlung, C 464Variable, C 462

DatenübertragungGeschwindigkeitsmessung 135Paketvermittlung 170parallele 133Schaltkreisvermittlung 170serielle 133

Datenverarbeitungelektrische 25elektronische 25manuelle 25mechanische 25

DATETIME, SQL-Datentyp 697Datum und Uhrzeit

C 481date-Befehl, Unix 393Differenz berechnen 482EPOCH 296ermitteln, C 481formatieren (Unix) 394formatieren, C 481JavaScript 1008SQL 697

DB2, RDBMS 686DBMS (Database Management

System) 675dc-Knoten (LDAP) 774DDN-Schichtenmodell 179

Anwendungsschicht 182Host-zu-Host-Transportschicht

181Internetschicht 181Netzzugangsschicht 180

DDR-RAM 126de Icaza, Miguel 424De Marco, Tom 644Deadlock 301, 1090

Index

1130

Debian GNU/Linux 366DEC � Digital Equipment

Corporation (DEC)DECIMAL, SQL-Datentyp 697DE-CIX 242Decorator, Entwurfsmuster 663Default Gateway 1090DEFAULT, SQL-Feldoption 699default, switch/case-Vorgabe-

wert 472defined, Perl 507Defragmentierung 1090Defragmentierung (Festplatten)

146Deklaration 1090Deklarative Programmiersprache

51del, Windows-Befehl 337DELETE, SQL-Abfrage 704Demilitarisierte Zone � DMZDe-Morgan-Theorem 64, 1090Denial of Service 1071, 1090

Netzwerkangriff 359Deny, Apache-Direktive 749Dependency Injection, Entwurfs-

muster 966Deployment 1090

Ruby on Rails 985Dereferenzierung

Perl 504Design Pattern

Dependency Injection 966Lazy Initialization 966

Design Pattern � EntwurfsmusterDesktop-PC 111dev, Unix-Verzeichnis 306Dezimalsystem 73

in dual umrechnen 75in hexadezimal umrechnen 76

DFÜ 210Akustikkoppler 174Mailbox 174Onlinedienst 174PPP-Protokoll 210Praxis 210über ISDN 214

DHCP 244, 1090DHCP-Server, Windows Server

2003 362DHTML 1025, 1090

DHTML-Layer manipulieren, DOM 1032

Diagrammtypen (UML) 654Dialer 1065Dialogverarbeitung 283Diascanner 159Dienst, Windows 352diff, Unix-Befehl 391Differential Engine 35Differenzmenge 70difftime(), C-Funktion 482Digital Equipment Corporation

(DEC) 39Digital Versatile Disc � DVDDigital, Unterschied zu analog 52Digitale Signatur 1081Digitalisierung 53Digitalkamera 159

Auflösung 159Dijkstra, Edsger W. 243, 637DIMM-Modul (RAM) 126DIN 1090dir, Windows-Befehl 336DirectoryIndex, Apache-Direk-

tive 749Disc-at-once 153, 1090Disjunktion, logische 62Diskettenlaufwerk 150Diskrete Menge 53display, CSS-Angabe 914Division, Operator 465DMA-Kanal 136, 1091DMA-Kanal, Direct Memory

Access 136DMZ 1074dn, LDAP-Attribut 776DNA-Computer 45DNS 1091

BIND, Serversoftware 254Master- und Slave-Nameserver

255Subdomain 254Top-Level-Domain 254Zone 254

DNS (Domain Name System) 252DNS-Server, Windows Server

2003 362do/while()-Schleife 473DocBook 792

DockDock-Menü, Mac OS X 443Mac OS X 440, 443

DOCTYPE-Angabe, XML 804Document Object Model � DOMDocument Type Definition

� DTDdocument.forms, JavaScript 1001document.images, JavaScript

1011document.write(), JavaScript-

Methode 995DocumentRoot, Apache-Direk-

tive 750dojo, Ajax-Bibliothek 1053Dokumentation 648

Administratorendokumentation 649

Anwenderdokumentation 649Entwicklerdokumentation 649

DokumentstrukturHTML 868

DOM 834, 1091Ajax-Einsatz von 1039Baumstruktur anzeigen, Java-

Script-Anwendung 1028CSS-Format ändern 1031Document-Objekt 835Dokumenthierarchie ändern

1033DOMParser 834für XML 834getChildNodes(), Methode 835in JavaScript 1025jQuery-Selektor 1053Kindknoten 835Klasse importieren 834Knoteneigenschaften 1026Knotentypen 835Parser 834praktische Anwendung, Java-

Script 1030Textknoten 1026

Domain Name System (DNS)BIND-Nameserver 767Round-Robin-Verfahren 772

Domain Name System � DNSDomainname

Schema 253DOMParser, Java-Klasse 834

Index

1131

Don’t Repeat Yourself (Rails-Prinzip) 974

Doppelte AnführungszeichenPerl 505

DOS 286DoS � Denial of ServiceDouble Buffering, Animati-

onstechnik 615double, C-Datentyp 463DOUBLE, SQL-Datentyp 697DoubleWord (DWord) 1091DoubleWord, 32 Bit 79Download

HTML-Hyperlink 882Drag & Drop 294Drahtlose Schnittstelle 141Drahtloses Netzwerk 204

Arten 204Gründe für den Einsatz 204Wireless LAN 205

Drain, Stromausgang des Transis-tors 84

DRAM 125drawLine(), AWT-Methode 612drawOval(), AWT-Methode 612drawPolygon(), AWT-Methode

612drawRect(), AWT-Methode 612drawString, AWT-Methode 614Drectory, Apache-Direktive 749Drei Amigos 654Dreisatz 70Drei-Wege-Handshake, TCP 249DROP DATABASE, SQL-Befehl

696DROP TABLE, SQL-Befehl 696DROP USER, MySQL-Anweisung

712DROP, iptables-Regel 1077Drucker 163

GDI-Drucker 165im Netzwerk freigeben, Win-

dows 361Kugelkopfdrucker 163Laserdrucker 164LED-Drucker 165Matrixdrucker 163Nadeldrucker 163Schriftarten 165Thermosublimationsdrucker 165

Drucker (Forts.)Thermotransferdrucker 165Tintenstrahldrucker 164Treiber 165Typenraddrucker 163

Druckserver 192Drupal, CMS 987DSL 214, 1091

ADSL 215ADSL2(+) 215anschließen 216einrichten, Mac OS X 450SDSL 215über Fernsehkabel 215über Sattelit 215

DSSS, WLAN-Technik 205DTD 804, 1091

Alternativen angeben 807Attributdeklaration 811Attributnotwendigkeit 813Attributtypen 811definieren 805Elementdeklaration 807Entity deklarieren 814Entitys aus externen Dateien

814externe Entity-Deklaration 814Häufigkeitsangabe 808Klammern 807

du, Unix-Befehl 393Dualcore-Prozessor 114Dualsystem 52, 73

in dezimal umrechnen 76in hexadezimal umrechnen 77in oktal umrechnen 77

Dualzahlemit Vorzeichen speichern 80

Durchlicht-Scanner 158DVD 154

beschreibbare 155DVD+R 156DVD+RW 156DVD-R 155DVD-RAM 156DVD-ROM 155

Dateiformat 155Geschwindigkeit 155

DVD-RW 155DVI, Dateiformat 849dvips, Dienstprogramm 849

DWord � DoubleWord, 32 BitDynamic HTML � DHTMLDynamic RAM � DRAM

E

each(), PHP-Funktion 928echo, Unix-Befehl 388Echte Obermenge 68Echte Teilmenge 68ECMA 1091EDGE 216EDO-RAM 126EDV � Elektronische Datenver-

arbeitungEEPROM 128Effizienz der CPU 120EIDE 138, 1091

anschließen 139im Vergleich zu SCSI 139

Ein-/Ausgabe 282C 479Datei, Java 496Datei, Perl 509Dialogverarbeitung 283Fehler 487Java 486Lochkarte 282Perl 499Stapelverarbeitung 283Terminal 283Timesharing 283

Einfache AnführungszeichenPerl 505

Einfügeabfrage 694Eingabe

aus Datei, C 480Konsole, C 479Perl 499String, C 480Zeichen, C 480

Eingabeaufforderung 1091Unix 371Windows 336

Eingabeaufforderung � KonsoleEingabeeinheit 111Eingabegerät 142, 156

Digitalkamera 159Maus 157Scanner 158

Index

1132

Eingabegerät (Forts.)Tastatur 157

Eingabesteuerungdurch das Betriebssystem 281

Eingabeumleitungin Unix-Shells 381Windows 335

EingabevervollständigungUnix 375Windows-Eingabeaufforderung

334Einsteckkarte 137

einbauen 137Einwegverschlüsselung 1081Einzeltabellendatenbank 676

Definition 678Filterung 678Funktionen 678Grenzen 679sortieren 678suchen in 678

EJB � Enterprise Java BeansElektrische Datenverarbeitung 25Elektrisches Gerät 36Elektrizität 36Elektromechanik 36Elektronenröhre 36–37Elektronik 36Elektronische Datenverarbeitung

25Elektronisches Gerät 36Element

einer Menge 67XML 795

Eliza, Chatbot 96else, C 470elsif, Perl 507Elternklasse 493Emacs, Texteditor 417

Befehlseingabe 417Befehlsschreibweise 417Buffer 418erweiterte Funktionen 419Fenster wechseln 418Modi 418Navigation 419speichern 419Suchfunktionen 419Text ersetzen 419Text löschen 419

Emacs, Texteditor (Forts.)Text markieren 419

E-MailAttachment 264Entwicklung 173Hoax 1070HTML-Hyperlink auf 883IMAP-Protokoll 267Kettenmail 1070MIME-Format 263Multipart-Nachricht 264POP3-Protokoll 266RFC-822-Nachricht 263SMTP-Protokoll 262Spam 1068Verschlüsselung 1081

E-Mail-Protokolle 261E-Mail-Server 192Embedded System 114Endlicher Automat 97Endlosschleife 548Endung (Dateiname) 311Endung (Dateiname, Unix) 385Engelbart, Douglas 287ENIAC, Röhrenrechner 37Enterprise Java Beans 599, 1091

Client-Interface 600Deployment 603Deployment-Deskriptor 603Entity-Beans 600Home-Interface 600Implementierung 600Message Driven Beans 600Session-Beans 600Vorteile 599

Enterprise-Anwendung 598, 1091

Enterprise-Anwendung � Verteilte Anwendung

EntityDatenbank 678

Entity-ReferenzHTML 870XML 799, 814

Entwicklerdokumentation 649Entwicklungsprozess, Software

649agiler Entwicklungsprozess 651Extreme Programming 651Scrum 652

Entwicklungsprozess, Software (Forts.)Unified Process 650

Entwurf, Software-Engineering 646Schnittstelle 647Standalone-System 646verteiltes System 647

Entwurfsmuster 660Absicht 661Abstract Factory 663Adapter 663Alias 662Beispiel Singleton 665Bestandteile 661Beteiligte 662Bridge 663Builder 663Chain of Responsibility 664Client 663Codebeispiele 662Command 664Composite 663Decorator 663Einordnung 661Einsatzbeispiele 662Erzeugungsmuster 661Facade 663Factory Method 663Flyweight 663Implementierung 662Interpreter 664Iterator 664Katalog 663Konsequenzen 661–662Lösung 661Mediator 664Memento 664Motivation 662MVC 661, 973Name 661Observer 664Problem 661Protoype 663Proxy 664Querverweis 662Singleton 663Singleton (als Beispiel) 665State 664Strategy 664

Index

1133

Entwurfsmuster (Forts.)Struktur 662Strukturmuster 661Template Method 664Verhaltensmuster 661Verwendungszweck 662Visitor 664Zusammenspiel 662

ENUM, SQL-Datentyp 698Environment � UmgebungEPOCH 296EPROM 128EPS, Dateiformat 850

Unterschiede zu PostScript 850eq, Perl-Operator 505equals(), Java-Methode 489Ereignis

AWT 609Ereignisanzeige, Windows 352Ereignisbehandlung 609

Java, AWT 621Erlang, Programmiersprache 51eRuby (embedded Ruby) 980Erweiterte Partition 147Erweiterung (Dateiname) 311Erweiterung (Dateiname, Unix)

385Erzeugungsmuster 661Escape-Sequenz 391, 1091

C 460in RegExp 558

EscapingPHP 938

etc, Unix-Verzeichnis 306Ethernet 197, 1091

1000BaseFL-Standard 2021000BaseTX-Standard 202100BaseT-Standard 20210Base2-Standard 19910Base5-Standard 20010BaseT-Standard 202Bridge 201Crosslink-Kabel 201CSMA/CD-Verfahren 198Entwicklung 41Hardware 199Hardwareadresse 197Hub 201Koaxialkabel 199MAC-Adresse 197

Ethernet (Forts.)Switch 201Thicknet Coaxial 200Thinnet Coaxial 199Twisted-Pair-Kabel 200Vorläufer ALOHANet 198

Ethernet-Kabeltypen 199Ettrich, Matthias 424Euklidische Geometrie 91EVA-Prinzip 110Event Handler

jQuery 1054Event Handling 609Exabyte 79Exception

auslösen 497IOException 497Java 496

Exception, Java 487IOException 487

ExceptionsFileNotFoundException 497

exec(), C-Funktion 564–565executeQuery(), JDBC-Methode

722exit, Unix-Befehl 377EXIT-SUCCESS, C-Konstante 460Exklusiv-Oder 64explode(), PHP-Funktion 929Exploit 1071Explorer

Ordneransicht, Windows 332Explorer, Windows-Dateimana-

ger 330Exponentialschreibweise 82

C 464Exponentielle Komplexität 95Exposé, Mac OS X 445ext3, Linux-Dateisystem 393Extended Service Set (WLAN)

207extends, Java-Vererbung 493extends, PHP-Schlüsselwort 943Extensible Markup Language

� XMLExtreme Programming 651

Eigenschaften 651Programmieren in Paaren 652Test-first-Verfahren 652, 671

F

Facade, Entwurfsmuster 663Fachinformatiker 28

Anwendungsentwicklung 28Projektarbeit 638Prüfung 30Systemintegration 28

facsimileTelephoneNumber, LDAP-Attribut 776

Factory Method, Entwurfs-muster 663

Fakultät 546Fallunterscheidung

Bedingung 469C 469durch logische Operatoren, Perl

506in Shell-Skripten 404switch/case, C 471unless, Perl 507

Fallunterscheidungs-Operator 468

Falsche Aussage 58false

Java 488Farbaddition 54Farbe

in HTML 912Farbkanal, Bild 54Farblaserdrucker 165Farbsubtraktion 54Farbtiefe

Grafikkarte 160Farbtiefe, Bild 54Fast Ethernet 202FAT 1091FAT12, Dateisystem 323FAT16, Dateisystem 323FAT32, Dateisystem 324FAT-Dateisystem

FAT12 323FAT16 323FAT32 324

FDDI 1091FDDI, Netzwerk 209Fedora, Linux-Distribution 365Feed � NewsfeedFenster

programmieren 619

Index

1134

FensterbedienungMac OS X 441Windows 327

Festkommazahl 82Festplatte 145

alternative SSD 150Anschlüsse 138belegten Platz ermitteln (Unix)

393Cache 150CHS-Adressierung 145Defragmentierung 146EIDE 138formatieren, Unix 393Geschwindigkeit 149konstante Winkelgeschwindig-

keit 149LBA-Adressierung 145mittlere Zugriffszeit 149Partitionierung 146Partitionstabelle 146RAID 148SCSI 139

Festplattengröße 79Festwertspeicher � ROMfg, Unix-Befehl 373fgets(), C-Funktion 480FHSS, WLAN-Technik 205FIFO 1091, 1095FIFO � First In, First OutFile Type ID, HFS 448FileMaker, Datenbank 686FileNotFoundException, Java

497Fileserver 191fillOval(), AWT-Methode 612fillRect(), AWT-Methode 612filter, iptables-Tabelle 1076find, Rails-Methode 978Finder

Mac OS X 440, 443Ordneransichten, Mac OS X 443

finger, Unix-Dienstprogramm 369

Firewall 1062, 1073iptables 1074, 1076netfilter (Linux) 1076

FireWire 141, 1092First In, First Out 550Flachbettscanner 158

Flagdes virtuellen Prozessors 103

flash, Rails-Zwischenspeicher 984Flash-EEPROM 128Fließkomma-Literal 464Fließkommazahl 82

Exponentialschreibweise 82Exponentialschreibweise, C 464

Flip-Flop (Schaltung) 89float, C-Datentyp 463float, CSS-Angabe 917FLOAT, SQL-Datentyp 697Floating Point Number � Fließ-

kommazahlFloating Point Unit � FPUFLOPS (CPU-Geschwindigkeit)

120FLUSH PRIVILEGES, MySQL-

Anweisung 712FLUSH TABLES, MySQL-Anwei-

sung 714Flussdiagramm 92Flusskontrolle 466Flyweight, Entwurfsmuster 663FM-Synthese (MIDI) 166font-family, CSS-Angabe 913font-size, CSS-Angabe 913font-style, CSS-Angabe 913font-weight, CSS-Angabe 913fopen(), C-Funktion 480for()-Schleife 473for-Befehl

in Shell-Skripten 405foreach, Perl-Schleife 502fork(), C-Funktion 563fork(), Unix-Systemaufruf 299form_tag, Rails-Methode 984Formale Logik 57Formatieren

Datenträger, Unix 393Formular

in Ruby on Rails 984Fortran, Programmiersprache 47FORWARD, iptables-Chain 1076Foto-Multiplier (Trommel-

scanner) 159FP-RAM 126fprintf(), C-Funktion 480FPU 116Frame, AWT-Klasse 610, 619

Frame, Datenpaket 197Framework 1092FreeBSD 285Frege, Gottlob 57Freie Software 289Fremdschlüssel

in Ruby on Rails 977RDBMS 680

Frequency Hopping 205Frequenz, Audio 54Front Side Bus 119Frontend 194FSB � Front Side Busfscanf(), C-Funktion 480fsck, Unix-Befehl 393FTP 259, 1092

ASCII-/Binärmodus 261Befehle 260Clients 259HTML-Hyperlink auf 882

FULLTEXT, SQL-Schlüsselwort 699

function, JavaScript-Schlüssel-wort 1002

function, PHP-Schlüsselwort 932Funk-Schnittstelle 142Funktion 48, 1092

Argument 474aufrufen 474C 474Call by Reference 476Call by Value 476iterative 546Parameter 474rekursive 546Rückgabewert 474Rückgabewert, C 460SQL 701

Funktionale Programmier-sprache 51

FunktionsaufrufC 461

Fußgesteuerte Schleife 473Futon, CouchDB-Administration

724fvwm2, Window-Manager 423

Index

1135

G

Galaxy Tab 45Gamma, Erich 660GAN 1092GAN, globales Netz 187Gantt-Diagramm 643Ganze Zahl 68Garret, Jesse James 1035gate (Gatter) � LogikschaltungGate, Steuerungseingang des

Transistors 84Gates, Bill 40, 286Gatter � LogikschaltungGCC, C-Compiler 457

starten 458gcc-Befehl 458

Unix-Besonderheiten 458ge, Perl-Operator 506Geometrie

euklidische 91Gerät

elektrisches 36elektronisches 36

Gerätedatei 305–306Gerätetreiber 47, 281, 294

Blockgerät 294für Drucker 165installieren, Windows 349Netzwerk, Windows 355Zeichengerät 294

GET, HTTP-Methode 270zum HTML-Formularversand

895Get-Alias, PowerShell-Cmdlet

338getchar(), C-Funktion 480Get-ChildItem, PowerShell-Cmdlet

338Get-Command, PowerShell-

Cmdlet 338getDate(), JavaScript-Methode

1010getDay(), JavaScript-Methode

1010getElementById(), JavaScript-

Methode 1026getElementsByTagName(), Java-

Script-Methode 1026

getFullYear(), JavaScript-Methode 1009

gethostbyname(), Systemaufruf 573

getHours(), JavaScript-Methode 1010

getMinutes(), JavaScript-Methode 1010

getprotobyname(), Systemaufruf 573

gets(), C-Funktion 460, 480getSeconds(), JavaScript-Methode

1010getservbyname(), Systemaufruf

574getYear(), JavaScript-Methode

1009GGT (größter gemeinsamer Teiler)

542GhostScript 849GID (Group-ID)

von Prozessen 300GID (Group-ID, Unix) 369gidNumber, LDAP-Attribut 776GIF, Bilddateiformat 855Gigabit-Ethernet 202Gigabyte 79givenName, LDAP-Attribut 776Gleichheit 65Gleichheit, Operator 466Gleichung 58

lineare 59Lösung 59

Gleitkommazahl � Fließkomma-zahl

Global Area Network 187global, PHP-Variablenmodifika-

tion 932Globale Variable

C 463GNOME

GtK+-Bibliothek 424GNOME Terminal 371GNOME, Desktop 297, 424, 426

Desk Guide 426GNOME-Menü 427Kontrollzentrum 427Panel 427Verknüpfung erstellen 427

GNU Emacs, Texteditor 417

GNU General Public License 289GNU zip, Komprimierung 401GNU-Projekt 289Google

Android (Smartphone-OS) 44Gosling, James 483GPL 289GPRS 216Grafikkarte 160

AGP 161Auflösung 160Farbtiefe 160Geschwindigkeit 161mit mehreren Monitoren 161PCI 161RAMDAC 161

Grafische Benutzeroberfläche 282, 287, 297, 1092Aqua, Mac OS X 439Drag & Drop 294Ereignis 608Fensteranwendung 619GNOME 297, 424, 426GtK+, Programmierumgebung

426JFC 609KDE 297, 424Menü programmieren 619Nachricht 608Programmierung 608Qt, Programmierumgebung 425Quartz, Grafikbibliothek 439Terminalfenster 371Unix 422–423Widget 608Window-Manager 297Windows 325Windows 95 325Windows 98 325Windows XP 325X Window 297, 422

GRANT, MySQL-Anweisung 709Graphics, AWT-Klasse 609Graphics2D, Java2D-Klasse 609Green Book (CDi) 152, 1092grep, Unix-Befehl 390

Muster 391GridLayout 620Groß- und Kleinschreibung

igonorieren in RegExp 559

Index

1136

Groß- und Kleinschreibung (Forts.)Unix-Dateiname 307

Größer als, Operator 466größer als, Operator 65Größer oder gleich, Operator 466Großrechner 39Größter gemeinsamer Teiler 542groupadd, Unix-Befehl 395Group-ID

von Prozessen 300Group-ID (Unix) 369Grüner Balken (Unit-Test) 670Gruppe

hinzufügen, Linux 395wechseln (Datei, Unix) 388

Gruppenrichtlinienobjekt, Win-dows 353

GSM-Mobilfunk 216gsub, Ruby-Methode 562gt, Perl-Operator 506GtK+, Grafikbibliothek 424, 426GUI � Grafische Benutzer-

oberflächeGültigkeitsbereich

Variable, C 463Variable, Java 488

gunzip, Unix-Befehl 861gzip, Dateikomprimierung 401gzip, Unix-Befehl 861

H

Halbaddierer (Schaltung) 87Halbleiter 38Halteproblem (Berechenbarkeit)

93Handshake 1092Handshake, Modem-Kommuni-

kation 212Hard Link 308Hardware

Ausgabegerät 142, 160BIOS 114Bus 115, 133Bus Mastering 137Chipsatz 114Digitalkamera 159DMA-Kanal 136Drucker 163

Hardware (Forts.)Eingabegerät 142, 156Grafikkarte 160I/O-Basisadresse 136IRQ 135konfigurieren, Windows 349,

351Massenspeicher 142Maus 157Monitor 161Netzwerk 196Onboard-Peripherie 115Peripherie 142Plug & Play 137Prozessor 114RAM 114, 125Ressourcen 135ROM-Speicher 114Scanner 158schematischer Aufbau 109Schnittstelle 115Soundkarte 166Steuerung durch Betriebssystem

281Tastatur 157Zentraleinheit 113

Hardware-Interrupt 123Harvard Mark I 37Harvard Mark II 37has_and_belongs_to_many, Rails-

Relation 977has_many, Rails-Relation 977Hash

Perl-Variable 501PHP 927Schlüssel 503

Hauptplatine � MainboardHauptprogramm

main() als 50Hauptspeicher 111Hayes, Modem-Befehlssatz 211Hayes-Befehlssatz 1088HD DVD 156head

HTML 868head, Unix-Befehl 389Header-Datei

C 479Heinemeier Hansson, David 973Hello World 458

Helm, Richard 660help, Windows-Befehl 297Helper

Ruby on Rails 982Herunterfahren

Betriebssystem, Unix 397Windows 329

Hewlett-Packard, HP UX, Betriebs-system 285

Hexadezimalsystem 74in dezimal umrechnen 77in dual umrechnen 77

HexadezimalzahlC 464

Hex-Editor 46, 850HFS+, Dateisystem 448HFS, Dateisystem 448

Data Fork 448Resource Fork 448

HIER-DokumentPerl 506Variablensubstitution 506

HIER-Dokument, in Unix-Shell 381

Hintergrund (Prozess) 373History

Unix-Shell 376Windows-Eingabeaufforderung

334Hoax 1070Hollerith, Hermann 38home, Unix-Verzeichnis 306Homecomputer 42, 286homeDirectory, LDAP-Attribut

776Home-Verzeichnis 306, 310Host (Netzwerk) 181Host-zu-Host-Transport,

DDN-Modell-Schicht 181Hot Spot 887Hot-Plugging 141HP UX, Betriebssystem 285HPGL (Druckersprache) 165HR/DSSS, WLAN-Technik 205HSPA (HSDPA/HSUPA) 216HTML

<a>-Tag 880<address>-Tag 876<applet>-Tag 904<area>-Tag 887

Index

1137

HTML (Forts.)<b>-Tag 875<body>-Tag 868<br />-Tag 870<caption>-Tag 888<code>-Tag 876<col>-Tag 892<colgroup>-Tag 892<dl>-Tag 879<dt>-Tag 879<em>-Tag 875<embed>-Tag 902<form>-Tag 894<head>-Tag 868<html>-Tag 868<i>-Tag 875<img>-Tag 884<input>-Tag 896<li>-Tag 876<map>-Tag 887<meta>, Tag 905<meta>-Tag 870<object>-Tag 904<ol>-Tag 877<option>-Tag 897<p>-Tag 872<pre>-Tag 873<script>-Tag 994<select>-Tag 897<strike>-Tag 875<strong>-Tag 875<style>-Tag 910<sub>-Tag 875<sup>-Tag 875<table>-Tag 888<tbody>-Tag 891<td>-Tag 888<textarea>-Tag 898<tfoot>-Tag 891<th>-Tag 888<thead>-Tag 891<title>-Tag 868<tr>-Tag 888<tt>-Tag 875<u>-Tag 875<ul>-Tag 876Absatz 872Absatzausrichtung 872Absendeknopf 896ActiveX-Objekt 903

HTML (Forts.)Adressangabe 876Anker 883Attribut 867Aufzählung 876Aufzählungszeichen wählen 877Auswahlmenü 897Beschreibung für Suchmaschi-

nen 906Bild als Hyperlink 886Bild einbetten 884Blocksatz 873Body 868Button 897Checkbox 896clientseitige Image Map 887CSS 908Datei-Formularfeld 897Definitionsliste 879Dokumentkopf 868Dokumentkörper 868Dokumentstruktur 868Dokumenttitel 868Download-Hyperlink 882E-Mail-Hyperlink 883Entity-Referenz 870Farben 912Festbreitenschrift 875fett 875Formular 894Formular, Auswahlmenü 897Formular, Button 897Formular, Checkbox 896Formular, Datei-Upload-Feld

897Formular, Hidden-Feld 897Formular, Löschknopf 897Formular, Passwortfeld 896Formular, Radiobutton 896Formular, Reset-Button 897Formular, Schaltfläche 897Formular, Submit-Button 896Formular, Textbereich 898Formular, Textfeld 896Formular, Versandmethode 895Formulardaten-Codierung 895Formulare, Absendeknopf 896Formularelemente 896Formular-URL 895FTP-Hyperlink 882

HTML (Forts.)geeignete Titel 868geschütztes Leerzeichen 872GET, Formularversandmethode

895Glossarliste 879h1 bis h6, Tags 873Head 868Hidden-Formularfeld 897hochgestellter Text 875Hyperlink 880Hyperlink ins Web 881Image Map, client-seitige 887Image Map, serverseitige 886input-Tag 896Java-Applet einbetten 904Kommentar 888kursiv 875Layer 916Layout-Tags 875Link 880Liste 876Löschknopf 897Meta-Tag 905MIME-Types 902Multimedia einbetten 902neue Strukturelemente in HTML5

874nicht nummerierte Liste 876nummerierte Liste 877Nummerierungsart wählen 877Passwortfeld 896Pfadangaben in Links 880Plug-in-Formate einbetten 902POST, Formularversand-

methode 895Quellcode darstellen 876Radiobutton 896Refresh 905Reset-Button 897robots.txt-Datei 907Schaltfläche 897Schlüsselwörter für Such-

maschinen 906Seite neu laden 905seiteninterner Link 883Server-Side Image Map 886Sonderzeichen 870Struktur-Tags 875Style Sheets 908

Index

1138

HTML (Forts.)style-Attribut 911Submit-Button 896Suchmaschinen-Informationen

906Tabelle 888Tabelle ausrichten 890Tabelle, Gitternetzlinien steuern

892Tabelle, Rahmenlinien steuern

892Tabellen-Attribute 890Tabellenbereiche 891Tabellenbeschriftung 888Tabellenbreite 890Tabellenhöhe 890Tabellenrahmen 890Tabellen-Spaltenbreite 892Tabellenzeile 888Tabellen-Zellabstand 890Tabellenzelle 888Tabellenzellen verbinden 891Tabellenzellen-Attribute 890Tabellenzellen-Ausrichtung 891Tag 867Tag-Verschachtelung 875Text betonen 875Text durchstreichen 875Text stark betonen 875Textbereich 898Textfeld 896Textformatierung 869Textmarke 883tiefgestellter Text 875Überschrift 873unterstrichen 875verschachtelte Liste 878vorformatierter Text 873Web-Palette 912XHTML 866XHTML-Besonderheiten 869Zeichenformatierung 875Zeichensatz angeben 870Zeilenumbruch 870

HTML5 866<article>-Tag 874<aside>-Tag 874<audio>-Tag 903<figcaption>-Tag 875<figure>-Tag 874

HTML5 (Forts.)<footer>-Tag 874<header>-Tag 874<hgroup>-Tag 874<nav>-Tag 874<section>-Tag 874<video>-Tag 903Audio 903neue Formular-Eingabetypen

900Strukturelemente 874Video 903

HTML-Formular 894per JavaScript modifizeren 1001überprüfen per JavaScript 1004URL 895

htmlspecialchars(), PHP-Funk-tion 938

htpasswd, Apache-Hilfspro-gramm 748

HTTP 269, 727, 1092Anfrage 729Antwort 730Cookie (PHP) 952Header 271, 734Kommunikationsablauf 728Methoden 728Session-Tracking (PHP) 951Sitzung 270Statuscodes 271, 731

HTTP-Befehle 270HTTP-Server 193Hub 201HUP, Signal 299Hybrid-CD 154, 1092Hyperlink

HTML 880Hypertext 174, 1092Hypertext Transfer Protocol

� HTTP

I

I/O � Ein-/AusgabeI/O-Basisadresse 136, 1092I/O-Kanäle 381IaaS (Infrastructure as a Service)

989IANA 222, 1092

IBM 42, 286AIX, Betriebssystem 285DB2 686OS/2, Betriebssystem 287

IBM PC 286IBM WebSphere-Server 599IBM-PC 42IC 37iCloud 453ICMP 1092ICMP-Protokoll 247IEEE 1092IEEE 1394 1092IEEE 1394 � FireWireIEEE 802.11 � Wireless LANIEEE, Netzzugangsverfahren 802.x

196if()

C 469Fallunterscheidung, nachgestellte,

Perl 507if-Befehl

in Shell-Skripten 404ifconfig, Unix-Befehl 428IfModule, Apache-Direktive 750Image Map

clientseitige, in HTML 887serverseitige, in HTML 886

Image, AWT-Klasse 615Bilddatei laden 616

Image, JavaScript-Klasse 1013Imaginäre Zahl 69IMAP 267, 1092Imperative Programmiersprache

48Implementierung, Software-

Engineering 647implode(), PHP-Funktion 929import, Java-Anweisung 486include(), PHP-Funktion 947include_once(), PHP-Funktion

947Index

im RDBMS 680INDEX, SQL-Schlüsselwort 699indexOf(), Java-Methode 489inet_aton, Netzwerkprogrammie-

rung 573inetOrgPerson, LDAP-Objekt-

klasse 775

Index

1139

Informatik 26angewandte 26Bioinformatik 32Medieninformatik 32medizinische 32praktische 26Studium 31technische 26theoretische 26Wirtschaftsinformatik 32

Informatikkaufmann 29Information

analoge 52digitale 52

Infrarot-Anschluss 142Infrastructure as a Service 989init-Prozess 299Inner Join, SQL 702

durch WHERE ausdrücken 703INNER JOIN, SQL-Klausel 702InnoDB, MySQL-Tabellentyp 705InnoDB-Tabelle (MySQL) 686inode 307INPUT, iptables-Chain 1076Input/Output � Ein-/AusgabeInputStreamReader, Java-Klasse

487INSERT, SQL-Abfrage 703Instanz 485

erzeugen, Java 488Instruction Table � Befehlstabelleint

C-Datentyp 463Funktionsdatentyp, C 459

INT, Signal 397INT, SQL-Datentyp 697Integer 1092

Java-Klasse 544Integer-Literal 464Integrationsmanagement 641Integrierter Schaltkreis 37Intel 40, 115Intel-Assembler 124Interface

Java 494Runnable, Java 495Serializable, Java 495

InternetAnwendungsprotokolle 256Dateiübertragung 259

Internet (Forts.)Denial-of-Service-Angriff 359Dokumentation 173Geschichte 171Offizielle Einführung 173RFC 173Standards 173Transportprotokolle 246Vorläufer ARPANET 171Zugang per Modem 211Zugang über DSL 214Zugang über ISDN 212

Internet ExplorerActiveX 903

Internet, DDN-Modell-Schicht 181

Internet-Schichtenmodell 179Anwendungsschicht 182Host-zu-Host-Transportschicht

181Internetschicht 181Netzzugangsschicht 180

Interpreter 40, 47, 497Interpreter, Entwurfsmuster 664Inter-Prozess-Kommunikation

300System V IPC 301über Pipes 300über Signale 300

Interrupt Request � IRQInterrupt, Hardware- 123Intrusion Detection System 1074Intrusion Detection Systems

Network-IDS 1074Snort 1074

IO::Socket 576–578IOException, Java 487, 497iOS, Mobilbetriebssystem 438iPad 45IP-Adresse

für Sockets 573zuweisen, Linux 429zuweisen, Mac OS X 449zuweisen, Windows 356

IP-AdressenBroadcast-Adresse 222CIDR-Adressierung 224CIDR-Berechnungen 226IPv6 233Klassen 220

IP-Adressen (Forts.)Konzept 220link local 223Loopback 223Netzwerkadresse 222private 223spezielle 223Subnet Mask 224Subnetting 225Supernetting 226Teilnetzmaske 224VLSM 229

IPC � Inter-Prozess-Kommuni-kation

iPhone 44IP-Masquerading 245IP-Protokoll

Adressverteilung 222Datagramme 230Default Gateway 237Header 230IPv6 233Maximum Transmission Unit

(MTU) 232Multicasting 222Network Address Translation

(NAT) 245Paketfragmentierung 232Router 237Routing 236Routing-Protokolle 241spezielle Adressen 223TTL 240

IP-RoutingBeispiele 238Routing-Tabelle 239

iptables 1074, 1076Beispiele 1078Chain 1076Kommandozeilenoptionen 1077Regeln 1077Tabelle 1076

IPv4-Adressverteilung 222IPv6 233

Adressaufbau 233Datagramm-Header 234Migration (Umstieg) 236Motivation 233Tunnelung 236

IPX/SPX, Netzwerkprotokoll 275

Index

1140

irbconsole, Rails-Variante 978

IrDA 142, 1093IRQ 135, 1093

reservierter 136IS A-Beziehung, OOP 657is_array(), PHP-Funktion 936is_float(), PHP-Funktion 936is_int(), PHP-Funktion 936is_null(), PHP-Funktion 936is_numeric(), PHP-Funktion 936is_string(), PHP-Funktion 936ISA 138, 1093ISDN 212, 1093

anschließen 213Kanalbündelung 213Kanäle 213

ISO 1093ISO 9660 (CD-ROM-Format) 154ISO-8859-Zeichensätze 843isset(), PHP-Funktion 936Itanium, Prozessor 119IT-Ausbildung 27

Fachinformatiker 28Informatikkaufmann 29IT-Systemelektroniker 29IT-Systemkaufmann 29Projektarbeit 638Prüfung 30Studienfächer 31

IT-BerufeAusbildungsgänge 27

Iteration 546Iterator, Entwurfsmuster 664ITS, Betriebssystem 283IT-Sicherheit 1057IT-Systemelektroniker 29IT-Systemkaufmann 29

J

Jacobson, Ivar 654Java Application-Server 599Java EE 484, 599

Enterprise Java Beans 599Java Enterprise Edition 599Java Foundation Classes 609Java ME 484Java SDK 483

Enterprise Edition 484

Java SDK (Forts.)Micro Edition (Java ME) 484Standard Edition 483

Java Servlet 604Beispiel 605

Java Virtual Machine (JVM) 483java, Programm 486Java, Programmiersprache 51,

483, 570, 1093ActionListener 621Animation, AWT 615Applet 483, 609, 632Ausnahme 487Ausnahme auslösen 497Ausnahmen 496AWT 609Biddatei laden 616binäre Suche 549boolean-Datentyp 488BorderLayout 620BubbleSort 545BufferedReader 487, 496Button 619byte-Datentyp 488Callback-Methode 569Canvas 610catch() 487charAt()-Methode 489class-Deklaration 486CLASSPATH 484Color 612compareTo()-Methode 489Connection, JDBC-Klasse 721Datei verarbeiten 496Datenbankverbindung her-

stellen 721Datentypen 488drawLine()-Methode 612drawOval()-Methode 612drawPolygon()-Methode 612drawRect()-Methode 612drawString()-Methode 614Eigenschaften 484Ein- und Ausgabe 486Einsatzgebiete 483Enterprise Edition 599equals()-Methode 489Ereignisbehandlung 621Exception 487Exceptions 496

Java, Programmiersprache (Forts.)executeQuery()-Methode 722extends 493false 488fehlender Zeiger 489FileNotFoundException 497fillOval()-Methode 612fillRect()-Methode 612Frame 610, 619Graphics2D, Klasse 609Graphics-Klasse 609GridLayout 620Gültigkeitsbereich für Variablen

488Image-Klasse 615import-Anweisung 486indexOf()-Methode 489init(), Applets 633InputStreamReader 487Installation 484Instanz 485Instanz erzeugen 488Integer-Klasse 544Interface 494IOException 487, 497java.awt.* 609java.awt.event.* 609java.lang.* 490java.sql.* 721java.util.* 497Java2D 609javax.swing.* 609javax.swing.event.* 609javax.swing.table.* 609JDBC-Datenbankschnittstelle

720JDBC-ODBC-Bridge 720JDBC-Treiber laden 721JFC 609JFrame 610Kapselung 485Klasse 484Kommentar 489kompilieren 486Konstruktor 491Label 619lastIndexOf()-Methode 489LayoutManager 620length()-Methode 489lineare Suche 549

Index

1141

Java, Programmiersprache (Forts.)Liste 552Listener 621main()-Methode 486, 610Math-Klasse 490Menu 619MenuBar 619MenuItem 619Methode 484MouseListener 621MouseMotionListener 622new 488Object-Klasse 490Objekt 484Objektorientierung 484, 490org.xml.sax.* 827Package java.io.* 486paint()-Methode 610Panel 610, 619parseInt()-Methode 544print() 487println() 487private (Kapselung) 491Programm starten 486protected 493public (Kapselung) 486, 491readLine()-Methode 487repaint()-Methode 618ResultSet, JDBC-Klasse 722RMI (Remote Method Invoca-

tion) 600run()-Methode 568Runnable-Interface 495, 568SAX 827SDK 483SDK, Enterprise Edition 484SDK, Micro Edition (Java ME)

484SDK, Standard Edition 483Serializable-Interface 495Servlet 604setColor()-Methode 612setLayout() 620setVisible()-Methode 610start()-Methode 568Statement, JDBC-Klasse 722static 486String 487String-Methoden 489Strings vergleichen 489

Java, Programmiersprache (Forts.)String-Verkettung 488substring()-Methode 489super 494Swing 609TextArea 619TextField 619this 491Thread 495, 567Thread, Klasse 567throws-Klausel 497true 488try 487try/catch-Block 487Überladung 492Umwandlung von SQL-Daten-

typen 723Unterschiede zu C 488Unterstützung durch Mac OS X

439update()-Methode 618Variablendeklaration 488Vererbung 493virtuelle Maschine 483WindowListener 622

java.applet.*, Package 609java.awt.*, Package 609java.awt.event.*, Package 609java.awt.Graphics, Klasse 609java.io.*, Package 486java.lang.*, Package 490java.sql.*, Package 721java.util.*, Package 497Java2D-API 609Java-Applet 609, 632

in HTML einbetten 904init()-Methode 633

JavaScript 994, 1093+, Operator 997Ajax 1035angepasstes Browserfenster

öffnen 1021Ausgabe ins Dokument 995automatisierter Hyperlink 1021Bilder austauschen 1011Bilder vorausladen 1013Bildschirmgröße 1023Browserweiche 1019charAt(), String-Methode 1004CSS-Format ändern, DOM 1031

JavaScript (Forts.)Date, Klasse 1008document.forms, Formulare

1001document.images 1011document.write(), Methode 995Dokumenthierarchie ändern,

DOM 1033DOM, Objektmodell 1025DOM-Baumstruktur anzeigen

1028DOM-Knoteneigenschaften

1026DOM-Textknoten 1026Event Handler 999externe Datei einbinden 995Fenstereigenschaften 1021Fenster-Methoden 1024Formular überprüfen 1004Formular, Fokus setzen 1006Formularzugriff 1001function, Schlüsselwort 1002Funktion 1002Geschichte 994getDate(), Methode 1010getDay(), Methode 1010getElementById(), DOM-Methode

1026getElementsByTagName(),

DOM-Methode 1026getFullYear(), Methode 1009getHours(), Methode 1010getMinutes(), Methode 1010getSeconds(), Methode 1010getYear(), Methode 1009history-Objekt 1020Image, Klasse 1013in der Browser-History blättern

1020in HTML einbetten 994indexOf(), String-Methode 1004jQuery 1053JSON 1042, 1051lastIndexOf(), String-Methode

1004length, String-Eigenschaft 1004location-Objekt 1021navigator-Objekt 1019onreadystatechange, Ajax-Eigen-

schaft 1037

Index

1142

JavaScript (Forts.)open(), Ajax-Methode 1037open(), window-Methode 1021parseFloat(), Methode 998parseInt(), Methode 998prompt()-Methode 996readyState, Ajax-Eigenschaft

1037regulärer Ausdruck 1006responseText, Ajax-Eigenschaft

1039responseXML, Ajax-Eigenschaft

1043, 1045Rollover-Effekt 1013Rollover-Effekt, praxistaugliche

Lösung 1014screen-Objekt 1023send(), Ajax-Methode 1038setTimeout(), Methode 1011String, Klasse 1004String-Vergleich 999String-Verkettung 997substring, String-Methode 1004Timeout 1010

JavaServer Pages � JSPjavax.ejb.*, Java-Package 600javax.swing.*, Package 609javax.swing.event.*, Package 609javax.swing.table.*, Package 609Jaz-Laufwerk 150JBoss, Java Application-Server

599JDBC 1093JDBC, Java-Datenbankschnittstelle

720JDBC-ODBC-Bridge 720JDK 483JFC 1093JFC (Java Foundation Classes)

609JFrame, Swing-Klasse 610Jobs, Steve 41, 286–287Johnson, Ralph 660join, Perl-Anweisung 503Join, SQL 702Join-Abhängigkeit, RDBMS 685Joliet 1093Joliet (CD-Format) 154

Unterstützung auf dem Mac 154Joomla!, CMS 987

Journaling-Dateisystem 393Joy, Bill 410, 483JPEG, Bilddateiformat 855jQuery 1053

Ajax-Anfrage 1055Event Handler 1054Funktion 1054Selektor 1053

JSON, Ajax-Datenaustausch-format 1042, 1051

json_encode, PHP-Funktion 1051JSP 605JUnit 668

Beispiele 668grafische Oberfläche 670

K

Kabelanschluss als Internetzu-gang 215

Kapselung 50, 485Kartensteckplatz

AGP 138ISA 138PCI 137PCMCIA 138

KDE 1093Konsole (Terminalfenster) 371Qt-Bibliothek 424

KDE, Desktop 297, 424Kontrollzentrum 426Panel 425Verknüpfung erstellen 425

Kernel 291mach-Mikrokernel 292, 438Mikrokernel 291monolithischer 291selbst kompilieren, Linux 402Systemaufruf 293, 295Task Scheduler 292

Kernelmodus 292, 299Kernighan, Brian 49, 284, 457Kettenmail 1070keys, Perl 503KI � Künstliche IntelligenzKildall, Gary 286kill(), Unix-Systemaufruf 299KILL, Signal 299, 396kill, Unix-Befehl 396Kilobyte 79

Kindklasse 493Klammer

Operatoren-Rangfolge verän-dern 468

Klammernin RegExp 559

Klasse 50, 484abgeleitete 493Instanz erzeugen, Java 488

KlassenElternklasse 493

Klassendiagramm (UML) 657Klassenmethode

PHP 942Klassentest � Unit-TestKlassenvariable

PHP 942Kleinbildscanner 159Kleincomputer 39Kleiner als, Operator 466kleiner als, Operator 65Kleiner oder gleich, Operator 466Knuth, Donald E. 848Koaxialkabel 1093KOffice, KDE-Office-Paket 424Kommandozeile 1093Kommandozeile � KonsoleKommandozeilenparameter

C 475Kommentar

C 461in HTML 888Java 489Perl 504PHP 931

Kommentarein XML 801

Kommunikationzwischen Prozessen 300

Kommunikationsmanagement 641

Kommunikationssteuerung, OSI-Schicht 179

Kompakt-Desktop-Rechner 112Komplexe Zahl 69Komplexität 1093

exponentielle 95logarithmische 95O-Notation 94polynomielle 95

Index

1143

Komplexität (Forts.)quadratische 95von Algorithmen 94

Komplexitätsklasse 94Komponentenmodell 599Komprimierung 852

bzip2 402gzip 401verlustbehaftete 853verlustfreie 852

Konfigurationsdatei.bashrc (Unix) 373/etc/profile (Unix) 373

Konjunktion, logische 61Konqueror, KDE-Browser 424Konsole 282, 297

Ausgabe, C 479Ausgabeumleitung (Unix) 381Befehl, Windows 336Eingabe, C 479Eingabeaufforderung, Unix 371Eingabeaufforderung, Windows

336Eingabeumleitung (Unix) 381Eingabevervollständigung 375Pipe 382praktische Verwendung (Unix)

367starten unter Windows 336Windows 333

Konsole (KDE-Terminalfenster) 371

Konstantesymbolische 482, 1097

Konstante lineare Geschwindig-keit 152

Konstante Winkelgeschwindig-keit 149

KonstruktorJava 491überladen, Java 492

KontextmenüMac OS X 445

Kontrollstruktur 469Fallunterscheidung 469foreach, Perl 502in C 461in der PowerShell 343Schleife 472unless, Perl 507

Kooperatives Multitasking 293Kopfgesteuerte Schleife 472Kopieren

Datei, Mac OS X 444Datei, Unix 385Datei, unter Windows 331Datei, Windows-Konsole 337

Koprozessor 116Korn Shell (ksh) 372Kosinuskurve

zeichnen, AWT 613Kostenmanagement 641Kritischer Pfad, Netzplan 643Kryptoanalyse 1080Kryptografie 1079

asymmetrische Verschlüsselung 1080

Cäsar-Code 1079digitale Signatur 1081Einwegverschlüsselung 1081Grundbegriffe 1079Message-Digest 1081ROT13 1079SSH 1082SSL/TLS 1081symmetrische Verschlüsselung

1080ksh (Korn Shell) 372Kugelkopfdrucker 163Künstliche Intelligenz 45

L

l, LDAP-Attribut 776Label, AWT-Klasse 619Lamarr, Hedy 205LAMP-System 924, 1093LAN 186, 1093

Technische Lösungen 187Wireless 204

Laptop 112Laserdrucker 164

Farbe 165Last In, First Out 550Lastenheft 644lastIndexOf(), Java-Methode 489Lasttest 648LaTeX 1093LaTeX, Satzsprache 847

Beispieldokument 848

LaufwerkAnschlüsse 138magnetisches 143magneto-optisches 143optisches 143

Laufwerksbuchstabe 309Laufzeit 47Laufzeitbibliothek, C 479Launchpad, Mac OS X 452Lauschender Socket 576LayoutManager, AWT 620

BorderLayout 620GridLayout 620

Lazy Initialization, Entwurfs-muster 966

LBA (Festplattenadressierung) 145

LCD 1093LCD-Monitor 162

Funktionsprinzip 162Nachteile 163TFT 162Vorteile 162

LDAP 773, 1093Active Directory 773Benutzerkonten abbilden in 775cn, Attribut 776dc-Knoten 774dn, Attribut 776facsimileTelephoneNumber,

Attribut 776gidNumber, Attribut 776givenName, Attribut 776Grundlagen 774homeDirectory, Attribut 776inetOrgPerson, Objektklasse 775l, Attribut 776loginShell, Attribut 776mail, Attribut 776o, Attribut 776objectClass 775objectClass, Attribut 776OpenLDAP 773Organisationseinheit 774ou-Knoten 774people, Organisationseinheit

774person, Objektklasse 775posixAccount, Objektklasse 775Schema 774

Index

1144

LDAP (Forts.)sn, Attribut 776telephoneNumber, Attribut 776uid, Attribut 776uidNumber, Attribut 776userPasssword, Attribut 776verschiedene Server für 773Wurzel 774

le, Perl-Operator 506Lead-in-Area (CD) 153Lead-out-Area (CD) 153LED-Drucker 165, 1093Leere Menge 70left, CSS-Angabe 916Leibniz, Gottfried Wilhelm 35Leichtgewichtiger Entwicklungs-

prozess 651length(), Java-Methode 489Lerdorf, Rasmus 923less, Unix-Befehl 389letter-spacing, CSS-Angabe 913Level-1-Cache 117Level-2-Cache 117LF, Unix-Zeilenumbruch 839Lichtfarben, RGB 54Lichtwellenleiter 45LIFO 1093LIFO � Last In, First OutLight Peak 141Lightweight Directory Access

Protocol � LDAPLIKE, SQL-Klausel 700Lineare Algebra 91Lineare Geschwindigkeit,

konstante 152Lineare Gleichung 59Lineare Komplexität 94Lineare Suche 94, 1094

Java 549line-height, CSS-Angabe 914Linux 285, 288

$0, Systemvariable 372.bashrc, Konfigurationsdatei

373/etc/passwd-Datei 369/etc/profile, Konfigurations-

datei 373/etc/shadow, Datei 370alias-Befehl 407als Server einrichten 430

Linux (Forts.)apt, Paketmanager 401Arbeitsverzeichnis anzeigen 387auf NFS-Freigaben zugreifen

431auf Windows-Server zugreifen

434bash 372Befehle regelmäßig ausführen

408Benutzerrechte 308Bourne-Shell 372bunzip2-Befehl 862bzip2-Befehl 862bzip2-Komprimierung 402cat-Befehl 389cd-Befehl 387chgrp-Befehl 388Child-Prozess 299chmod-Befehl 387chown-Befehl 388cp-Befehl 385Cronjob 408C-Shell 372CUPS, Drucksystem 431Daemon 396date-Befehl 393Datei kopieren 385Datei löschen 386Datei umbenennen 385Datei verschieben 385Dateibefehle 384Dateibesitzer wechseln 388Dateiendung 385Dateigruppe wechseln 388Dateiname 307, 384Dateinamen-Platzhalter 384Dateisysteme 305Datum und Uhrzeit ändern 393Datum und Uhrzeit formatieren

394Debian-Distribution 366diff-Befehl 391Distributionen 289du-Befehl 393echo-Befehl 388Emacs, Texteditor 417Escape-Sequenz 391exit-Befehl 377fg-Befehl 373

Linux (Forts.)finger, Dienstprogramm 369fork(), Systemaufruf 299fsck-Befehl 393Gerätedatei 305–306GNOME 297, 424, 426GNU-Projekt 289grafische Benutzeroberfläche

422grep-Befehl 390groupadd-Befehl 395Group-ID 300, 369gunzip-Befehl 861gzip-Befehl 861gzip-Komprimierung 401Hard Link 308Hardwareplattformen 288head-Befehl 389HIER-Dokument 381Home-Verzeichnis 306ifconfig-Befehl 428init-Prozess 299inode 307Installation von Software 401IP-Adresse zuweisen 429KDE 297, 424Kernel kompilieren 402Kernel-Modul laden 402kill(), Systemaufruf 299kill-Befehl 396Korn Shell 372less-Befehl 389Link (Dateisystem) 308logger-Befehl 399Login 367ls-Befehl 386mail-Befehl 409make-Befehl 402man-Befehl 297Mandriva-Distribution 366mkdir-Befehl 387mkfs-Befehl 393modprobe-Befehl 402more-Befehl 389mount-Befehl 392mv-Befehl 385MySQL-Installation 690netfilter, Kernel-Firewall 1076Netzwerkkonfiguration 428Neustart 397

Index

1145

Linux (Forts.)NFS 430openSUSE-Distribution 365Pager 389Paketmanager 401Parent-Prozess 299passwd-Befehl 395Passwort ändern 395patch-Befehl 392PATH, Umgebungsvariable 374pause(), Systemaufruf 299Pfadangabe 306Pipe 382Programm automatisch starten

399Prozessmodell 298Prozessverwaltung 395ps-Befehl 300, 395pstree-Befehl 396pwd-Befehl 387Red-Hat-Distribution 365regulären Ausdruck suchen 390rm-Befehl 386rmdir-Befehl 387root, Benutzer 300, 369route-Befehl 429rpm, Paketmanager 401Runlevel 399Samba-Server 432SaX, openSUSE-X-Konfigura-

tionsprogramm 423Shell 297, 367Shell-Ausgabeumleitung 381Shell-Eingabeumleitung 381Shell-Eingabevervollständigung

375Shell-History 376Shell-Skript 403shutdown-Befehl 397Software installieren 401Stand-alone Shell 372Standardrouter einrichten 429startx-Befehl 423su-Befehl 377Swap-Partition 303Symbolic Link 308Syslog 396–397System herunterfahren 397System V Init 399Systemprogramme 288, 383

Linux (Forts.)tail-Befehl 389tar-Befehl 402, 860tar-Datei 401Textbefehle 388Textdatei anzeigen 389Textdateien vergleichen 391Texteditoren 410Ubuntu-Distribution 366Umgebung 372Umgebungsvariable setzen 375umount-Befehl 393unalias-Befehl 408unzip-Befehl 862useradd-Befehl 394userdel-Befehl 395User-ID 300, 369Verwaltungsbefehle 392Verzeichnis anlegen 387Verzeichnis löschen 387Verzeichnis wechseln 387Verzeichnisbaum 306Verzeichnisbefehle 384Verzeichnisinhalt anzeigen 386vi, Editor 410virtuelles Terminal 370wc-Befehl 392Window-Manager 297Wörter zählen 392X Window 297, 422Xconfigurator, X-Konfigurations-

programm 423zip-Befehl 862Zugriffsrechte 308

LISP, Programmiersprache 51, 422

ListeC 550HTML 876Java 552Perl 501

Listenqw//, Perl 505

listen(), Perl-Funktion 576Listen, Apache-Direktive 750Listener, AWT-Ereignisbehand-

lung 621Literal 464, 1094

Fließkommazahlen 464Integer 464

Literal (Forts.)Perl 504String 464Zeichen 464

Little-Endian-Architektur 1094Little-Endian-Plattform 851LOAD DATA INFILE, MySQL-

Anweisung 715LoadModule, Apache-Direktive

750Local Area Network 186LocalTalk 273localtime(), C-Funktion 481Location, Apache-Direktive 751Lochkarte 38, 282Logarithmische Komplexität 95Log-Datei

MySQL 716logger, Unix-Befehl 399Logical Link Control (LLC) 178Logik

AND 61Aussage 58Aussageformen 59Aussagenlogik 57Definition 57Disjunktion 62formale 57Gleichung 58Konjunktion 61lügende Kreter 93mathematische Aussage 58Operator, C 465OR 61Prädikatenlogik 51, 57Schlussfolgerung 60Term 58Umkehrschluss 60Ungleichung 58Verknüpfung 60wahre und falsche Aussagen 58Widerspruch 93XOR 64

Logikschaltkreis � LogikschaltungLogikschaltung 83

Addierwerk 88AND/OR-Aufbau durch Transis-

toren 85Carry-in 87Carry-out 87

Index

1146

Logikschaltung (Forts.)Flip-Flop 89Gattersymbole 85Halbaddierer 87mit einfachen Mitteln nach-

bauen 83Multiplexer 86NAND-Schaltung 84NOR-Schaltung 84NOT-Schaltung 84RS-Flip-Flop 89Speicherzelle 89Übertrag 87Volladdierer 87XOR-Schaltung 86

Login 1094Login (Unix-Anmeldung) 367loginShell, LDAP-Attribut 776Logische Partition 148Logische Programmiersprache 51Logische Schlussfolgerung 60Logische Verknüpfung 60Logische Verknüpfungen

in Programmiersprachen 66Logischer Operator

C 465Short-Circuit-Logik 507Vergleich mit Bit-Operatoren 62

Logisches Laufwerk � Logische Partitionen

Logisches Nicht, Operator 465Logisches Oder, Operator 465Logisches Und, Operator 465Logo, Programmiersprache 51Logos 57Lokale Variable

in C 463Lokales Netz

Entwicklung 41Lokalisierung

Mac OS X 448long, C-Datentyp 463LONGBLOB, SQL-Datentyp 698LONGTEXT, SQL-Datentyp 698Loopback, IP-Protokoll 223Löschabfrage 695Löschen

Datei, Windows-Konsole 337Dateien, Unix 386Verzeichnis, Windows 337

Lösungeiner Gleichung oder Ungleichung

59Lösungsmenge 59Lovelace, Ada 35ls, Unix-Befehl 386LS-120-Laufwerk 150lt, Perl-Operator 506LVALUE 467

Liste als 501

M

m//, Perl-Operator 556, 560m:n-Beziehung, RDBMS 681Mac 43Mac OS X 285, 437

10.7 Lion, Neuerungen 452AirDrop 452Alias 445als Server einrichten 451Anwendungsmenü 442APIs 439Apple-Menü 440, 442Aqua 285, 439Aqua, praktische Anwendung

440Aqua-Fenster 441Architektur 438Benutzerverwaltung 448Carbon 439Classic-Umgebung 439Cocoa 439Darwin 439Data Fork 448Datei kopieren 444Datei umbenennen 445Datei verschieben 444Dateisysteme 448Desktop 440Dock 440, 443DSL einrichten 450Exposé 445File Sharing 451Finder 440, 443Geschichte 437HFS+-Dateisystem 448HFS-Dateisystem 448IP-Adresse zuweisen 449Java 439

Mac OS X (Forts.)Konfiguration 447Kontextmenü 445Landeseinstellungen 448Launchpad 452Menüleiste 440Mission Control 452Monitor, Systemeinstellungen

448Netzwerkkonfiguration 449OpenGL, 3D-Grafikbibliothek

439Ordneransichten 443Papierkorb 443Quartz, Grafikbibliothek 439QuickTime 439Resource Fork 448Resume 452Server nutzen 452Spotlight 443Startvolume einstellen 447Systemeinstellungen 447Terminal starten 440Unix-Komponenten 440Windows File Sharing 451

MAC-Adresse 197, 1094mach-Mikrokernel 292Macintosh 43, 287

Leonardo, ISDN-Leonardo, Mac-ISDN-DFÜ 214

Mac OS X 437Serversysteme 451

Magische Methode (PHP) 937, 946

Magnetband 144Magnetbandspeicher 40Magnetischer Datenträger 143

Magnetbander 144Magnetscheibe 144

Magneto-optischer Datenträger 143

Magnetscheibe 144mail, LDAP-Attribut 776mail, Unix-Befehl 409Mailserver 192mailto, HTML-Hyperlink 883main(), AWT-Methode 610main(), C-Funktion 50, 459, 474

Kommandozeilenparameter 475main(), Java-Methode 486

Index

1147

Mainboard 113Chipsatz 114Kartensteckplatz 137Onboard-Peripherie 115

Mainframe 39make, Unix-Befehl 402Makefile 402Makrovirus 1060malloc(), C-Funktion 551MAN 1094MAN, Stadtnetz 187man, Unix-Befehl 297Mandriva, Linux-Distribution

366mangle, iptables-Tabelle 1077Man-in-the-Middle-Angriff 1072Manuelle Datenverarbeitung 25Marconi, Guglielmo 204margin, CSS-Angabe 914Mark I, Röhrenrechner 37Mark II, Röhrenrechner 37Maschinenbefehl 124Maschinensprache 45Massenspeicher 142

CD-ROM 151Diskettenlaufwerk 150DVD 154Festplatte 145Jaz-Laufwerk 150LS-120 150magnetischer 143magneto-optischer 143optischer 143Übersicht 143Wechseldatenträger 150Zip-Laufwerk 150

Master Boot Record 146Master-Nameserver 255Matching, Reguläre Ausdrücke

560Math, Java-Klasse 490Mathematische Aussage 58Mathematische Funktion, Unde-

finiertheitsstelle 93Mathematische Variable 59Mathematischer Term 58Matrixdrucker 163Maus 157MAX, SQL-Funktion 702

Maximum Transmission Unit (MTU) 232

MBR � Master Boot Recordmd � mkdir, Windows-BefehlMDI, Windows-Anwendungen

327Mechanische Datenverarbeitung

25Media Access Control (MAC) 178Median, QuickSort 547Mediator, Entwurfsmuster 664MediaWiki, Wikipedia-Software

989Medieninformatik 32MEDIUMBLOB, SQL-Datentyp

698MEDIUMINT, SQL-Datentyp 697MEDIUMTEXT, SQL-Datentyp

698Medizinische Informatik 32Megabyte 79Megapixel (Digitalkamera) 159Mehrfachvererbung 494Mehrspaltenlayout (CSS3) 921mem.h, C-Bibliothek 551Memento, Entwurfsmuster 664Memory Management Unit

� MMUMena, Federico 424Menge

diskrete 53leere 70

Mengenoperation 67Differenzmenge 70echte Obermenge 68echte Teilmenge 68Element 67leere Menge 70Obermenge 68Schnittmenge 70Teilmenge 67Vereinigungsmenge 70Verknüpfung 69

Menu, AWT-Klasse 619MenuBar, AWT-Klasse 619MenuItem, AWT-Klasse 619Message-Digest 1081Message-Passing 609METAFONT, TeX-Zeichensätze

848

Methode 484Callback 569statische (PHP) 942überladen 492

Metropolitan Area Network 187Microsoft 40, 286

ASP.NET 986BizTalk Server 363Exchange Server 363Management Console (MMC)

352MS-DOS 286SQL Server 363, 686Systems Management Server

363Windows 287, 319Windows 2000 288Windows 95 288Windows 98 288Windows Me 288Windows NT 287Windows Phone 45Windows XP 288Windows, Versionsübersicht 320

Microsoft Azure 989Microsoft Virtual PC 312MIDI 166, 1094

FM-Synthese 166Wavetable-Synthese 167

MigrationRuby on Rails 976

Mikrokernel 291mach 292, 438

Mikroprozessor 114Mikroprozessor � ProzessorMilNet 173MIME 1094

E-Mail-Nachricht 263MIME-Multipart-Nachricht 264MIME-Nachrichtenheader 263MIME-Type

HTML-Plug-in-Formate 902XML-Dokument 793

MIME-Types 264im HTTP-Header 271

MIN, SQL-Funktion 702Minicomputer 39Minix, Lehrbetriebssystem 288MIPS (CPU-Geschwindigkeit) 120MIPS, Prozessor 122

Index

1148

Mirroring (RAID) 149Mission Control, Mac OS X 452MITS 40Mixed-Mode-CD 152mkdir, Unix-Befehl 387mkdir, Windows-Befehl 337mkfs, Unix-Befehl 393MMC (Microsoft Management

Console) 352MMU 118, 303, 1094

Seitentabelle 303MMX (CPU-Befehlserweiterung)

121Mnemonic 101, 1088Mnemonics 46Mobile Datenübertragung

EDGE 216GPRS 216HSPA (HSDPA/HSUPA) 216UMTS 216

MobilfunkInternetzugang über 216

Mock-Objekt (Unit-Tests) 969mod_alias, Apache-Modul 746,

752mod_alias, Apache-Module 753mod_auth_basic, Apache-Modul

748mod_auth_digest, Apache-Modul

748mod_authn_file, Apache-Modul

748mod_authz_host, Apache-Modul

746, 749, 752mod_dir, Apache-Modul 749mod_so, Apache-Modul 750Model

Ruby on Rails 976Model, View, Controller � MVC-

EntwurfsmusterModem 211

anschließen 211AT-Befehlssatz 211Handshake 212Hayes-Befehlssatz 211Pulswahl 212Tonwahl 212

modprobe, Linux-Befehl 402Modularisierung

Programme 474

Modularisierung, Programme 48Modularität, von Unix 284Modulo, Operator 465Molenaar, Bram 410Mongrel, Ruby-Webserver 979Mongrel, Webserver 985Monitor 161

Bildwiederholrate 162Konfiguration, Mac OS X 448LCD 162mehrere verwenden 161Röhrenmonitor 161Zeilenfrequenz 162

Monolithischer Kernel 291Moore, Gordon 118Mooresches Gesetz 118more, Unix-Befehl 389MosTek 43MosTek 6502, Prozessor 119Motherboard � MainboardMotorola 68000, Prozessor-

familie 119mount, Unix-Befehl 392Mounten 1094

Dateisystem 308Dateisystem, Unix 392NFS-Freigabe 431

MouseListener 621MouseMotionListener 622MovableType, Blog-Tool 988MOV-Befehl

beim virtuellen Prozessor 102x86-Assembler 124

move, Windows-Befehl 337MP3, Audio-Dateiformat 858,

1094MP4, Audio-Dateiformat 858MPEG 1094

Video-Dateiformat 859MS Access, Datenbank 686MS-DOS 286

Kommandozeile 334MS-DOS-Anwendung

unter Win32 321MTU 232, 1094Multi Document Interface � MDI,

Windows-AnwendungenMulticasting, IP-Protokoll 222MULTICS 284Multimedia-Datenbank 677

Multipart-E-Mail 264Multiplexer (Schaltung) 86Multiplikation, Operator 465Multiplikator

bei Rambus-RAM 126der Taktfrequenz 119

Multisession-CD 153Multitasking 293, 298

kooperatives 293präemptives 293Unterstützung durch CPU 116

mv, Unix-Befehl 385MVC-Entwurfsmuster 661, 973MX-Record, BIND-Nameserver

773my, Perl-Variablendeklaration

501my.cnf, MySQL-Konfigurations-

datei 715MyISAM, MySQL-Tabellentyp

705MyISAM-Tabelle (MySQL) 686MySQL 689

Authentifizierung 707Backup 712Backups automatisieren 714Benutzerrechte 709Benutzerverwaltung 707CREATE USER, Anweisung 708Datentypen 697DROP USER, Anweisung 712Export 712Export in Textdateien 715FLUSH PRIVILEGES, Anwei-

sung 712FLUSH TABLES, Anweisung 714GRANT, Anweisung 709Import 712Import aus Textdateien 715InnoDB-Tabelle 686Installation, Unix 690Installation, Windows 691JDBC-Anbindung 720Konfiguration, Windows 692Konfigurationsdateien 715LOAD DATA INFILE, Anweisung

715Log-Datei lesen 717Log-Dateien 716my.cnf 715

Index

1149

MySQL (Forts.)MyISAM-Tabelle 686MySQL Administrator 691MySQL Query Browser 691mysqladmin, Hilfsprogramm

706mysqlbinlog, Hilfsprogramm

717mysqldump, Hilfsprogramm 712mysqli, PHP-Schnittstelle 959mysql-Kommandozeilen-Client

693PHP-Zugriff auf 954Replikation 718REVOKE, Anweisung 711SET PASSWORD, Anweisung

709Sicherheitshinweise, Unix 691Sicherheitshinweise, Windows

693Tabellentypen 705Testdatenbank 954Transaktion 686, 705

MySQL Connector/J, JDBC-Schnittstelle 720

MySQL Grant Table 690mysqladmin, Hilfsprogramm 706mysqlbinlog, Hilfsprogramm 717mysql-Client

nicht-interaktiver Betrieb 714mysqldump, Hilfsprogramm 712mysqli

real_escape_string(), PHP-Methode 966

mysqli-Schnittstelle 959

N

Nachrichtenübermittlung 609Nadeldrucker 163Namensraum

XML 815Nameserver

BIND 767Master 255Slave 255

Namespace, PHP 948NameVirtualHost, Apache-Direk-

tive 751

Nassi-Shneiderman-Strukto-gramm 92

NAT 1094NAT, IP-Protokoll 245

IP-Masquerading 245nat, iptables-Tabelle 1076Natürliche Zahl 68navigator, JavaScript-Objekt

1019ne, Perl-Operator 505Nebenläufigkeit 563Nessus 1075.NET 1094.NET Framework 51NetBEUI 1094NetBEUI, Netzwerkprotokoll 277NetBIOS, Windows-Netzwerk

277Netbook 112netfilter, Linux-Kernel-Firewall

1076Netscape-Palette 912netstat, TCP/IP-Dienstprogramm

359Routing-Tabellen anzeigen 239

Network Address Translation (NAT) 245

Network File System � NFSNetzplan 642

kritischer Pfad 643Netzwerk 169

Anwendungsgebiete 170ARCNet 209ATM 208Client-Server 189drahtloses 204Drucker freigeben, Windows

361Ethernet 197FDDI 209Funktionsebene 176GAN (Global Area Network) 187Geschichte 171Hardware 169, 196IEEE-802-Standard 196Klassifizierung 186Konfiguration, Linux 428Konfiguration, Mac OS X 449Konfiguration, Windows 355LAN (Local Area Network) 186

Netzwerk (Forts.)Logical Link Control 178lokales, Entwicklung 41MAN (Metropolitan Area

Network) 187Media Access Control 178Netzwerkprogrammierung 571OSI-Referenzmodell 177OSI-Schicht 178Peer-to-Peer 189Protokoll 170, 217Reichweite 186TCP/IP-Protokoll 217Token Ring 202Topologie 188Verkabelung 169WAN (Wide Area Network) 187Zentralisierungsgrad 189Zugang per Modem 211Zugang über DSL 214Zugang über ISDN 212

NetzwerkclientDefinition 190

NetzwerkeDenial-of-Service-Angriff 359Schichtenmodell 176

Netzwerkhardware 196Ethernet 199ISDN-Adapter 213Modem 211

Netzwerkprogrammierung 571Berkeley Socket API 571IO::Socket 577sockaddr_in 573Socket 571

Netzwerkprotokoll 170AppleTalk 272IPX/SPX 275NetBEUI 277

NetzwerkserverDefinition 190

Netzwerktopologie 188Baum 188Bus 188logische 189physikalische 189Ring 188Stern 188

Netzzugang, DDN-Modell-Schicht 180

Index

1150

NetzzugangsverfahrenCSMA/CA 206CSMA/CD 198IEEE-802-Standard 196Token Passing 202

Neumann, John von 37, 111Neuronales Netz 45Neustart

Betriebssystem, Unix 397Windows 329

new, Java-Operator 488Newsfeed 988Newsgroup 267

Hierarchie 268NNTP-Protokoll 267

NeXT 437NFS 430, 1094

/etc/exports, Konfigurations-datei 431

auf andere Server zugreifen 431starten 431Verzeichnis freigeben 431

NNTP 267, 1094Header 268

Normalform, RDBMS 683Normalisierung 1094Normalisierung, RDBMS 683NOR-Schaltung 84NoSQL-Datenbank 677, 724NoSQL-Datenbanken 1094Notebook 112NOT-Schaltung 84Novell NetWare 176NSFNet 173nslookup, TCP/IP-Dienstpro-

gramm 359NS-Record (DNS) 772NTBA (ISDN-Endgerät) 213NTFS, Dateisystem 324Nucleus, Blog-Tool und CMS 988Null

im Stellenwertsystem 35NULL, leerer C-Zeiger 481NULL, SQL-Feldoption 699Null-terminierter String 477Nyquist-Theorem 1094, 1096

O

o, LDAP-Attribut 776Obermenge 68

echte 68Object Database Management

Group � ODMGObject Definition Language

� ODLObject Management Group

(OMG) 654Object Query Language � OQLObject, Java-Klasse 490objectClass (LDAP) 775objectClass, LDAP-Attribut 776Objective-C, Programmier-

sprache 439Objekt 50, 484Objektorientierte Analyse 644Objektorientierte Datenbank

677, 686Abfrage 689ODL 688OQL 689

Objektorientiertes Datenbankver-waltungssystem � OODBMS

Objektorientierung 50, 484, 1094Eigenschaften 484Elternklasse 493Ereignis 608im Software-Engineering 637Instanz 485Instanz erzeugen, Java 488Interface, Java 494IS A-Beziehung 657Java 490Kapselung 50, 485Kindklasse 493Klasse 484Klassen 50Konstruktor 491Methode 484Nachricht 608Objekt 484Perl 577PHP 936Überladung 492Vererbung 50, 493

Observer, Entwurfsmuster 664

ODBC 1095ODBC, Microsoft-Datenbank-

schnittstelle 720Oder-Schaltung � OR-SchaltungOder-Verknüpfung � OR-Ver-

knüpfungODL 688ODMG 687OFDM, WLAN-Technik 205OGG Vorbis, Audio-Dateiformat

858Oktalsystem 74

in dual umrechnen 77Oktalzahl

C 464OMG � Object Management

GroupOnboard-Hardware 115Onlinedienst 174Online-Durchsuchung 1065O-Notation 1094O-Notation (Komplexität) 94onreadystatechange, Ajax-Eigen-

schaft 1037OODBMS 687OOP � Objektorientierungopacity (CSS3) 921Open Database Connectivity

� ODBC, Microsoft-Daten-bankschnittstelle

open(), Ajax-Methode 1037open, Perl-Anweisung 509opendir, Perl-Anweisung 510OpenGL, 3D-Grafikbibliothek

439OpenOffice.org Base, Datenbank

686OpenSSH 258openSUSE, Linux-Distribution

365Operator 466

-- 467! 465!= 466!~ 560$, RegExp 559& 475&&, C 465&&, Perl 507&, C 465

Index

1151

Operator (Forts.)*, RegExp 557++ 467+, Java-String-Verkettung 488+, RegExp 557-, C 478., Perl 506= 466–467== 466=~ 560=~, Perl 510? 468?, RegExp 557^, C 466^, RegExp 557, 559`` 565| 466|, RegExp 559|| 465~ 466arithmetischer 465Backticks 565Bit-Komplement 466Bit-Verschiebung, links 466Bit-Verschiebung, rechts 466bitweise 465bitweises exklusives Oder 466eq, Perl 505Fallunterscheidungs- 468ge, Perl 506Gleichheit 466größer oder gleich 466gt, Perl 506in C 465in der PowerShell 339kleiner als 466kleiner oder gleich 466le, Perl 506logischer 465logisches Oder 465logisches Und 465lt, Perl 506m// 560Menge 67ne, Perl 505Perl 504PHP 926Post-Dekrement 468Post-Inkrement 467Prä-Dekrement 467

Operator (Forts.)Prä-Inkrement 467Rangfolge 468Rangfolge durch Klammern

ändern 468s/// 560s///, Perl 510Stringvergleiche, Perl 505String-Verkettung, Java 488tr/// 561Ungleichheit 466Vergleichs- 65, 466Wertzuweisung 467

Operatoren- 465% 465* 465+ 465/ 465Addition 465bitweises Oder 466bitweises Und 465Division 465größer als 466logisches Nicht 465Modulo 465Multiplikation 465Subtraktion 465

opt, Unix-Verzeichnis 306Option

bei Systemprogrammen 373Options, Apache-Direktive 751Optischer Datenträger 143OQL 689Oracle, Datenbank 686Orange Book 1095Orange Book (CD-R, CD-RW) 152ORDER BY, SQL-Klausel 702Order, Apache-Direktive 752Ordnungsdaten 676org.w3c.dom.*, Java-Package 834org.xml.sax.*, Java-Package 827Organisationseinheit (LDAP) 774OR-Schaltung 85

Aufbau mit Transistoren 85mit einfachen Mitteln nach-

bauen 84OR-Verknüpfung 61OS/2, Betriebssystem 287

OSI-Referenzmodell 177, 1095Anwendungsschicht 179Bitübertragungsschicht 177Darstellungsschicht 179Kommunikationssteuerungs-

schicht 179Netzwerkschicht 178Präsentationsschicht 179Sicherungsschicht 178Sitzungsschicht 179Transportschicht 178Vergleich mit der Praxis 179Vergleich zum Internet-Schichten-

modell 180OSPF 1095OSPF, Routing-Protokoll 243ou-Knoten (LDAP) 774OUTPUT, iptables-Chain 1076Outsourcing (Computertechnik)

175Overclocking � Übertakten

P

Paar, Extreme Programming 652PaaS (Platform as a Service) 989Packet Switching 170padding, CSS-Angabe 914Page Fault (Speicher) 303Page File (Auslagerungsdatei) 303Pager (seitenweise anzeigen, Unix)

389Paging (Speicher) 118, 303paint(), AWT-Methode 610Paketfilter

iptables 1076netfilter 1076

PaketmanagerLinux 401

Paketvermittlung 170Panel, AWT-Klasse 610, 619papaya CMS 987Papierkorb

Mac OS X 443Parallele Datenübertragung 133Parallelport 141Parallels Desktop 313Parameter

bei Systemprogrammen 373von Perl-Subroutinen 508

Index

1152

PARC, XEROX-Forschungszent-rum 287

parent, PHP-Schlüsselwort 946Parent-Prozess 299, 1095Parity Bit � PrüfbitparseFloat(), JavaScript-Methode

998parseInt(), Java-Methode 544parseInt(), JavaScript-Methode

998Partition

erweiterte 147logische 148primäre 146

Partitionierung 1095praktische Durchführung 148

Partitionierung (Festplatte) 146Partitionstabelle 146Partitionstypen 147Pascal, Blaise 35Pascal, Programmiersprache 48passwd, Unix-Befehl 395Passwort 1075

Brute-Force-Attacke 370crack (Knackprogramm) 369Erzeugungstipps 370

Passwort, ändern, Unix 395Patch

Sicherheit 1062patch, Unix-Befehl 392path, Umgebungsvariable

Windows 336PATH, Umgebungsvariable (Unix)

374pause(), Unix-Systemaufruf 299PC 42

Aufbau 113Desktop 111Geschichte 286Kompaktrechner 112Laptop 112Netbook 112Notebook 112Varianten 111Zentraleinheit 113

PC-Card � PCMCIA-AnschlussPCDATA, Text in XML 799PCI 137, 1095PCMCIA-Anschluss 138

PC-NetzwerkEntwicklung 176

PDA (Personal Digital Assistent) 45

PDF 1095PDP, Kleincomputerserie von DEC

284PDP, Kleinrechnerserie von DEC

39, 49Pentium, Prozessorfamilie 115,

121people, LDAP-Organisationsein-

heit 774Peripherie

Ausgabegerät 160Digitalkamera 159Drucker 163Eingabegerät 156Einsteckkarte 137Grafikkarte 160Maus 157Monitor 161Scanner 158Tastatur 157Übersicht 142

Perl, Programmiersprache 497, 1095!~-Operator 560$ 499, 501$/-Variable 840$_ 502$-Operator, RegExp 559% 501&&-Operator 507*-Operator, RegExp 557+-Operator, RegExp 557.-Operator 506//-Operator 560=~ 510=~-Operator 560?-Operator 557@ 501@_ 508^-Operator, RegExp 557, 559|| zur Fallunterscheidung 506||-Operator 506|-Operator, RegExp 559accept()-Funktion 577ActivePerl-Distribution 498

Perl, Programmiersprache (Forts.)alternative Zeichen in RegExp

557Anführungszeichen 505Array 501Array-Elementanzahl 545Arrays zusammenfassen 503Ausdruck 504Ausgabe 499Autoflush-Modus 576Backticks 565bind()-Funktion 576chomp-Funktion 500close 509closedir 510connect()-Funktion 575Datei bearbeiten 509Dateihandle 509defined 507Dereferenzierung 504die, Programmabbruch 507Eingabe 499elsif 507eq-Operator 505ersetzen durch RegExp 560foreach-Schleife 502ge-Operator 506gethostbyname()-Funktion 573getprotobyname()-Funktion 573getservbyname()-Funktion 574gt-Operator 506Hash 501HIER-Dokumente 506if, nachgestelltes 507IO 576–577join 503keys 503Kommentar 504le-Operator 506Liste 501listen()-Funktion 576Listenfunktionen 502Literal 504lt-Operator 506m//-Operator 556my 501ne-Operator 505Objektorientierung 577open 509opendir 510

Index

1153

Perl, Programmiersprache (Forts.)Operator 504Operatoren 499Parameter von Subroutinen 508Pipe verwenden 565pipe() 566pop 502print-Anweisung 499Programm starten 498Programmabbruch 507push 502q// 505qq// 505Queue 550qw// 505readdir 510Referenz 503regulärer Ausdruck 510, 555s///-Operator 510, 556, 560Shebang 498shift 502Skalar 499, 501Socket-Modul 572split 503Stack 550strenge Wertüberprüfung 500strict 500String zerlegen 503String-Vergleich 505String-Verkettung 506sub 508Subroutine 508tr///-Operator 561unless 507unshift 502use-Direktive 500Variable 500Variablenexistenz prüfen 507Variablensubstitution 500Verzeichnis verarbeiten 510-w, Modifikator 499Warnungen aktivieren 499Zeichengruppe in RegExp 557Zeilenumbruch 840Zeilenumbrüche entfernen 500

Perl-Anweisung 507Permutation

Algorithmus 95person, LDAP-Objektklasse 775Personal Computer � PC

Personal Digital Assistant (PDA) 45

Petabyte 79Pfad

absoluter 307, 310in HTML-Hyperlink 880relativer 307, 310unter Unix 306unter Windows 309

PGP 1081, 1095Phishing 1067, 1095PHP 923, 1095

$, Variablenbeginn 925__call(), magische Methode 947__get(), magische Methode 946__isset(), magische Methode 947__set(), magische Methode 946__toString(), magische Methode

937Ajax-Antwort durch 1040Anführungszeichen 928Array 926Array als Hash 927Array, mehrdimensionales 929Attribut, statisches 942Autoloader 948Bezeichner 925Call by Reference 934Cookie 952count()-Funktion 928Datei-Upload 950Datenbank-Escaping 966Datenbankzugriff 954Datentyp testen 936Docblock-Kommentar 931Dokumentaufbau 924each()-Funktion 928Elternklasse ansprechen 946Escaping der Ausgabe 938explode()-Funktion 929extends, Schlüsselwort 943function, Schlüsselwort 932Funktion 932Funktionsparameter 933Funktionswertrückgabe 934global 932globale Variable 932htmlspecialchars(), Funktion

938implode()-Funktion 929

PHP (Forts.)include()-Funktion 947include_once()-Funktion 947Include-Datei 947Installation 759is_array()-Funktion 936is_float()-Funktion 936is_int()-Funktion 936is_null()-Funktion 936is_numeric()-Funktion 936is_string()-Funktion 936isset()-Funktion 936json_encode(), Funktion 1051Kommentar 931Konstruktor 938magische Methode 937, 946mehrdimensionales Array 929Mock-Objekt für Unit-Tests 969mysqli-Schnittstelle 959Namespace 948Objektorientierung 936Operator 926parent, Schlüsselwort 946php.ini, Konfigurationsdatei

763preg_match()-Funktion 930preg_replace()-Funktion 930Referenz 934regulärer Ausdruck 930require_once()-Funktion 947return-Anweisung 934Session 951sizeof()-Funktion 928Sprachgrundlagen 925static, Schlüsselwort 942statische Methode 942str_replace(), Funktion 948String zerlegen 929strip_tags(), Funktion 938Type Hint 942Unit-Test 966unset()-Funktion 936Variable 925Vererbung 943webspezifische Funktionen 948

php.ini, Konfigurationsdatei 763PHPDocumentor 931PHPUnit 1095

Mock-Objekt 969PHPUnit, Test-Framework 966

Index

1154

PICT, Bilddateiformat 857PID (Prozess-ID) 299ping, TCP/IP-Dienstprogramm

357Ergebnisse auswerten 358

Pipe 1095Anwendung 565in Programmiersprachen 563in Unix-Shell 382Perl 565Windows 335zur Inter-Prozess-Kommunikation

300pipe(), Perl-Funktion 566Pipeline (CPU-Warteschlange)

121Pixelgrafik 53PKZIP-Dateien � ZIP-DateiPlankalkül, Programmiersprache

36Planung, Software-Engineering

640Platform as a Service 989Platzhalter

in Unix-Dateinamen 384Windows-Dateiname 335

Plug & Play 137, 1095Pluralisierung

Ruby on Rails 976PNG, Bilddateiformat 856Point 1095Polymorpher Virus 1060Polynomielle Komplexität 95pop, Perl-Anweisung 502POP3 266, 1095

Befehle 267Sitzung 266

PortTCP 249

Port, UDP 251position, CSS-Angabe 916POSIX 1095posixAccount, LDAP-Objekt-

klasse 775POSIX-Standard 285POST 129POST (BIOS-Selbsttest) 129POST, HTTP-Befehl 271

POST, HTTP-Methodezum HTML-Formularversand

895Post-Dekrement 468PostgreSQL 686Post-Inkrement 467POSTROUTING, iptables-chain

1076PostScript 165, 849, 1095

EPS 850PPD 849

Power Management 131Power-on Self Test � POSTPowerPC, Prozessor 119PowerShell 337

Benutzereingabe 343Cmdlets 338Datentypen 343Fallentscheidung 343Get-Alias, Cmdlet 338Get-ChildItem, Cmdlet 338Get-Command, Cmdlet 338Kontrollstruktur 343Operator 339Read-Host, Cmdlet 343Schleife 344Skriptdatei 346Variable 342Write-Host, Cmdlet 342

PPD, Druckerbeschreibungsdatei 849

PPP 1095PPP-Protokoll, DFÜ 210Prä-Dekrement 467Prädikatenlogik 51, 57, 1095Präemptives Multitasking 293Prä-Inkrement 467Praktische Informatik 26Präprozessor, C 482

#define 482#endif 482#ifdef 482#include 459, 482

Präsentation, OSI-Schicht 179preg_match(), PHP-Funktion 930preg_replace(), PHP-Funktion

930PREROUTING, iptables-Chain

1076Primäre Partition 146

Primärschlüssel 680, 1095einrichten, SQL 699

PRIMARY KEY, SQL-Feldoption 699

print(), Java-Methode 487print, Perl-Anweisung 499printf(), C-Funktion 460, 479

Formatangabe 460println(), Java-Methode 487Printserver 192private, Java-Kapselung 491Problemorientierte Programmier-

sprache 47Programmablaufplan 92Programmgesteuerter Rechen-

automat 33Programmiersprach

PHP 923Programmiersprache 45

Ada 35Algorithmus 541Anweisungsblock 469Assembler 46BASIC 48Baum, Datenstruktur 553binäre Suche 549C 49, 284, 456C# 51C++ 51Clojure 51Cobol 47Compiler 47, 124Datenstruktur 541Datenstrukturen 550deklarative 51Erlang 51Fortran 47Funktion 48funktionale 51GUI-Programmierung 608imperative 48Interpreter 47, 497Iteration 546Java 51, 483Kontrollstrukturen, C 469lineare Suche 548LISP 51, 422logische 51Logo 51Maschinensprache 45

Index

1155

Programmiersprache (Forts.)mit Datenbanken arbeiten 720Modularisierung 48, 474Objective-C 439objektorientierte 50Objektorientierung 484Pascal 48Perl 497Pipe 563Plankalkül 36problemorientierte 47Prolog 51prozedurale 48Rekursion 546Scala 52Skriptsprachen 47, 497Smalltalk 50Sortier-Algorithmus 544Strukturierung 48, 474Such-Algorithmus 548Systemaufruf 125, 563Thread 567Turing-Vollständigkeit 100Unicode-Unterstützung 845

ProgrammiersprachenProzedur 48

Programmstrukturierung 48Projektmanagement 640

Netzplan 642Prolog, Programmiersprache 51PROM 127Prompt 1095

Unix 371prompt(), JavaScript-Methode

996protected, Java-Kapselung 493Prototype, Ajax-Bibliothek 1053Prototype, Entwurfsmuster 663Proxy, Entwurfsmuster 664Prozedur 48Prozedurale Programmier-

sprache 48Prozess

als Baum anzeigen, Unix 396Benutzermodus 299Child-Prozess 299Definition 298duplizierter 563im Benutzermodus 292in den Hintergrund stellen 373

Prozess (Forts.)init 299Kernelmodus 299Kommunikation 300Management durch Betriebs-

system 281Multitasking 298Parent-Prozess 299Prozess-ID (PID) 299Race Condition 301Signalverarbeitung 299Threads als Alternative 302unter Unix 298Unterstützung durch CPU 116,

123Verwaltung durch Betriebssys-

tem 298Verwaltung, Unix 395Windows 300

Prozessanalyse 644Prozesse 1095

Deadlock 301im Kernelmodus 292

Prozess-ID 299Prozessmanagement 281Prozessor 37, 114

3D Now! 121Adressbus-Wortbreite 119Alpha 119, 122als Bauteil 115ALU 116AMD 115Arbeitsweise 122Architektur 121Athlon 115, 121Aufbau 115bedingter Sprung 123Befehlstabelle 116Befehlszeiger 116Bestandteile 116Bus 117Cache 117CISC 121Datenbus-Wortbreite 118der Grafikkarte 160Effizienz 120FLOPS 120Intel 115Itanium 119Maschinenbefehle 124

Prozessor (Forts.)MIPS 122MIPS (Geschwindigkeitsangabe)

120MMX 121Mooresches Gesetz 118MosTek 6502 119Motorola-68000-Familie 119Pentium-Familie 115, 121Pipeline 121PowerPC 119Prozesse 123Register 116Registerwortbreite 118RISC 121Sprungbefehl 122Stack 123Steuerbus-Wortbreite 119Steuerwerk 116Sun SPARC 122Taktfrequenz 119übertakten 120unbedingter Sprung 122Unterprogramm-Aufruf 123virtueller 100Wortbreite 118Wortbreiten-Vergleich 119Z80 119

Prozessorarchitektur 121Prozessverwaltung 298Prüfbit 134Prüfung

IT-Berufe 30ps, Unix-Befehl 300, 395PS/2-Anschluss 141PSD, Bilddateiformat 854Pseudocode, zur Algorithmen-

darstellung 92pstree, Unix-Befehl 396PTR-Record (DNS) 772public, Java-Kapselung 486, 491Public-Key-Verschlüsselung 1080Pulswahlverfahren 212Punkt 1095push, Perl-Anweisung 502puts(), C-Funktion 460, 479pwd, Unix-Befehl 387

Index

1156

Q

q//, Perl-Quoting 505QBit 45qq//, Perl-Quoting 505Qt, Grafikbibliothek 424–425Quadratische Komplexität 95Qualitätsmanagement 641Quantencomputer 45Quantifizierer (RegExp) 557Quartz, Grafikbibliothek 439Queue 1095Queue, Datenstruktur 550

Perl 550QUEUE, iptables-Regel 1077QuickEdit-Modus, Windows-Ein-

gabeaufforderung 335QuickSort 1096QuickSort, Algorithmus 547

Funktionsprinzip 547Median 547

QuickTime, Multimedia-Technolo-gie 439

QuickTime, Video-Dateiformat 858

qw//, Perl-Quoting 505

R

Race Condition 301, 1096Rackspace Cloud Services 989radio_button, Rails-Methode 984RAID 148, 1096

Advanced Data Guarding 149Levels 148Mirroring 149Stripe Set 148Stripe Set mit Parity 149

RAID 0 148RAID 01 149RAID 1 149RAID 10 149RAID 5 149RAID 6 149Rails 1096Rails � Ruby on Railsrails, Generator 974RAILS_ENV, Umgebungsvariable

975rake, Ruby-Automatisierung 977

RAM 114, 125als Bauteil 125Auslagerungsdatei 303Bedeutung in der Speicher-

hierarchie 117CMOS 129DDR-RAM 126der Grafikkarte 160DIMM-Module 126dynamic 125EDO 126einbauen 126empfohlene Menge 127FP 126Paging 303Rambus 126RD-RAM 126RIMM-Modul 126SD-RAM 126Segmentierung 303Seitenfehler 303SIMM-Module 126static 125Verwaltung durch das Betriebs-

system 302virtuelle Adressierung 302

Rambus-RAM 126RAMDAC (Grafikkarte) 161Random Access Memory � RAMRangfolge

durch Klammern ändern 468Operatoren 468

Rational Unified Process 650Rationale Zahl 68Raumfolgearithmetik 80rd � rmdir, Windows-BefehlRDBMS 1096RDBMS � Relationale DatenbankRD-RAM 126readdir, Perl-Anweisung 510Read-Host, PowerShell-Cmdlet

343readLine(), Java-Methode 487Read-only Memory � ROMreadyState, Ajax-Eigenschaft

1037REAL, SQL-Datentyp 697Rechenautomat 33Rechenbefehl

des virtuellen Prozessors 102

Rechendaten 676Rechenmaschine

mechanische 35Rechentafel 35Rechenwerk 111Record � DatensatzRed Book (Audio-CD) 151Red, Green, Refactor (TDD) 671Redirect, Apache-Direktive 752redirect_to, Rails-Methode 981Reelle Zahl 69Referenz

auflösen, Perl 504Perl 503

regedit, Windows-Dienst-programm 354

RegExp � Regulärer AusdruckRegionale Einstellungen

Mac OS X 448Register 1096

der CPU 116des virtuellen Prozessors 100Wortbreite 118

Register (Schaltung) 90Registermaschine 100, 1096Registrierdatenbank � Registry,

WindowsRegistry, Windows 353Regulärer Ausdruck 555, 1096

!~, Operator 560=~, Perl-Operator 560Alternative Textteile 559alternative Zeichen 557beliebig viele Zeichen 557ein oder mehr Zeichen 557ersetzen 560Escape-Sequenz 558grep 390Groß- und Kleinschreibung

ignorieren 559in PHP 930JavaScript 1006Klammern 559Leerzeichen 558m//, Operator 560m//-Operator 556Matching 560mehrere Treffer finden 559Modifikator 559Muster 556

Index

1157

Regulärer Ausdruck (Forts.)optionale Zeichen 557Perl 510, 555Quantifizierer 557s///-Operator 556, 560Sonderzeichen 558Teilausdruck 559Whitespace 558Wortgrenze 558Wortzeichen 558Zeichen ausschließen 557Zeichenanzahl 558Zeichengruppe 557Zeilenanfang 559Zeilenende 559Ziffer 558

Regulärer Ausdruckein Ruby 562

reiserfs, Linux-Dateisystem 393REJECT, iptables-Regel 1077Rekursion 546, 1096Relais 36Relation

im RDBMS 680Relationale Algebra 679Relationale Datenbank 676, 679,

10961:1-Beziehung 6801:n-Beziehung 680Access 686Änderungsabfrage 695Arten 686atomare Information 683Auswahlabfrage 682, 694Boyce-Codd-Normalform 684Desktopdatenbank 686Einfügeabfrage 694FileMaker 686freier Server 686Fremdschlüssel 680Grenzen 687Index 680Java-Programmierung 720JDBC 720kommerzieller Server 686Konsistenz 679Löschabfrage 695m:n-Beziehung 681MySQL 689Normalform 683

Relationale Datenbank (Forts.)Normalisierung 683ODBC 720OpenOffice.org Base 686PostgreSQL 686Primärschlüssel 680Primärschlüssel einrichten, SQL

699Programmierung 720Relation 680Schlüssel 680SQL 683, 694Tabelle erzeugen, SQL 695Tabelle löschen, SQL 696

Relationale Datenbank, Join-Abhängigkeit 685

Relativer Pfad 307, 310Remote Method Invocation

� RMI, Javarename, Windows-Befehl 337repaint(), AWT-Methode 618Replikation 172

MySQL 718Request For Comments � RFCRequire, Apache-Direktive 747,

752require_once(), PHP-Funktion

947RequireAll, Apache-Direktive

753RequireAny, Apache-Direktive

753RequireNone, Apache-Direktive

753Resource Fork, HFS 448

Creator ID 448File Type ID 448

responseText, Ajax-Eigenschaft 1039

responseXML, Ajax-Eigenschaft 1043, 1045

RessourceHardware- 135Plug & Play 137Zuweisung 137

Ressourcenmanagement 641REST 1096ResultSet, JDBC-Klasse 722Resume, Mac OS X 452return, C-Anweisung 460, 474

RETURN, iptables-Regel 1077REVOKE, MySQL-Anweisung

711RFC 173, 1096

1034 und 1035, DNS 2531300 1731723, RIP-2 2431738, URL 2701918, private IP-Adressen 2242045 bis 2049, MIME 2632060, IMAP 2672131 und 2123, DHCP 2442178, OSPF 2432324, HTCPCP 1732460, IPv6 2332616, HTTP 2692821, SMTP (Neufassung) 2622822, Textnachricht 2633330, Spezial-IP-Adressen 224768, UDP 247791, IP-Protokoll 220793, TCP 247821, SMTP 262822, Textnachricht 263854, Telnet 257959, FTP 259977, NNTP 267

RGB-Farbe 54Rhapsody (Mac OS X) 437RIMM-Modul (RAM) 126Ring-Topologie, Netzwerk 188RIP 1096RIP, Routing-Protokoll 242RISC 1096RISC-Prozessor 121

Beispiele 122Risikomanagement 642Ritchie, Dennis 49, 284, 457rm, Unix-Befehl 386rmdir, Unix-Befehl 387rmdir, Windows-Befehl 337RMI (Remote Method Invoca-

tion) 1096RMI, Java 600robots.txt, Suchmaschinen-Info

907Röhrenmonitor 161Röhrenrechner 36Rollback (Transaktionen) 685ROLLBACK, SQL-Anweisung 705

Index

1158

Rollover-EffektJavaScript 1013praktische JavaScript-Lösung

1014ROM 114, 127

Bauarten 127Bedeutung 114bei 8-Bit-Homecomputern 114BIOS 127

Römische Zahl 73root, Benutzer 300

Home-Verzeichnis 306temporär arbeiten als 377

root, Unix-Benutzer 369root, Unix-Verzeichnis 306Rootkit 1072ROT13 1079Roter Balken (Unit-Test) 670Round-Robin-DNS 772route, Unix-Befehl 429Router 1096Router, IP-Protokoll 237Routing

autonomes System 241DE-CIX 242IP-Protokoll 236

Routing-Protokoll 241BGP 243OSPF 243RIP 242

Routing-Tabelle 239anzeigen 239

rpm, Linux-Paketmanager 401RS-232 141RS-Flip-Flop 89RSS, Newsfeed-Format 988Ruby 1096

gsub, Methode 562rake, Automatisierungstool 977regulärer Ausdruck 562Singleton, Modul 667sub, Methode 562

Ruby on Rails 973, 1096Action Mailer 973Action Pack 973Action Web Service 973Active Record 973Active Support 973Anwendung erzeugen 974Anwendung testen 979

Ruby on Rails (Forts.)belongs_to, Relation 977Capistrano, Deployment-Tool

985console 978Controller 980Convention over Configuration

974create, Methode 978create_table, Methode 976database.yml, Konfigurations-

datei 975Datensätze ändern 979Deployment 985Designprinzipien 974Don’t Repeat Yourself 974eRuby 980find, Methode 978flash, Zwischenspeicher 984form_tag, Methode 984Formular 984Fremdschlüssel 977Generator 974has_and_belongs_to_many,

Relation 977has_many, Relation 977Helper 982Installation 974interaktive Konsole 978Komponenten 973Migration 976Model erzeugen 976Mongrel, Webserver 979, 985Pluralisierung 976Praxisbeispiel 974radio_button, Methode 984rails, Generator 974RAILS_ENV, Umgebungsvari-

able 975rake db:migrate 977redirect_to, Methode 981Relation 977Scaffolding 979Startseite 981submit_tag, Methode 985Verzeichnisstruktur 974View 980

Rumbaugh, James 654run(), Java-Methode 568Runlevel (Unix) 399

Runnable, Interface 568Runnable, Java-Interface 495

S

s///, Perl-Operator 510, 556, 560SaaS (Software as a Service) 989Samba 432, 1096

als Client für Windows-Server 434

Drucker freigeben 434globale Parameter 433Konfiguration 433smb.conf, Konfigurationsdatei

433starten 432Verzeichnis freigeben 434Windows-Freigabeart 434

Sampling 1096Sampling, Audio 54Sampling-Rate 54Sampling-Tiefe, Audio 54Samsung

Galaxy Tab 45SAS (Serial Attached SCSI) 140sash (Stand-alone Shell) 372Satellit, DSL-Verbindung 215Satisfy, Apache-Direktive 753SAX 1096

Beispielprogramm 834ContentHandler, Interface 828ContentHandler-Callback 828ContentHandler-Methode 828Dokument parsen 827DTDHandler, Interface 828EntityResolver, Interface 828ErrorHandler, Interface 828Event Handler 828InputSource, Klasse 827Parser-Instanz erzeugen 827XMLReader-Interface 827

SAX (Simple API for XML) 827SaX (X-Server-Konfigurationspro-

gramm) 423sbin, Unix-Verzeichnis 306Scaffolding

Ruby on Rails 979Scala, Programmiersprache 52scanf(), C-Funktion 471, 479

Index

1159

Scanner 158Auflichtscanner 158Diascanner 159Durchlichtscanner 158Flachbettscanner 158Kleinbildscanner 159Trommelscanner 158

Schaltalgebra 26, 83Schaltkreisvermittlung 170Schaltung, Register 90Schema (LDAP) 774Schichtenmodell 176, 1096

Alltagsbeispiel 182Mail-Beispiel 184OSI-Referenzmodell 177Praxis 182TCP/IP 179

SchleifeC 472do/while() 473Endlosschleife 548for() 473foreach, Perl 502fußgesteuerte 473in der PowerShell 344in Shell-Skripten 405kopfgesteuerte 472mit break abbrechen 548

Schleifenrumpf 472Schleifenzähler, Variable 472Schlüssel

eines Hashes 503im RDBMS 680

Schlussfolgerunglogische 60Umkehrschluss 60

Schnittmenge 70Schnittstelle

Hardware 115Softwareentwurf 647

Schreib-Lese-Kopf, der Turing-Maschine 97

Schriftartim Drucker 165

screen, JavaScript-Objekt 1023script.aculo.us, Ajax-Bibliothek

1053ScriptAlias, Apache-Direktive 753Scrum 652

Backlog 653

Scrum (Forts.)Rollen 652Sprint 653

SCSI 139, 1096anschließen 139ID 140serielles 140Terminator 139

SCSI-ID 140SDI, Windows-Anwendungen

327SD-RAM 126SDSL 215sed 497, 555Sedezimalsystem � Hexadezimal-

systemSegmentierung (Speicher) 303Seite (Speicher) 303Seitenfehler (Speicher) 303Seitentabelle (Speicher) 303SELECT, SQL-Abfrage 699Selektor

jQuery 1053Semikolon

Abschluss von Anweisungen 459send(), Ajax-Methode 1038Sequenzdiagramm (UML) 659Serial Attached SCSI 140Serialisierung 495Serializable, Java-Interface 495Serielle Datenübertragung 133

Bedeutung 134Kontrollbit 133Leitungskonventionen 134Prüfbit 134Startbit 133Stoppbit 134

ServerNetzwerk 190

Server, Windows-Betriebssys-teme 320

ServerAdmin, Apache-Direktive 753

ServerdienstAnwendungsserver 194Application Server 194Dateiserver 191Druckserver 192einrichten, Linux 430einrichten, Mac OS X 451

Serverdienst (Forts.)einrichten, Unix 430einrichten, Windows 360Fileserver 191HTTP-Server 193Mailserver 192Printserver 192Samba 432Übersicht 190Webserver 193

Servergefahren 1071ServerName, Apache-Direktive

753ServerRoot, Apache-Direktive

754ServerSignature, Apache-Direktive

754Serversystem

Macintosh 451ServerTokens, Apache-Direktive

754Servlet, Java 604Session

PHP 951Session-Hijacking 1072SET PASSWORD, MySQL-Anwei-

sung 709SET, SQL-Befehl 704SET, SQL-Datentyp 699setColor(), AWT-Methode 612setLayout(), AWT-Methode 620setTimeout(), JavaScript-Methode

1011setVisible(), AWT-Methode 610SGML 1096

HTML-DTD 866XML als moderne Version 791

sh (Bourne-Shell) 372Shannon-Theorem 1096Share Level Security, Samba 434Share Level Security, Windows-

Freigabeart 361Shebang

bei Shell-Skripten 404Perl 498

Shell 297, 1096/etc/profile, Unix-Konfigurations-

datei 373Ausgabeumleitung (Unix) 381bash 372

Index

1160

Shell (Forts.)Befehl, Windows 336Bourne-Shell 372Cmd.exe

WinNT 334COMMAND.COM, MS-DOS

334C-Shell 372Eingabeaufforderung, Unix 371Eingabeumleitung (Unix) 381Eingabevervollständigung 375ermitteln, welche läuft 372Escape-Sequenz 391HIER-Dokument 381History 376Korn Shell 372Pipe 382Prozess in den Hintergrund stellen

373Shell-Skript 403Stand-alone Shell 372Umgebung 372Umgebungsvariable 373Unix 297unter Mac OS X 440Windows 333

shellBefehl als root ausführen 377

Shell-Skript 403Beispiele 406case-Befehl 405Fallunterscheidung 404for-Befehl 405if-Befehl 404Schleife 405Shebang 404Variable 405while-Befehl 405

shift, Perl-Anweisung 502short, C-Datentyp 463Short-Circuit-Logik 507shutdown, Unix-Befehl 397Sicherheit 1057

Admin-Rechte 1063Adware 1067Backdoor 1064Backup 1062CGI 1072chroot-Umgebung 1074Crackerangriff 1072

Sicherheit (Forts.)Crackertools 1075Cross-Site-Scripting (XSS) 1072Dialer 1065Exploit 1071Firewall 1062, 1073Hoax 1070Intrusion Detection System 1074keine absolute 1057Kettenmail 1070Kryptografie 1079Man-in-the-Middle-Angriff

1072menschliches Versagen 1075MySQL, Unix 691MySQL, Windows 693Passwort 1075Patch installieren 1062PC-Gefahren 1058Phishing 1067Rootkit 1072Servergefahren 1071Session-Highjacking 1072Social Engineering 1075Spam 1068Spyware 1067SQL-Injection 1073Virus 1058Webanwendungen 1072Wurm 1060

Sicherung, OSI-Schicht 178SIGALRM, Signal 299SIGHUP, Signal 299SIGINT, Signal 397SIGKILL, Signal 299, 396Signal 1096

an Prozesse senden, Unix 396SIGALRM 299SIGHUP 299SIGINT 397SIGKILL 299, 396SIGTERM 299, 396Verarbeitung durch Prozess 299zur Inter-Prozess-Kommunikation

300Signatur

digitale 1081signed, C-Datentyp 463SIGTERM, Signal 299, 396Silicon Valley 38

Silizium 38SIMM-Modul (RAM) 126Simple API for XML � SAXSimulation

eines Prozessors 100Sinclair ZX Spectrum 286Sinclair ZX81 42, 286Sinclair, Clive 42Single Document Interface � SDI,

Windows-AnwenduSingleton, Entwurfsmuster 663,

665Implementierung (Java) 666Implementierung (Ruby) 666Ruby-Modul 667

Sinuskurvezeichnen, AWT 613

Sitzung, OSI-Schicht 179sizeof(), PHP-Funktion 928Skalar, Perl-Variable 499, 501Skriptsprache 47, 497Slash, Blog-Tool 988Slave-Nameserver 255Slot

Prozessor 115SMALLINT, SQL-Datentyp 697Smalltalk 638Smalltalk, Programmiersprache

50Smartphone 44smbclient, Samba-Dienst 434SMB-Protokoll, Windows-Netz-

werk 277SMTP 262

Befehle 263Sitzung 262

sn, LDAP-Attribut 776Snort 1074SOAP 1096

Client 607SOAP, Webservices 606SOA-Record (DNS) 771Social Engineering 1075sockaddr_in, Netzwerkprogram-

mierung 573Sockel

für Prozessoren 115Socket 571, 1097

accept(), Funktion 577Adresse 573

Index

1161

Socket (Forts.)bind(), Funktion 576connect(), Funktion 575Datagramme senden und

empfangen 574Domain 572erzeugen 572IO 577IP-Adresse 573lauschender 576listen(), Funktion 576Protokoll 573TCP 575TCP-Client 575TCP-Port 573TCP-Server 576Typ 572UDP 574Verbindung aufnehmen 577

Socket, Perl-Modul 572Software

freie 289installieren unter Unix 401installieren, Windows 350

Software as a Service 989Software-Engineering 637

agiler Entwicklungsprozess 651Analyse 643CASE-Tools 655Code-Review 648Dokumentation 648Entwicklungsprozess 649Entwicklungszyklus 639Entwurfsmuster 660Entwurfsphase 646Extreme Programming 651Implementierungsphase 647in der IT-Ausbildung 638Lastenheft 644objektorientierte Analyse 644Objektorientierung 637Pflichtenheft 645Planungsphase 640Projektmanagement 640Projektphasen 639Schnittstelle 647Scrum 652Spiralmodell 639strukturierte Analyse 644Test-first-Verfahren 652, 671

Software-Engineering (Forts.)Testphase 648UML 654Unified Process 650Unit-Test 648Unit-Tests 668Wasserfallmodell 639

Softwareentwicklung � Software-Engineering

Softwarekrise 637Softwaretechnik � Software-

EngineeringSolaris 1097Solaris, Betriebssystem 285Solid State Disk 1097Solid State Disk (SSD) 150Sortier-Algorithmus 544

BubbleSort 544QuickSort 547

Soundkarte 166Anschlüsse 166Audio-CD abspielen 166MIDI 166SP-DIF-Anschluss 166

Source, Stromeingang des Transis-tors 84

Spam 1068SpamAssassin 1069SP-DIF-Anschluss 166Special File � GerätedateiSpectrum, Homecomputer 286Speicher

Management durch Betriebs-system 281

RAM 114reservieren, C 551ROM 114virtueller 118, 302

Speicheradressierung 78Speichermanagement 281Speicherseite 303Speicherverwaltung 302

x86-System 303Speicherzelle (Schaltung) 89Spiralmodell 639split, Perl-Anweisung 503Spotlight (Mac OS X) 443Sprache (Umgangssprache), zur

Algorithmendarstellung 92Sprint, Scrum 653

Sprungbefehlbedingter 123beim virtuellen Prozessor 103der CPU 122unbedingter 122

Sprungvorhersage (Prozessor) 118

Spyware 1067SQL 683, 694, 1097

Aggregatfunktion 701Änderungsabfrage 695, 704arithmetische Operatoren 701AS-Klausel 701Auswahlabfrage 694, 699AUTO_INCREMENT, Feldop-

tion 699BIGINT, Datentyp 697BINARY, Feldoption 699BLOB, Datentyp 698CHAR, Datentyp 698COMMIT, Anweisung 705COUNT-Funktion 702CREATE DATABASE, Befehl 695CREATE TABLE, Befehl 695DATE, Datentyp 697Datentypen 697Datentypen in Java 723Datentypen, Aufzählung 698Datentypen, Binärobjekte 698Datentypen, Datum und Uhr-

zeit 697Datentypen, Fließkomma 697Datentypen, ganzzahlige 697Datentypen, Text 698DATETIME, Datentyp 697DECIMAL, Datentyp 697DEFAULT, Feldoption 699DELETE-Abfrage 704DOUBLE, Datentyp 697DROP DATABASE, Befehl 696DROP TABLE, Befehl 696Einfügeabfrage 694, 703ENUM, Datentyp 698Felder mit Nullen füllen 699Feldoptionen 699Feldwert einmalig machen 699FLOAT, Datentyp 697Funktionen 701Index erstellen 699Inner Join 702

Index

1162

SQL (Forts.)Inner Join durch WHERE aus-

drücken 703INNER JOIN-Klausel 702INSERT-Abfrage 703INT, Datentyp 697Join 702LIKE-Klausel 700LONGBLOB, Datentyp 698LONGTEXT, Datentyp 698Löschabfrage 695, 704MAX-Funktion 702MDEIUMBLOB, Datentyp 698MEDIUMTEXT, Datentyp 698MIN-Funktion 702Mustervergleich 700NULL, Feldoption 699ORDER BY-Klausel 702Primärschlüssel einrichten 699PRIMARY KEY, Feldoption 699REAL, Datentyp 697ROLLBACK, Anweisung 705SELECT-Abfrage 699SET, Datentyp 699SET-Befehl 704SMALLINT, Datentyp 697sortieren 702Standardwert angeben 699START TRANSACTION, Anwei-

sung 705SUM-Funktion 701TEXT, Datentyp 698TIME, Datentyp 697TIMESTAMP, Datentyp 698TINYBLOB, Datentyp 698TINYINT, Datentyp 697TINYTEXT, Datentyp 698Transaktion beginnen 705UNSIGNED, Feldoption 699UPDATE-Abfrage 704VARCHAR, Datentyp 698Vergleichsoperatoren 701Volltextindex 699WHERE-Klausel 700YEAR, Datentyp 697ZEROFILL, Feldoption 699

SQL Server, Microsoft 686SQL-Injection 1073SRAM 125SSD 1097

SSD (Solid State Disk) 150SSH 1082, 1097SSH (Secure Shell) 257

OpenSSH 258SSL 757, 1081Stack

der CPU 116, 123des virtuellen Prozessors 104Java-Klasse 497

Stack Overflow 123Stack Pointer � Stack-ZeigerStack, Datenstruktur 550

Perl 550Stack-Overflow 1097Stack-Zeiger 116, 123Stallman, Richard 289Stammdaten 675Stand-alone Shell (sash) 372Standardausgabe

Java 487Standardausgabe (stdout) 381Standardeingabe (stdin) 381Standardfehlerausgabe 570Standard-Fehlerausgabe (stderr)

381Stapelverarbeitung 283START TRANSACTION, SQL-

Anweisung 705Startbit 133Startmenü

Windows 328Startvolume, Mac OS X-Einstel-

lung 447startx, X Window starten 423State, Entwurfsmuster 664Statement, JDBC-Klasse 722static

Java-Methoden 486Variableneigenschaft, C 463

Static RAM � SRAMstatic, PHP-Schlüsselwort 942Statische Methode

PHP 942Statische Variable 463Statisches Attribut

PHP 942stddef.h, C-Bibliothek 463stderr 570stderr, Standard-Fehlerausgabe

381

stdin, Standardeingabe 381stdio.h, C-Bibliothek 479stdio.h, C-Header-Datei 459stdlib.h, C-Header-Datei 459stdout, Standardausgabe 381Stealth-Virus 1060Stellenwertsystem 35, 72

Basis 73Stern-Topologie, Netzwerk 188Steueranweisung

XML 795Steuerbus 117

Wortbreite 119Steuerwerk 111

der CPU 116Stoppbit 134str_replace(), PHP-Funktion 948Strategy, Entwurfsmuster 664strcat(), C-Funktion 481strcmp(), C-Funktion 481strcpy(), C-Funktion 481Stream-Socket 572strftime(), C-Funktion 481strict, Perl 500String 459, 1097

aufteilen, Java 489aus Array, Perl 503aus Datei lesen, C 480Darstellung in C 477Darstellung, C 459Eingabe, C 480einlesen, C 460einzelne Zeichen lesen, Java 489Funktionen in C 481in GUI schreiben 614in JavaScript 1004Java 487kopieren, C 481Länge ermitteln, Java 489null-terminierter 477Operationen in Java 489Position ermitteln, Java 489vergleichen, C 481vergleichen, JavaScript 999vergleichen, Perl 505verketten, C 481verketten, Java 488verketten, JavaScript 997verketten, Perl 506zerlegen, Perl 503

Index

1163

String (Forts.)zerlegen, PHP 929

String, Java-Datentyp 487string.h, C-Bibliothek 481String-Literal 464String-Verkettung, Perl 506strip_tags(), PHP-Funktion 938Stripe Set (RAID) 148Stripe Set mit Parity (RAID) 149Stroustrup, Bjarne 51struct, C 478Structural Pattern � Struktur-

musterStructured Query Language

� SQLStruktur

in C 478Strukturierte Analyse 644Strukturierung

Programme 474von Programmen 48

Strukturmuster 661Studiengänge

Informatik 31Style Sheets � CSSsu, Unix-Befehl 377sub, Perl-Subroutine 508sub, Ruby-Methode 562Subdomain (DNS) 254submit_tag, Rails-Methode 985Subnet Mask 1097Subnet Mask, IP-Adresse 224Subnetting 1097Subnetting, IP-Netze teilen 225Subroutine

Parameter 508Perl 508Wertrückgabe 509

SubSeven, Backdoor 1064substring(), Java-Methode 489Subtraktion, Operator 465Such-Algorithmus 548

binäre Suche 549lineare Suche 548

Suchebinäre 549, 1088lineare 94, 1094nach Permutationen 95

SuchmaschineAnmeldung bei 907

Suchmaschine (Forts.)HTML aufbereiten für 906robots.txt-Datei 907

SUM, SQL-Funktion 701Sun Microsystems

Java 483Solaris, Betriebssystem 285

Sun SPARC, Prozessor 122super, Java 494Supernetting 1097Supernetting, IP-Netze zusammen-

fassen 226Superuser 300, 369SVG 1097SVG (Scalable Vector Graphics)

792SVG � Scalable Vector GraphicsSwap-Partition 303Swapping (Speicher) 118Swing, Java 609

Ereignisbehandlung 609Tabellen 609

Switch 201switch/case-Fallunterscheidung

471default-Wert 472

Symbolic Link 308Symbolische Konstante 482,

1097Symmetrische Verschlüsselung

1080sys/types.h, C-Bibliothek 564Syslog 397, 1097Syslog, Unix 396System

autonomes 1088System V 1097System V Init 399System V IPC 301System V, Unix 285System.err, Java 570System.out, Java 487Systemanalyse 643Systemaufruf 125, 293, 295,

1097CreateProcess() 300fork() 299kill() 299pause() 299programmieren 563

Systemaufruf (Forts.)Win32 API 296

SystemaufrufeUnix 295

SystembefehlUnix 383Unix-Dateimanipulation 384Unix-Systemverwaltung 392Unix-Textmanipulation 388

SystemkonfigurationMac OS X 447Windows 348

Systemprogramm 294Linux 288Optionen 373Parameter 373Unix 383Unix-Dateimanipulation 384Unix-Systemverwaltung 392Unix-Textmanipulation 388

Systemsteuerung, Windows 348Systemvariable 1097

PATH (Unix) 374setzen (Unix) 375

SystrayWindows 330

T

Tabelleerzeugen, SQL 695HTML 888löschen, SQL 696

Tabelle (iptables) 1076Tablet-PC 45Tag

HTML 867Name, XML 796verschachteltes, XML 795XML 793, 795

tail, Unix-Befehl 389Taktfrequenz

der CPU 119des Mainboards 119Multiplikator 119praktische Bedeutung 120

Tanenbaum, Andrew 292tar, Unix-Befehl 402, 860tar-Datei 401Task Scheduler 292, 1097

Index

1164

Taskleiste, Windows 328Systray 330

Tastatur 157Zeichensatzeinstellung 845

TastenkürzelWindows-Eingabeaufforderung

334TCP 247, 1097

Drei-Wege-Handshake 249Funktionsweise 247im Vergleich zu UDP 247Paket-Header 247Port 249Urgent Data 250Verbindungsaufbau 249

TCP/IP 217, 1097Adressierung 220Anwendungsprotokolle 256ARP, Netzzugang 219DHCP 244Dienstprogramme 357DNS 252Domain Name System 252FTP, Anwendungsprotokoll 259HTTP, Anwendungsprotokoll

269ICMP-Protokoll 247IMAP, Anwendungsprotokoll

267Loopback-Interface 223Nameserver 252Netzzugang 219NNTP, Anwendungsprotokoll

267POP3, Anwendungsprotokoll

266Routing 236Routing-Protokolle 241SMTP, Anwendungsprotokoll

262Telnet, Anwendungsprotokoll

257Transportprotokolle 246

TCP/IP-Dienstprogramm 357netstat 359nslookup 359tracert 358

TCP/IP-Dienstprogrammeping 357

TCP/IP-Schichtenmodell 179

TCP-Client-Socket 575mit IO 578

TCP-Header 247TCP-Port 249

für Sockets 573Well-known Port 250

TCP-Server-Socket 576mit IO 578

tcsh (erweiterte C-Shell) 372TDD � Test-driven DevelopmentTechnische Informatik 26Teilerfremd 542Teilmenge 67

echte 68Teilnetzmaske, IP-Adresse 224Telefongespräch

als Schichtenmodell 182Telefonleitung

Pulswahl 212Telefonverbindung 170telephoneNumber, LDAP-Attri-

but 776Telnet 257, 1097Template Method, Entwurfsmus-

ter 664Terabyte 79Term 58TERM, Signal 299, 396Terminal 39, 283, 1097

unter grafischer Oberfläche 371virtuelles 370

Terminator 1097SCSI 139

Terminator (UNIX-Terminalfens-ter) 371

Test, Software-Engineering 648Code-Review 648Lasttest 648Unit-Test 648Unit-Tests 668

Test-driven Development 671, 1097

Test-first-Verfahren 652, 671Testgetriebene Entwicklung

� Test-driven DevelopmentTeX, Textsatzsystem 848Text

ausgeben (Unix) 388Datei anzeigen, Windows-Konsole

337

Text (Forts.)Dateien vergleichen, Unix 391Dateiinhalt anzeigen (Unix) 389Editoren, Unix 410Emacs, Editor 417Manipulationsbefehle, Unix 388vi, Editor 410Wörter zählen, Unix 392

TEXT, SQL-Datentyp 698text-align, CSS-Angabe 914TextArea, AWT-Klasse 619Textdatei

anzeigen, Windows-Konsole 337Inhalt anzeigen (Unix) 389

TextdateiformatVorteile 791YAML 975

text-decoration, CSS-Angabe 913Texteditor

Emacs 417für XML verwenden 792unter Unix 410vi 410vim 410

TextField, AWT-Klasse 619text-indent, CSS-Angabe 914TFT 1098TFT-Monitor 162Theoretische Informatik 26Thermosublimationsdrucker 165Thermotransferdrucker 165Thicknet Coaxial, Ethernet 200Thinnet Coaxial, Ethernet 199this, Java 491Thompson, Ken 284Thread 291, 302, 1098

in Programmiersprachen 567Java 495, 567run() 568Runnable-Interface 568

Thread, Java-Klasse 567throws-Klausel, Java 497Thunderbolt 141TIFF, Bilddateiformat 854time(), C-Funktion 481TIME, SQL-Datentyp 697time.t, C-Bibliothek 481time_t, C-Datentyp 481Timesharing 283, 1098TIMESTAMP, SQL-Datentyp 698

Index

1165

Tintenstrahldrucker 164Bubble-Technik 164Piezo-Technik 164

TINYBLOB, SQL-Datentyp 698TINYINT, SQL-Datentyp 697TINYTEXT, SQL-Datentyp 698Titel

HTML-Dokument 868TLS � SSLToken Passing, Netzzugangs-

verfahren 202Token-Passing 1098Token-Ring-Netzwerk 202, 1098Tomlinson, Ray 173Tonkanal, Audio 55Tonwahlverfahren 212Top Level Domain 1098

Länder 254top, CSS-Angabe 916Top-Level-Domain

generic 254Top-Level-Domain (DNS) 254Topologie (Netzwerk) 188Torvalds, Linus 285, 288tr///, Perl-Operator 561tracert, TCP/IP-Dienstprogramm

358Track-at-once 153, 1098Transaktion (Datenbank) 705

Commit 705in MySQL 705Rollback 705

Transaktion (RDBMS) 685in MySQL 686

Transistor 36, 38, 84TFT 162

Transistorrechner 36Transport, OSI-Schicht 178Treiber � GerätetreiberTriode 38tripwire 1074Trojaner � Trojanisches PferdTrojanisches Pferd 1064Trolltech 425Trommelscanner 158

Foto-Multiplier 159true

Java 488TrueType 1098

tryJava 487

try/catch-BlockJava 487

TTL 1098TTL, IP-Datagramm 240Turing, Alan 96, 1098Turing-Maschine 97, 1098

Band 97Beispiele 98einfaches Beispiel 98komplexeres Beispiel 98Schreib-Lese-Kopf 97Zeichenvorrat 97Zustände 97

Turing-Test 96, 1098Turing-Vollständigkeit 100, 1098Tweening 1098Twisted-Pair-Kabel 200

Kategorien 200Type Hint (PHP) 942type, Windows-Befehl 337Typecasting

C 465Typenraddrucker 163TYPO3, CMS 987

U

Überladung 492Übertakten 120Übertrag (Logikschaltung) 87Ubuntu Linux 366UDDI 1098UDDI, Webservices 606UDF 154–155UDP 250, 1098

Anwendungsbeispiel 251im Vergleich zu TCP 247Paketheader 251Port 251

UDP-Header 251UDP-Port 251UID (User-ID)

von Prozessen 300UID (User-ID, Unix) 369uid, LDAP-Attribut 776uidNumber, LDAP-Attribut 776Umbenennen

Datei, Mac OS X 445

Umbenennen (Forts.)Datei, Unix 385

Umfangsmanagement 641Umgebung

Unix 372Umgebungsvariable

CLASSPATH 484PATH (Unix) 374RAILS_ENV 975setzen (Unix) 375setzen unter Windows 336

Umgebungsvariablen 373Umkehrschluss 60UML 92, 654, 1098

Akteur 656Aktivitätsdiagramm 659Anwendungsfalldiagramm 656ArgoUML, Tool 655Diagrammtypen 654Klassendiagramm 657praktischer Einsatz 655Sequenzdiagramm 659Version 2.0 654

umount, Unix-Befehl 393Umrechnung

dezimal nach dual 75dezimal nach hexadezimal 76dual nach dezimal 76dual nach hexadezimal 77dual nach oktal 77hexadezimal nach dezimal 77hexadezimal nach dual 77oktal nach dual 77Zahlensysteme 75

UMTS 216unalias, Unix-Befehl 408Unbedingter Sprung 122Undefiniertheitsstelle (Funktion)

93Und-Schaltung � AND-SchaltungUnd-Verknüpfung � AND-Ver-

knüpfungUngleichheit 65Ungleichheit, Operator 466Ungleichung 58

Lösung 59Unicode 844, 1098

BMP-Teilmenge 844Tabelle wichtiger Teilzeichen-

sätze 844

Index

1166

Unicode (Forts.)Unterstützung durch Software

845UTF-8-Codierung 844

Unicode, Zeichensatz 55Unified Modeling Language

� UMLUnified Process 650

Aktivitäten 650Anwendungsfall 650Artefakt 650Phasen 651Rollen 650Vorgehen 650

UNIQUE, SQL-Schlüsselwort 699Unit-Test 648

Mock-Objekt 969PHP 966

Unit-Tests 668grüner Balken 670JUnit-Framework 668Motivation 668roter Balken 670

Universal Disk Format � UDFUniversity of California, Berkeley

284, 410, 571Unix 49, 284

$0, Systemvariable 372.bashrc, Konfigurationsdatei

373/etc/passwd-Datei 369/etc/profile, Konfigurations-

datei 373/etc/shadow, Datei 370alias-Befehl 407als Server einrichten 430Arbeitsverzeichnis anzeigen 387auf NFS-Freigabe zugreifen 431auf Windows-Server zugreifen

434bash 372Befehle regelmäßig ausführen

408Benutzerrechte 308Berkeley System Distribution

(BSD) 284Bourne-Shell 372BSD 284BSD-Startstkript 401bunzip2-Befehl 862

Unix (Forts.)bzip2-Befehl 862bzip2-Komprimierung 402cat-Befehl 389cd-Befehl 387chgrp-Befehl 388Child-Prozess 299chmod-Befehl 387chown-Befehl 388cp-Befehl 385Cronjob 408C-Shell 372CUPS, Drucksystem 431Daemon 396Darwin 285date-Befehl 393Datei kopieren 385Datei löschen 386Datei umbenennen 385Datei verschieben 385Dateibefehle 384Dateibesitzer wechseln 388Dateiendung 385Dateigruppe wechseln 388Dateiname 307, 384Dateinamen-Platzhalter 384Dateisysteme 305Datum und Uhrzeit ändern 393Datum und Uhrzeit formatieren

394diff-Befehl 391du-Befehl 393echo-Befehl 388Emacs, Texteditor 417Escape-Sequenz 391exit-Befehl 377fg-Befehl 373finger, Dienstprogramm 369fork(), Systemaufruf 299fsck-Befehl 393Gerätedatei 305–306GNOME 297, 424, 426grafische Benutzeroberfläche

422grep-Befehl 390groupadd-Befehl 395Group-ID 300, 369gunzip-Befehl 861gzip-Befehl 861gzip-Komprimierung 401

Unix (Forts.)Hard Link 308head-Befehl 389HIER-Dokument 381Home-Verzeichnis 306HP UX 285IBM AIX 285ifconfig-Befehl 428init-Prozess 299inode 307Installation von Software 401IP-Adresse zuweisen 429KDE 297, 424kill(), Systemaufruf 299kill-Befehl 396Korn Shell 372less-Befehl 389Link (Dateisystem) 308Linux 285, 288logger-Befehl 399Login 367ls-Befehl 386Mac OS X 285, 440mail-Befehl 409make-Befehl 402man-Befehl 297Minix 288mkdir-Befehl 387mkfs-Befehl 393Modularität 284more-Befehl 389mount-Befehl 392mv-Befehl 385MySQL-Installation 690Netzwerkkonfiguration 428Neustart 397NFS 430Pager 389Parent-Prozess 299passwd-Befehl 395Passwort ändern 395patch-Befehl 392PATH, Umgebungsvariable 374pause(), Systemaufruf 299Pfadangabe 306Pipe 382POSIX-Standard 285Programm automatisch starten

399Prozessmodell 298

Index

1167

Unix (Forts.)Prozessverwaltung 395ps-Befehl 300, 395pstree-Befehl 396pwd-Befehl 387regulären Ausdruck suchen 390rm-Befehl 386rmdir-Befehl 387root, Benutzer 300, 369route-Befehl 429Runlevel 399Samba-Server 432Shell 297, 367Shell-Ausgabeumleitung 381Shell-Eingabeumleitung 381Shell-Eingabevervollständigung

375Shell-History 376Shell-Skript 403shutdown-Befehl 397Software installieren 401Stand-alone Shell 372Standardrouter einrichten 429startx-Befehl 423su-Befehl 377Sun Solaris 285Swap-Partition 303Symbolic Link 308Syslog 396–397System herunterfahren 397System V 285Systemaufruf 295Systemprogramme 383tail-Befehl 389tar-Befehl 402, 860tar-Datei 401Textbefehle 388Textdatei anzeigen 389Textdateien vergleichen 391Texteditoren 410Umgebung 372Umgebungsvariable setzen 375umount-Befehl 393unalias-Befehl 408unzip-Befehl 862useradd-Befehl 394userdel-Befehl 395User-ID 300, 369Verwaltungsbefehle 392Verzeichnis anlegen 387

Unix (Forts.)Verzeichnis löschen 387Verzeichnis wechseln 387Verzeichnisbaum 306Verzeichnisbefehle 384Verzeichnisinhalt anzeigen 386vi, Editor 410virtuelles Terminal 370wc-Befehl 392Window-Manager 297Wörter zählen 392X Window 297, 422zip-Befehl 862Zugriffsrechte 308

Unix System V Init 399Unix-Benutzerkonto

in LDAP abbilden 775unless, Perl-Fallunterscheidung

507unset(), PHP-Funktion 936unshift, Perl-Anweisung 502unsigned, C-Datentyp 463UNSIGNED, SQL-Feldoption 699Unterprogramm

Aufruf durch CPU 123unzip, Unix-Befehl 862update(), AWT-Methode 618UPDATE, SQL-Abfrage 704Urgent Data (TCP) 250URL 270, 1099

Schema 272USB 140, 1099USB-Stick 150Use Case � Anwendungsfalluse, Perl-Direktive 500Usenet 267, 1099User Level Security, Samba 434User Level Security, Windows-

Freigabeart 361useradd, Unix-Befehl 394userdel, Unix-Befehl 395User-ID

von Prozessen 300User-ID (Unix) 369userPasssword, LDAP-Attribut

776Users, Mac OS X-Verzeichnis 306usr, Unix-Verzeichnis 306UTF-8 1099UTF-8, Unicode-Codierung 844

V

V.24-Schnittstelle 141var, Unix-Verzeichnis 306VARCHAR, SQL-Datentyp 698Variable

Array, Perl 501automatische (lokale) 463Datentypen, C 462Deklaration, C 459, 461–462Deklaration, Java 488deklarieren, Perl 501Existenz testen, Perl 507globale 463Gültigkeitsbereich, C 463Hash, Perl 501in C 462in der PowerShell 342in Programmiersprachen 66in Shell-Skripten 405lokale 463mathematische 59Perl 500PHP 925Schleifenzähler 472Skalar, Perl 499, 501statische 463Substitution, Perl 500Substitution, Shell-Skript 406Typecasting 465

Variablensubstitutionin Perl-HIER-Dokumenten 506in Shell-Skripten 406Perl 500

VAX, Minicomputer-Serie von DEC 40

Vektorgrafik 53Vektorrechnung 91Vereinigungsmenge 70Vererbung 50, 493, 1099

Interface, Java 494PHP 943

Vergleichsoperation 65beim virtuellen Prozessor 103Umkehrung 65

Vergleichsoperator 466Vergleichsoperatoren

SQL 701Verhaltensmuster 661

Index

1168

Verknüpfunglogische 60

VerschiebenDatei, Mac OS X 444Datei, Unix 385Datei, unter Windows 331

Verschlüsselung 1079asymmetrische 1080Einweg- 1081symmetrische 1080

Verteilte Anwendung 195, 598Aufgaben 598Backend 195Frameworks im Vergleich 598Frontend 194Java EE-Plattform 599

vertical-align, CSS 914Verzeichnis

anlegen, Unix 387anlegen, Windows 337Arbeitsverzeichnis anzeigen, Unix

387Inhalt anzeigen, Unix 386löschen, Unix 387löschen, Windows 337verarbeiten, Perl 510wechseln, Unix 387wechseln, Windows 336

Verzeichnisdienst 1099Active Directory 362LDAP 773

vi, Texteditor 410Befehlsmodus 410Dateibefehle 413Editiermodus 410Navigation 411Suchfunktionen 412Text kopieren 412Text löschen 412

VideoDateiformate 858

Video-Dateiformat 858AVI 858MPEG 859QuickTime 858

Video-DVDauf dem PC abspielen 155Region-Code 155

ViewRuby on Rails 980

Vim, Texteditor 410Virtual Box 313Virtual PC 312Virtual Private Network � VPNVirtualHost, Apache-Direktive

754Virtualisierung 311

Microsoft Virtual PC 312Parallels Desktop 313Virtual Box 313VMware 312VMware Workstation 313Xen 312

Virtuelle MaschineJava 483

Virtueller Host (Apache) 751, 754–755

Virtueller Prozessor 100Arbeitsspeicher 100Aufbau 100Befehle 102Beispielprogramme 105Flag 103Rechenbefehl 102Register 100Sprungbefehl 103Stack 104Vergleichsoperation 103

Virtueller Speicher 118, 302Virus 47, 1058

Antivirenprogramm 1061Aufbau 1059Bootsektor- 1059Dateivirus 1060Makrovirus 1060polymorpher 1060Schutzmaßnahmen 1061Stealth- 1060

Visitor, Entwurfsmuster 664Vista � Windows VistaVlissides, John 661VLSM 1099VLSM, variables IP-Teilnetz 229VMS, Betriebssystem 287VMware 312VMware Workstation 313void, Datentyp

Zeiger auf 551void, Funktionsdatentyp, C 474Volladdierer (Schaltung) 87

Volltextdatenbank 677von Neumann, John 37, 111Von-Neumann-Rechner 100,

111, 1099VPN 1082

W

-w, Perl-Modifikator 499W3C, DOM 834Wahre Aussage 58Wahrheitswertetabelle 62

NAND-Verknüpfung 85XOR-Verknüpfung 64

Wall, Larry 498WAMP-System 924WAN 187, 1099

technische Lösungen 187Warnock, John 41Warnung

in Perl aktivieren 499Wasserfallmodell 639WAV, Audio-Dateiformat 857Wavetable-Synthese (MIDI) 167wc, Unix-Befehl 392wchar_t, C-Datentyp 463Wearable Computer 45Web 2.0 993Web Fonts (CSS3) 920Webanwendung

Ajax 1035CGI 986Grundprinzip 923Sicherheitsprobleme 1072

WebbrowserKDE Konqueror 424

Weblog 988Blogging-Communitys 988Software für 988

WebLogic, Java Application Server 599

Web-safe Colors 912Webserver 193

Mongrel 985Programmierung 923

Webserver (Apache) 737Webservice 1099Webservices 605

Beschreibungsdatei 606Client 607

Index

1169

Webservices (Forts.)Definition 606registrieren 606SOAP 606Sprachen 606UDDI 606WSDL 606

Websichere Farben 912Website

robots.txt-Datei 907Wechseldatenträger 150

CD-ROM 151Diskettenlaufwerk 150DVD 154Jaz-Laufwerk 150LS-120 150Zip-Laufwerk 150

Weizenbaum, Joseph 96Well-known Port 250Well-known Ports

Tabelle einiger wichtiger 252WEP (Wired Equivalent Privacy)

208Wertdiskret 54Wertetabelle

NOR-Verknüpfung 85Wertrückgabe

Perl-Subroutine 509Wertzuweisung

C 461Operator 467

What You See Is What You Get � WYSIWYG

WHERE-Klausel, SQL 700while()-Schleife 472while-Befehl

in Shell-Skripten 405White Book 1099White Book (Video-CD) 152Whitespace

in C-Programmen 462in RegExp 558

Wide Area Network 187Widerspruch, logischer 93Widget 608WiFi Protected Access 208WiFi � Wireless LANWiki 988Wikipedia 988

Wildcardin Unix-Dateinamen 384Windows-Dateiname 335

Win32 1099Umgang mit 16-Bit-Anwendun-

gen 321Win32 API 296, 1099WindowListener, AWT-Klasse

622Window-Manager 423

CDE 423fvwm2 423

Windows 287, 31916-Bit-Versionen 3192000 288, 3202000 Server 3207 28895 288, 32098 288, 320Active Directory 362als Server einrichten 360Anzeige-Konfiguration 349Apache-Installation 743attrib-Befehl 337auf Netzwerkrechner zugreifen

361Ausgabeumleitung 335Batch-Datei 337Benutzer-An- und Abmeldung

329Benutzerverwaltung 350cd-Befehl 336copy-Befehl 337CreateProcess(), Systemaufruf

300CygWin 457Datei kopieren 331Datei löschen, Konsole 337Datei umbenennen 337Datei verschieben 331, 337Dateiattribut 310Dateiattribute ändern 337Dateiname 310Dateinamen-Platzhalter 335Dateisysteme 309, 323Datenträgerverwaltung 352del-Befehl 337Desktopkonfiguration 349Dienst 352dir-Befehl 336

Windows (Forts.)Drucker freigeben 361durch Unix-Server bedienen 432Eingabeaufforderung 336Eingabeumleitung 335Entwicklung 319Ereignisanzeige 352Explorer 330Fenster 327Freigabeart 361Gruppenrichtlinienobjekt 353Hardwarekonfiguration 349,

351help-Befehl 297herunterfahren 329Home-Verzeichnis 310IP-Adresse zuweisen 356Konsole 333Konsole starten 336Konsolenbefehl 336Laufwerksbuchstaben 309MDI-Anwendung 327Me 288, 320Microsoft Management Console

(MMC) 352mkdir-Befehl 337MMC (Microsoft Management

Console) 352move-Befehl 337MySQL-Installation 691Netzwerkdrucker nutzen 361Netzwerkkonfiguration 355Netzwerktreiber 355Netzwerkverbindung einrichten

355neu starten 329NT 287, 320NT Server 320NT-Familie 320Oberfläche 325Ordner freigeben 360Ordneransicht 332path, Umgebungsvariable 336Pfadangabe 309Pipe 335Prompt 336Prozessmodell 300regedit, Dienstprogramm 354Registry 353rename-Befehl 337

Index

1170

Windows (Forts.)rmdir-Befehl 337SDI-Anwendung 327Server 2003 320Server 2008 320Server-Pakete 363Serversystem 361Server-Versionen 320Share Level Security 361Software installieren 350Startmenü 328Systemkonfiguration 348Systemsteuerung 348Systray 330Taskleiste 328Textdatei anzeigen, Konsole 337type-Befehl 337Umgebungsvariable setzen 336User Level Security 361Versionsübersicht 320Verzeichnis anlegen 337Verzeichnis löschen 337Verzeichnis wechseln 336Verzeichnisinhalt, Konsole 336Vista 288Win32 API 296XP 288

Windows 2000 288, 320Server 320Shell 334

Windows 2000 Server 362Windows 7 288, 320Windows 95 288, 320

Oberfläche 325Windows 98 288, 320

Oberfläche 325Windows Me 288, 320Windows NT 287, 320

Server 320Shell 334

Windows Phone 45Windows PowerShell � Power-

ShellWindows Server 2003 320, 362

als DHCP-Server 362als DNS-Server 362als Webserver 362Server-Rollen 362

Windows Server 2008 320

Windows Server 2008 R2Varianten 363

Windows Vista 288, 320Windows XP 288, 320

Oberfläche 325Shell 334

Windows-Eingabeaufforderung 333Eingabevervollständigung 334History 334QuickEdit-Modus 335Tastenkürzel 334

WinGate, Backdoor 1064Winkelgeschwindigkeit, konstante

149WinTel-PC 42Wired Equivalent Privacy 208Wireless LAN 204–205

Access Point 207Basic Service Set (BSS) 206CSMA/CA-Verfahren 206Extended Servive Set (ESS) 207Frequency Hopping 205Frequenzbereiche 205Hardware 206Sicherheit 207Übertragungstechnik 205WiFi Protected Access (WPA)

208Wired Equivalent Privacy 208

Wirth, Niklaus 48Wirtschaftsinformatik 32WLAN � Wireless LANWohlgeformtheit 1099Wohlgeformtheit, XML-Doku-

ment 801Word, 16 Bit 79WordPress, Blog-Tool 988World Wide Web 269

Geschichte 174HTTP-Protokoll 269Komponenten 174URL 270

Worst Case (Komplexität) 94Wortbreite 40, 78, 1100

der CPU 118verschiedener CPUs 119

Wörter zählen (Textdateien, Unix) 392

Wozniak, Steve 41, 286

WPA 208Write-Host, PowerShell-Cmdlet

342WSDL 1100WSDL, Webservices 606Wurm 1060

Schutzmaßnahmen 1061WYSIWYG 41, 1100

X

X Window 297, 422, 1100Konfiguration 422SaX, openSUSE-X-Konfigura-

tionsprogramm 423starten 423Xconfigurator, Fedora-Konfi-

gurationsprogramm 423X11R7 422x86-Assembler, Beispiele 124Xalan, XSLT-Prozessor 819XAMPP 727Xconfigurator (X-Server-Konfigu-

rationsprogramm) 423Xen 312Xerces, XML-Parser 825XEROX PARC 287Xerox PARC 40XFree86 422XHTML 866, 1100

Besonderheiten 869XML 791, 1100

Ajax-Datenaustausch durch 1042, 1044–1045

Attribut 793, 797Attribut, falsche Verwendung

798Attribut, Verwendung 798Attributdeklaration (DTD) 811Beispieldokument 794, 826CDATA-Block 799–800CSS verwenden 819Dateiendung 793Datenbank 677DocBook 792DOCTYPE-Angabe 804Dokument parsen, SAX 827Dokumenteingabe 792Dokumentfragment 802Dokumentstruktur 793

Index

1171

XML (Forts.)DTD 804DTD definieren 805DTD, Attribut deklarieren 811DTD, Element deklarieren 807DTD, Entity deklarieren 814Editor 792EJB-Deployment-Deskriptor 603Element (Tag) 795Elementdeklaration (DTD) 807Entity deklarieren (DTD) 814Entity-Referenz 799, 814Entity-Referenz, numerische 799Entity-Referenzen vermeiden

800Hierarchie 796in Datenbank schreiben, Beispiel-

programm 834Kommentar 801leeres Tag 797leeres Tag, Kurzfassung 797mehrere Namensräume 815MIME-Type 793Namensraum 815Namensräume, mehrere im

Dokument 815Parser 825Parser, Xerces 825PCDATA 799Processing Instruction (PI) 795Programmierung 825Programmierung, SAX 827PUBLIC-ID 804SAX 827Schema 816Schema-Beispiel 816SGML-Erbe 791Sonderzeichen 799spezielle Editoren 792Standalone-Dokument 795Standard-Namensraum 815Steueranweisung 795SVG 792SYSTEM-ID 804Tag 793Tag-Name 796Tag-Verschachtelung 795Universalität 792verschachteltes Tag 795, 803Verschachtelungsfehler 803

XML (Forts.)Webservices 605wichtige Dokumentformate 792Wohlgeformtheit 801Wurzelelement 802Xerces, Parser 825XHTML 792xmlns-Angabe 816xml-Steueranweisung 795XPath 1100XSL 819XSL-FO 819XSLT 819Zeichensatz 795

XML Schema 816, 1100Attribut deklarieren 817Element deklarieren 817verschachteltes Element 817

XML-Datenbank 677XML-Editor 792XMLHttpRequest 1036XMLReader, Java-Interface 827XOR-Schaltung 86XOR-Verknüpfung 64XP � Extreme ProgrammingXPath 1100

Überblick 824X-Server 297, 422

Konfiguration 422über das Netzwerk betreiben 258

XSL 819XSL Formatting Objects � XSL-FOXSL-FO 819, 1100XSLT 819, 1100

div, Operator 825Funktion 824position(), Funktion 825Prozessor 819round(), Funktion 825text(), Funktion 825wichtige Elemente 822Wurzelelement 822Xalan, Prozessor 819XPath-Ausdruck 824xsl:attribute, Tag 823xsl:choose, Tag 824xsl:copy-of, Tag 823xsl:for-each, Tag 823xsl:if, Tag 823xsl:otherwise, Tag 824

XSLT (Forts.)xsl:stylesheet, Tag 822xsl:template, Tag 822xsl:value-of, Tag 823xsl:variable, Tag 824xsl:when, Tag 824

XSLT-Prozessor 819XSS � Cross-Site-Scripting

Y

YAML, Dateiformat 975YEAR, SQL-Datentyp 697Yellow Book (CD-ROM) 152

Z

Z3, erster funktionierender Computer 36

Z80, Prozessor 119Zahl

Festkomma- 82Fließkomma- 82ganze 68imaginäre 69komplexe 69natürliche 68rationale 68reelle 69römische 73

Zahlenmengenganze Zahlen 68imaginäre Zahlen 69komplexe Zahlen 69natürliche Zahlen 68rationale Zahlen 68reelle Zahlen 69

Zahlensysteme 72Dezimalsystem 73Dualsystem 73Hexadezimalsystem 74Oktalsystem 74römische Zahlen 73Schreibweise 77Umrechnung 75

Zeichenalternatives in RegExp 557aus String lesen, Java 489ausschließen in RegExp 557beliebig viele, in RegExp 557

Index

1172

Zeichen (Forts.)Darstellung, C 463eines oder mehr, in RegExp 557Eingabe, C 480genaue Anzahl, in RegExp 558Gruppe in RegExp 557optionales, in RegExp 557Wortbestandteil in RegExp 558

Zeichengerät (Char Device) 294Zeichenkette � StringZeichen-Literal 464Zeichensatz 55, 840

ANSI 842ASCII 55Codepage 843Eingabe chinesischer Zeichen

847in HTML angeben 870Unicode 55, 844XML 795

Zeichenvorratder Turing-Maschine 97

Zeiger 475, 1100auf beliebigen Datentyp 551auf nichts (NULL) 481fehlender in Java 489für Call by Reference 476

Zeilenfrequenz (Monitor) 162Zeilenumbruch

auf verschiedenen Plattformen 838

HTML 870konvertieren 839Perl-Programme 840

Zeilenumbrucheentfernen, Perl 500

Zeitdiskret 54Zeitmanagement 641

Netzplan 642

Zentraleinheit 113alte Bedeutung 115

ZEROFILL, SQL-Feldoption 699Ziffer

in RegExp 558z-index, CSS-Angabe 917zip, Unix-Befehl 862ZIP-Datei 859Zip-Laufwerk 150Zugriffsrechte 308

ändern, Unix 387Zuordnungseinheit (Datei-

system) 304Zuse, Konrad 36Zustand

der Turing-Maschine 97Zweierkomplement 80ZX Spectrum 286ZX81 42, 286