Description
Vernetzte Rechnersysteme und insbesondere das weltumspannende Internet haben unsere Welt verändert. Die Anziehungskraft derartiger Rechnernetze steht und fällt mit der Leistungsfähigkeit und Zuverlässigkeit der darüber verfügbaren Anwendungen. Ohne Online-Enzyklopädien, Online-Shopping, File-Sharing und vieles mehr wäre das Internet wohl nach wie vor nur für Wissenschaftler und Computerexperten von Interesse.
Bei der Entwicklung netzwerkfähiger Anwendungen sind neben der Kenntnis der Netzwerk-APIs auch fundierte Einsichten in die Systemprogrammierung unabdingbar. Aufbauend auf einer kompakten Einführung in die Unix-Systemprogrammierung erläutert der Autor anhand zahlreicher praktischer Beispiele die Programmierung nebenläufiger Abläufe mittels Unix-Prozessen und POSIX-Threads. Die Grundlagen der Netzwerkprogrammierung mit TCP/IP und der Sockets-API werden durch fünf einschlägige Implementierungsmuster für typische Server-Programme vertieft. Das Themenspektrum der Netzwerkprogrammierung wird durch die ausführliche Darstellung der Absicherung des Datenaustauschs mittels SSL/TLS am Beispiel von OpenSSL abgerundet.
Programmieren mit UNIX-Prozessen.- Ein- und Ausgabe (Filedeskription, Sockets) unter UNIX.- Parallelität mit Prozessen.- Das UNIX-Prozessmodell.- Parallele Prozesse mit fork() und exec().- Daemon-Prozesse und inetd.- Beliebte Fallstricke.- Programmieren mit Threads.- Multithreading vs. Multiprocessing.- Parallelität mit Threads.- Thread Lifetime.- Synchronisation (gegenseitiger Ausschluss, Bedingungsvariablen, Signale, Broadcasts).- Einsatzarten für Threads (Pipeline, Workcrew, Master/Slave) und beliebte Stolpersteine.- Programmieren mit Sockets.- TCP/IP-Protokoll: Aufbau und Abbau (Drei-Wege-Handshake).- Was sind Sockets?- Wichtige Adress-, Socketstrukturen und -funktionen.- Wichtige Socketoptionen.- Programmierung von Clients.- Programmierung von Servern.- Parallelität mit Sockets.- TCP vs. UDP.- IPv4 vs. IPv6.- Netzwerkprogrammnutzung mit SSL/TLS.Markus Zahn war nach Abschluß seines Mathematik-Studiums im Jahr 1994 als wissenschaftlicher Mitarbeiter am Lehrstuhl für Informatik I an der Universität Augsburg tätig und hat dort 1999 mit einer umfassenden Dissertation zum Thema "Konsistenzmechanismen in Software-DSM-Systemen" promoviert. Seit 1997 leitet Herr Zahn die Arbeitsgruppe "Betriebssysteme und parallele Server" am Rechenzentrum der Uni Augsburg. Die thematischen Schwerpunkte seiner Arbeit liegen in der parallelen und verteilten Programmierung von UNIX-Clustern und in den Bereichen POSIX-Threads, Remote Procedure Calls und Message Passing.
Contents
Programmieren mit UNIX-Prozessen.- Ein- und Ausgabe (Filedeskription, Sockets) unter UNIX.- Parallelität mit Prozessen.- Das UNIX-Prozessmodell.- Parallele Prozesse mit fork() und exec().- Daemon-Prozesse und inetd.- Beliebte Fallstricke.- Programmieren mit Threads.- Multithreading vs. Multiprocessing.- Parallelität mit Threads.- Thread Lifetime.- Synchronisation (gegenseitiger Ausschluss, Bedingungsvariablen, Signale, Broadcasts).- Einsatzarten für Threads (Pipeline, Workcrew, Master/Slave) und beliebte Stolpersteine.- Programmieren mit Sockets.- TCP/IP-Protokoll: Aufbau und Abbau (Drei-Wege-Handshake).- Was sind Sockets?- Wichtige Adress-, Socketstrukturen und -funktionen.- Wichtige Socketoptionen.- Programmierung von Clients.- Programmierung von Servern.- Parallelität mit Sockets.- TCP vs. UDP.- IPv4 vs. IPv6.- Netzwerkprogrammnutzung mit SSL/TLS.



