|
Liebe Leserin, lieber Leser |
3 |
|
|
Auf einen Blick |
4 |
|
|
Inhalt |
6 |
|
|
Geleitwort des Fachgutachters |
16 |
|
|
Vorwort |
18 |
|
|
1 Einführung |
26 |
|
|
1.1 Informationstechnik, Informatik und EDV |
26 |
|
|
1.1.1 Fachrichtungen der Informatik |
27 |
|
|
1.1.2 Überblick über die IT-Ausbildung |
28 |
|
|
1.2 Die Geschichte der Rechenmaschinen und Computer |
34 |
|
|
1.2.1 Die Vorgeschichte |
35 |
|
|
1.2.2 Die Entwicklung der elektronischen Rechner |
37 |
|
|
1.2.3 Entwicklung der Programmiersprachen |
46 |
|
|
1.3 Digitale Speicherung und Verarbeitung von Informationen |
53 |
|
|
1.3.1 Digitale Bilddaten |
54 |
|
|
1.3.2 Digitale Audiodaten |
55 |
|
|
1.3.3 Digitale Speicherung von Text |
56 |
|
|
1.4 Zusammenfassung |
57 |
|
|
2 Mathematische und technische Grundlagen |
58 |
|
|
2.1 Einführung in die Logik |
58 |
|
|
2.1.1 Aussagen |
59 |
|
|
2.1.2 Aussageformen |
60 |
|
|
2.1.3 Logische Verknüpfungen |
61 |
|
|
2.1.4 Mengenoperationen |
68 |
|
|
2.1.5 Weitere wichtige Berechnungsverfahren |
71 |
|
|
2.2 Informationsspeicherung im Computer |
73 |
|
|
2.2.1 Zahlensysteme |
73 |
|
|
2.2.2 Bits und Bytes |
79 |
|
|
2.3 Elektronische Grundlagen |
84 |
|
|
2.3.1 Einfache Schaltungen |
84 |
|
|
2.3.2 Zusammengesetzte Schaltungen |
87 |
|
|
2.4 Automatentheorien und -simulationen |
91 |
|
|
2.4.1 Algorithmen |
92 |
|
|
2.4.2 Die Turing-Maschine |
97 |
|
|
2.4.3 Der virtuelle Prozessor |
101 |
|
|
2.5 Zusammenfassung |
107 |
|
|
3 Hardware |
110 |
|
|
3.1 Grundlagen |
110 |
|
|
3.2 Die Zentraleinheit |
114 |
|
|
3.2.1 Aufbau und Aufgaben des Prozessors |
116 |
|
|
3.2.2 Der Arbeitsspeicher |
126 |
|
|
3.2.3 Das BIOS |
128 |
|
|
3.2.4 Bus- und Anschlusssysteme |
134 |
|
|
3.3 Die Peripherie |
143 |
|
|
3.3.1 Massenspeicher |
144 |
|
|
3.3.2 Eingabegeräte |
157 |
|
|
3.3.3 Ausgabegeräte |
161 |
|
|
3.3.4 Soundhardware |
167 |
|
|
3.4 Zusammenfassung |
168 |
|
|
4 Netzwerkgrundlagen |
170 |
|
|
4.1 Grundlagen |
170 |
|
|
4.1.1 Was ist ein Netzwerk? |
170 |
|
|
4.1.2 Entstehung der Netzwerke |
172 |
|
|
4.2 Funktionsebenen von Netzwerken |
177 |
|
|
4.2.1 Das OSI-Referenzmodell |
178 |
|
|
4.2.2 Das Schichtenmodell der Internetprotokolle |
180 |
|
|
4.2.3 Netzwerkkommunikation über die Schichten eines Schichtenmodells |
183 |
|
|
4.3 Klassifizierung von Netzwerken |
187 |
|
|
4.3.1 Die Reichweite des Netzwerks |
187 |
|
|
4.3.2 Die Netzwerktopologie |
189 |
|
|
4.3.3 Der Zentralisierungsgrad des Netzwerks |
190 |
|
|
4.4 Netzwerkkarten, Netzwerkkabel und Netzzugangsverfahren |
197 |
|
|
4.4.1 Die verschiedenen Ethernet-Standards |
198 |
|
|
4.4.2 Token Ring |
203 |
|
|
4.4.3 Drahtlose Netze |
205 |
|
|
4.4.4 Sonstige Zugangsarten |
209 |
|
|
4.5 Datenfernübertragung |
211 |
|
|
4.5.1 Netzwerkzugang per Modem (analoge Telefonleitung) |
212 |
|
|
4.5.2 ISDN |
213 |
|
|
4.5.3 DSL-Dienste |
215 |
|
|
4.6 Die TCP/IP-Protokollfamilie |
218 |
|
|
4.6.1 Netzzugang in TCP/IP-Netzwerken |
220 |
|
|
4.6.2 IP-Adressen, Datagramme und Routing |
221 |
|
|
4.6.3 Transportprotokolle |
247 |
|
|
4.6.4 Das Domain Name System (DNS) |
253 |
|
|
4.6.5 Verschiedene Internet-Anwendungsprotokolle |
257 |
|
|
4.7 Andere Protokollstapel |
273 |
|
|
4.7.1 Die AppleTalk-Protokollfamilie |
273 |
|
|
4.7.2 Novell IPX/SPX |
276 |
|
|
4.7.3 NetBEUI/SMB |
278 |
|
|
4.8 Zusammenfassung |
278 |
|
|
5 Betriebssystemgrundlagen |
282 |
|
|
5.1 Entwicklung der Betriebssysteme |
283 |
|
|
5.1.1 Die Geschichte von Unix |
285 |
|
|
5.1.2 PC-Betriebssysteme |
287 |
|
|
5.2 Aufgaben und Konzepte |
291 |
|
|
5.2.1 Allgemeiner Aufbau von Betriebssystemen |
291 |
|
|
5.2.2 Prozessverwaltung |
299 |
|
|
5.2.3 Speicherverwaltung |
303 |
|
|
5.2.4 Dateisysteme |
305 |
|
|
5.3 Die allgegenwärtige Virtualisierung |
312 |
|
|
5.3.1 Virtualisierungslösungen im Überblick |
313 |
|
|
5.3.2 VMware Workstation als konkretes Beispiel |
314 |
|
|
5.4 Zusammenfassung |
318 |
|
|
6 Windows |
320 |
|
|
6.1 Allgemeine Informationen |
320 |
|
|
6.1.1 Die verschiedenen Windows-Versionen |
320 |
|
|
6.1.2 Windows-Dateisysteme |
324 |
|
|
6.2 Windows im Einsatz |
325 |
|
|
6.2.1 Die Windows-Benutzeroberfläche |
326 |
|
|
6.2.2 Die Windows-Konsole |
334 |
|
|
6.2.3 Die Windows PowerShell |
338 |
|
|
6.2.4 Windows-Konfiguration |
349 |
|
|
6.3 Windows-Netzwerkkonfiguration |
356 |
|
|
6.3.1 Allgemeine Einstellungen |
356 |
|
|
6.3.2 TCP/IP-Dienstprogramme |
358 |
|
|
6.3.3 Datei- und Druckserver unter Windows |
361 |
|
|
6.3.4 Windows-Server |
362 |
|
|
6.4 Zusammenfassung |
364 |
|
|
7 Linux |
366 |
|
|
7.1 Arbeiten mit der Shell |
368 |
|
|
7.1.1 Booten und Login |
368 |
|
|
7.1.2 Virtuelle Terminals |
371 |
|
|
7.1.3 Grundfunktionen der Shell |
372 |
|
|
7.1.4 Hilfefunktionen |
378 |
|
|
7.1.5 Pipes und Ein-/Ausgabeumleitung |
381 |
|
|
7.1.6 Die wichtigsten Systembefehle |
384 |
|
|
7.2 Konfigurations- und Administrationsaufgaben |
398 |
|
|
7.2.1 Syslog und Log-Dateien |
398 |
|
|
7.2.2 Programme automatisch starten |
400 |
|
|
7.2.3 Software installieren |
402 |
|
|
7.3 Automatisierung |
404 |
|
|
7.3.1 Shell-Skripte |
404 |
|
|
7.3.2 Weitere Hilfsmittel |
408 |
|
|
7.4 Editoren |
411 |
|
|
7.4.1 vi |
411 |
|
|
7.4.2 Emacs |
418 |
|
|
7.5 Grafische Benutzeroberflächen |
423 |
|
|
7.5.1 Der X-Server |
423 |
|
|
7.5.2 Desktops |
424 |
|
|
7.6 Netzwerkkonfiguration unter Linux |
429 |
|
|
7.6.1 Grundeinstellungen |
429 |
|
|
7.6.2 TCP/IP-Dienstprogramme |
430 |
|
|
7.6.3 Datei- und Druckserver unter Linux |
431 |
|
|
7.7 Zusammenfassung |
435 |
|
|
8 Mac OS X |
438 |
|
|
8.1 Mit Aqua arbeiten |
441 |
|
|
8.1.1 Die Menüleiste |
443 |
|
|
8.1.2 Das Dock |
444 |
|
|
8.1.3 Der Finder |
444 |
|
|
8.1.4 Exposé und Dashboard |
446 |
|
|
8.2 Systemkonfiguration |
448 |
|
|
8.2.1 Besonderheiten der Mac-Dateisysteme |
449 |
|
|
8.3 Mac OS X-Netzwerkkonfiguration |
450 |
|
|
8.3.1 Serverdienste unter Mac OS X |
452 |
|
|
8.4 Zusammenfassung |
454 |
|
|
9 Grundlagen der Programmierung |
456 |
|
|
9.1 Die Programmiersprache C |
457 |
|
|
9.1.1 Das erste Beispiel |
458 |
|
|
9.1.2 Elemente der Sprache C |
461 |
|
|
9.1.3 Die C-Standardbibliothek |
480 |
|
|
9.2 Java |
484 |
|
|
9.2.1 Grundlegende Elemente der Sprache Java |
486 |
|
|
9.2.2 Objektorientierte Programmierung mit Java |
491 |
|
|
9.2.3 Dateizugriffe in Java |
497 |
|
|
9.3 Perl |
498 |
|
|
9.3.1 Das erste Beispiel |
500 |
|
|
9.3.2 Elemente der Sprache Perl |
501 |
|
|
9.4 Ruby |
511 |
|
|
9.4.1 Das erste Beispiel |
513 |
|
|
9.4.2 Ruby-Grundelemente |
515 |
|
|
9.4.3 Objektorientierung in Ruby |
529 |
|
|
9.5 Zusammenfassung |
540 |
|
|
10 Konzepte der Programmierung |
542 |
|
|
10.1 Algorithmen und Datenstrukturen |
542 |
|
|
10.1.1 Ein einfaches Praxisbeispiel |
542 |
|
|
10.1.2 Sortier-Algorithmen |
545 |
|
|
10.1.3 Such-Algorithmen |
549 |
|
|
10.1.4 Ausgewählte Datenstrukturen |
551 |
|
|
10.2 Reguläre Ausdrücke |
556 |
|
|
10.2.1 Muster für reguläre Ausdrücke |
557 |
|
|
10.2.2 Programmierung mit regulären Ausdrücken |
561 |
|
|
10.3 Systemnahe Programmierung |
564 |
|
|
10.3.1 Prozesse und Pipes |
564 |
|
|
10.3.2 Threads |
568 |
|
|
10.4 Einführung in die Netzwerkprogrammierung |
572 |
|
|
10.4.1 Die Berkeley Socket API |
572 |
|
|
10.4.2 Ein praktisches Beispiel |
579 |
|
|
10.4.3 Ein Ruby-Webserver |
583 |
|
|
10.5 Verteilte Anwendungen mit Java Enterprise Edition |
599 |
|
|
10.5.1 Enterprise Java Beans (EJB) |
600 |
|
|
10.5.2 Java Servlets |
605 |
|
|
10.5.3 Webservices |
606 |
|
|
10.6 GUI- und Grafikprogrammierung |
609 |
|
|
10.6.1 Zeichnungen und Grafiken erstellen |
611 |
|
|
10.6.2 Animation |
616 |
|
|
10.6.3 Programmierung fensterbasierter Anwendungen |
620 |
|
|
10.6.4 Java-Applets |
633 |
|
|
10.7 Zusammenfassung |
635 |
|
|
11 Software-Engineering |
638 |
|
|
11.1 Überblick |
639 |
|
|
11.1.1 Der Entwicklungszyklus |
640 |
|
|
11.1.2 Planung und Analyse |
641 |
|
|
11.1.3 Entwurf |
647 |
|
|
11.1.4 Implementierung und Test |
648 |
|
|
11.1.5 Dokumentation |
649 |
|
|
11.1.6 Konkrete Entwicklungsverfahren |
650 |
|
|
11.2 Werkzeuge |
654 |
|
|
11.2.1 UML |
655 |
|
|
11.2.2 Entwurfsmuster |
661 |
|
|
11.2.3 Unit-Tests |
669 |
|
|
11.3 Zusammenfassung |
673 |
|
|
12 Datenbanken |
676 |
|
|
12.1 Die verschiedenen Datenbanktypen |
677 |
|
|
12.1.1 Einzeltabellendatenbanken |
679 |
|
|
12.1.2 Relationale Datenbanken |
680 |
|
|
12.1.3 Objektorientierte Datenbanken |
687 |
|
|
12.2 MySQL - ein konkretes RDBMS |
690 |
|
|
12.2.1 MySQL installieren und konfigurieren |
691 |
|
|
12.2.2 Erste Schritte mit dem mysql-Client |
694 |
|
|
12.3 SQL-Abfragen |
695 |
|
|
12.3.1 Datenbanken und Tabellen erzeugen |
696 |
|
|
12.3.2 Auswahlabfragen |
700 |
|
|
12.3.3 Einfüge-, Lösch- und Änderungsabfragen |
704 |
|
|
12.3.4 Transaktionen |
706 |
|
|
12.4 MySQL-Administration |
707 |
|
|
12.4.1 mysqladmin |
707 |
|
|
12.4.2 Benutzerverwaltung |
708 |
|
|
12.4.3 Import und Export von Daten, Backups |
713 |
|
|
12.4.4 Konfigurationsdateien |
716 |
|
|
12.4.5 Log-Dateien |
717 |
|
|
12.4.6 Replikation |
719 |
|
|
12.5 Grundlagen der Datenbankprogrammierung |
721 |
|
|
12.6 Zusammenfassung |
725 |
|
|
13 Server für Webanwendungen |
728 |
|
|
13.1 HTTP im Überblick |
728 |
|
|
13.1.1 Ablauf der HTTP-Kommunikation |
729 |
|
|
13.1.2 HTTP-Statuscodes |
732 |
|
|
13.1.3 HTTP-Header |
735 |
|
|
13.2 Der Webserver Apache |
738 |
|
|
13.2.1 Apache im Überblick |
739 |
|
|
13.2.2 Apache-Module |
740 |
|
|
13.2.3 Apache installieren |
742 |
|
|
13.2.4 Apache-Konfiguration |
745 |
|
|
13.3 PHP installieren und einrichten |
759 |
|
|
13.3.1 Installation |
760 |
|
|
13.3.2 Die PHP-Konfigurationsdatei php.ini |
764 |
|
|
13.4 Zusammenfassung |
766 |
|
|
14 Weitere Internet-Serverdienste |
768 |
|
|
14.1 Namens- und Verzeichnisdienste |
768 |
|
|
14.1.1 Der DNS-Server BIND |
768 |
|
|
14.1.2 Der Verzeichnisdienst OpenLDAP |
774 |
|
|
14.2 Sonstige Server |
784 |
|
|
14.2.1 vsftpd, ein FTP-Server |
784 |
|
|
14.2.2 inetd und xinetd |
786 |
|
|
14.3 Zusammenfassung |
789 |
|
|
15 XML |
792 |
|
|
15.1 Der Aufbau von XML-Dokumenten |
794 |
|
|
15.1.1 Die grundlegenden Bestandteile von XML-Dokumenten |
794 |
|
|
15.1.2 Wohlgeformtheit |
802 |
|
|
15.2 DTDs und XML Schema |
805 |
|
|
15.2.1 Document Type Definitions (DTDs) |
805 |
|
|
15.2.2 Namensräume |
816 |
|
|
15.2.3 XML Schema |
817 |
|
|
15.3 XSLT |
820 |
|
|
15.4 Grundlagen der XML-Programmierung |
826 |
|
|
15.4.1 SAX |
828 |
|
|
15.4.2 DOM |
835 |
|
|
15.5 Zusammenfassung |
837 |
|
|
16 Weitere Datei- und Datenformate |
838 |
|
|
16.1 Textdateien und Zeichensätze |
838 |
|
|
16.1.1 Das Problem des Zeilenumbruchs |
839 |
|
|
16.1.2 Zeichensätze |
841 |
|
|
16.1.3 Textbasierte Dateiformate |
848 |
|
|
16.2 Binäre Dateiformate |
851 |
|
|
16.2.1 Bilddateiformate |
854 |
|
|
16.2.2 Multimedia-Dateiformate |
858 |
|
|
16.2.3 Archivdateien verwenden |
860 |
|
|
16.3 Zusammenfassung |
863 |
|
|
17 Webseitenerstellung mit (X)HTML und CSS |
866 |
|
|
17.1 HTML und XHTML |
867 |
|
|
17.1.1 Die Grundstruktur von HTML-Dokumenten |
868 |
|
|
17.1.2 Textstrukturierung und Textformatierung |
870 |
|
|
17.1.3 Listen und Aufzählungen |
877 |
|
|
17.1.4 Hyperlinks |
881 |
|
|
17.1.5 Bilder in Webseiten einbetten |
885 |
|
|
17.1.6 Tabellen |
889 |
|
|
17.1.7 Formulare |
895 |
|
|
17.1.8 Einbetten von Multimedia-Dateien |
903 |
|
|
17.1.9 Meta-Tags und Suchmaschinen |
906 |
|
|
17.2 Cascading Style Sheets (CSS) |
909 |
|
|
17.2.1 Platzieren von Stylesheets |
910 |
|
|
17.2.2 Stylesheet-Wertangaben |
912 |
|
|
17.2.3 Stylesheet-Eigenschaften |
913 |
|
|
17.2.4 Layer erzeugen und positionieren |
917 |
|
|
17.3 Zusammenfassung |
923 |
|
|
18 Webserveranwendungen |
924 |
|
|
18.1 PHP |
924 |
|
|
18.1.1 Sprachgrundlagen |
925 |
|
|
18.1.2 Klassen und Objekte |
937 |
|
|
18.1.3 Include-Dateien, Autoloader und Namespaces |
948 |
|
|
18.1.4 Webspezifische Funktionen |
949 |
|
|
18.1.5 Zugriff auf MySQL-Datenbanken |
955 |
|
|
18.1.6 Unit-Tests mit PHPUnit |
967 |
|
|
18.2 Ruby on Rails |
974 |
|
|
18.2.1 Grundlagen |
974 |
|
|
18.2.2 Ein Praxisbeispiel |
975 |
|
|
18.3 Weitere Technologien im Überblick |
986 |
|
|
18.3.1 Content-Management, Weblogs & Co. |
987 |
|
|
18.3.2 Blogs und Wikis |
989 |
|
|
18.4 Zusammenfassung |
991 |
|
|
19 JavaScript und Ajax |
994 |
|
|
19.1 JavaScript |
994 |
|
|
19.2 JavaScript im HTML-Dokument |
995 |
|
|
19.2.1 Erstes Beispiel: Ausgabe ins Dokument |
996 |
|
|
19.3 Formulare und Event Handler |
1000 |
|
|
19.3.1 Erstes Beispiel |
1000 |
|
|
19.3.2 Zugriff auf Formulare und ihre Elemente |
1002 |
|
|
19.4 Datums- und Uhrzeit-Funktionen |
1009 |
|
|
19.4.1 Datums- und Uhrzeit-Methoden |
1010 |
|
|
19.4.2 Timeout - die JavaScript-»Stoppuhr« |
1011 |
|
|
19.5 Manipulation von Bildern |
1012 |
|
|
19.5.1 Erstes Beispiel: Austauschen eines Bildes auf Knopfdruck |
1013 |
|
|
19.5.2 Vorausladen von Bildern |
1014 |
|
|
19.5.3 Eine gut funktionierende Rollover-Lösung |
1015 |
|
|
19.6 Browser- und Fensteroptionen |
1019 |
|
|
19.6.1 Browser-Eigenschaften |
1020 |
|
|
19.6.2 Automatische Hyperlinks - History und Location |
1021 |
|
|
19.6.3 Neue Browserfenster öffnen |
1022 |
|
|
19.7 DHTML und DOM |
1026 |
|
|
19.7.1 W3C-DOM im Überblick |
1026 |
|
|
19.7.2 Eine DOM-Baum-Anzeige |
1029 |
|
|
19.7.3 DOM-Anwendung in der Praxis |
1031 |
|
|
19.7.4 Dokumentinhalte verändern und austauschen |
1034 |
|
|
19.8 Ajax |
1036 |
|
|
19.8.1 Die erste Ajax-Anwendung |
1037 |
|
|
19.8.2 Datenaustauschformate: XML und JSON |
1043 |
|
|
19.8.3 Größeres Beispiel: eine interaktive Länderliste |
1044 |
|
|
19.9 Zusammenfassung |
1057 |
|
|
20 Computer- und Netzwerksicherheit |
1058 |
|
|
20.1 PC-Gefahren |
1059 |
|
|
20.1.1 Viren und Würmer |
1059 |
|
|
20.1.2 Trojaner und Backdoors |
1065 |
|
|
20.1.3 Weitere Schädlinge |
1066 |
|
|
20.2 Netzwerk- und Serversicherheit |
1072 |
|
|
20.2.1 Servergefahren |
1072 |
|
|
20.2.2 Wichtige Gegenmaßnahmen |
1074 |
|
|
20.2.3 Kryptografie |
1080 |
|
|
20.3 Zusammenfassung |
1083 |
|
|
A Glossar |
1088 |
|
|
B Zweisprachige Wortliste |
1102 |
|
|
B.1 Englisch-Deutsch |
1102 |
|
|
B.2 Deutsch-Englisch |
1104 |
|
|
C Kommentiertes Literatur- und Linkverzeichnis |
1108 |
|
|
C.1 Allgemeine Einführungen und Überblicke |
1108 |
|
|
C.2 Mathematische und technische Grundlagen |
1109 |
|
|
C.3 Hardware |
1109 |
|
|
C.4 Netzwerktechnik |
1110 |
|
|
C.5 Betriebssystemgrundlagen |
1110 |
|
|
C.6 Windows |
1111 |
|
|
C.7 Linux |
1112 |
|
|
C.8 Mac OS X |
1112 |
|
|
C.9 Grundlagen der Programmierung |
1113 |
|
|
C.10 Konzepte der Programmierung |
1114 |
|
|
C.11 Software-Engineering |
1114 |
|
|
C.12 Datenbanken |
1115 |
|
|
C.13 Server für Webanwendungen |
1116 |
|
|
C.14 Weitere Internet-Serverdienste |
1116 |
|
|
C.15 XML |
1117 |
|
|
C.16 Webseitenerstellung mit HTML und CSS |
1117 |
|
|
C.17 Webserveranwendungen |
1117 |
|
|
C.18 JavaScript und Ajax |
1118 |
|
|
C.19 Computer- und Netzwerksicherheit |
1119 |
|
|
Index |
1120 |
|