Systemprogrammierung in C
Die systemnahe Programmierung ist eine der Stärken der Programmiersprache C. In diesem Kurs werden wir deshalb die wichtigsten und am häufigsten verwendeten Funktionen gängiger Unix-Betriebssysteme (inkl. Linux) ansehen, wie beispielsweise Filedeskriptoren, Sockets, Prozesse, Pipes und Threads. Dadurch erlangen wir nicht nur ein besseres Verständnis der C-Programmierung sondern auch wie der Kernel funktioniert und angesprochen werden kann.
In diesem Kurs werden wir gemeinsam einen einfachen multithreaded Webserver mit CGI-Interface programmieren der mit Pipes und Semaphoren arbeitet.
Kursinhalte
- Grundkonzepte der Unix Systemprogrammierung
- Kernel vs Userspace
- syscalls vs libc-Funktionen
- Dateien
- Unix-Konzept: Everythings a file
- Dateien öffnen & schließen
- Dateien lesen & schreiben
- mmap(): Dateien & Memory Management (COW-Konzept)
- Beispiel: cat auf 2 Arten
- Sockets
- Was ist ein Socket?
- Socket-Typen
- Client API
- Server API
- Beispiel: Mini-Server
- Prozessmanagement
- Was ist ein Prozess?
- Prozesse klonen: fork(2) & vfork(2)
- Applikation ausführen: exec*(3)
- Prozess beenden: exit(3) vs _exit(2)
- Beispiel: Prozess im Hintergrund ausführen
- Pipes
- Was sind Pipes?
- Pipes erstellen: pipe(2)
- Filedeskriptoren duplizieren mit dup2(2)
- Beispiel: Ausgabe von Prozess lesen
- Threads
- Was sind Threads?
- pthreads Library
- Synchronisierung von Threads
- Was bedeutet Threadsafety?
- Wsa bedeutet reentrant?
- Semaphoren
- Mutex
- Erstellen, beenden und warten auf Threads
- Beispiel: Simultanberechnung
- Abschlußbeispiel: multithreaded Webserver mit CGI-Interface
Empfohlene Vorkenntnisse
Dieser Kurs baut auf dem "C-Programmierung (Grundlagen)" Kurs auf. Das dort vermittelte Wissen wird hier vorausgesetzt.
Kurslänge: 2 Tage
Details zu diesem Open Source Training
Kurstitel: | Systemprogrammierung in C |
Kurspreis: | 1.490,00 € exkl. MwSt pro Teilnehmer, Standardpreis ohne Rabatt |
Kursdatum: Kurszeiten: |
Open date - Open date |
|
|
Kursort: |
LinuxCampus Sie können vom jedem Ort teilnehmen von dem Sie möchten und es ist keine Anreise notwendig. Sie benötigen nur eine Webcam, einen Webbrowser (ZOOM-Session) und einen VNC-Client für den Zugriff auf ihr Teilnehmer LAB. |
Details: |
Der Kurs ist auf 10 Teilnehmer beschränkt |
Kennen Sie schon das LinuxCampus.net Rabatt & Bonus System? |
Den Kurstermin Open date - Open date buchen
Schritt 1: Auswahl der Kursvariante (Classroom oder Live)
Schritt 2: Angabe der Teilnehmer Daten
Alternative Kursmöglichkeiten
Alternativer Kursort:
Dieses Thema kann auch als In-House Training oder Einzeltraining gebucht werden
Alternativer Termin:
Ab 3 Teilnehmern bieten wir Ihnen gerne einen auf Ihre Bedürfnisse abgestimmten Termin an
Weitere Termine zu diesem Kursthema
Datum | Kurstitel | Ort |
---|---|---|
ohne Datum | Systemprogrammierung in C | LinuxCampus |