Praktische Systemprogrammierung mit C++
566 Seiten
German
PDF
4.5

Praktische Systemprogrammierung mit C++

Praktische Systemprogrammierung mit C++

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Hands-On System Programming with C++“ von Rian Quinn ist ein praktischer Leitfaden, der den Leser in die Welt der hardwarenahen Programmierung mit modernem C++ (C++17) eintauchen lässt. Das 2018 beim Verlag Packt erschienene Buch mit 566 Seiten behandelt die wichtigsten Aspekte der Interaktion eines Programms mit dem Betriebssystem: Systemaufrufe, Speicherverwaltung, Multithreading, Interprozesskommunikation (IPC) und Dateisystemoperationen. Im Gegensatz zu akademischen Lehrbüchern legt Quinn den Schwerpunkt auf reale Beispiele und praktische Übungen, was das Buch zur idealen Wahl für Entwickler macht, die von der Entwicklung von Anwendungssoftware zur Erstellung von Systemkomponenten übergehen möchten.

Worum geht es in dem Buch

Das Buch ist in 14 Kapitel unterteilt, die sich jeweils einem bestimmten Thema der Systemprogrammierung widmen. Der Autor beginnt mit den Grundlagen: Kompilierung, Linken, Arbeiten mit g++ und CMake, und geht dann zu komplexeren Konzepten über. Der Schwerpunkt liegt auf:

  • POSIX-Systemaufrufen — open, read, write, mmap, fork, exec und deren C++-Wrapper.
  • Speicherverwaltung — Arbeit mit virtuellem Speicher, Allokation großer Blöcke, Verwendung von mmap zum Mappen von Dateien.
  • Multithreading und Synchronisation — std::thread, Mutexe, Bedingungsvariablen, atomare Operationen sowie hardwarenahe Primitive (futex).
  • Interprozesskommunikation — Pipes, Message Queues, Shared Memory, Semaphore und Sockets.
  • Dateisystemoperationen — Überwachung von Änderungen, asynchrone Ein-/Ausgabe (AIO, io_uring).
  • Profiling und Debugging — Verwendung von perf, strace, gdb und integrierten C++-Werkzeugen.

Jedes Kapitel enthält zahlreiche Codebeispiele, die sofort ausgeführt und modifiziert werden können. Der Autor geht auch auf Fragen der Sicherheit und der Portabilität des Codes zwischen Linux und Windows (über das WSL-Subsystem) ein.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an C++-Entwickler mit grundlegender Erfahrung (Kenntnisse der Syntax, STL, Klassen). Es ist nützlich für:

  • Programmierer, die von der Anwendungsebene (Web, Datenbanken) zur Systemprogrammierung wechseln.
  • Entwickler eingebetteter Systeme und Treiber.
  • Spezialisten für Leistung und Optimierung.
  • Fortgeschrittene Studenten, die Betriebssysteme studieren.

Wenn Sie C++ auf dem Niveau der Erstellung von Konsolen-Dienstprogrammen beherrschen, aber verstehen möchten, wie Prozesse, Threads und Speicher „unter der Haube“ funktionieren, ist dieses Buch eine hervorragende Brücke zwischen Theorie und Praxis.

Was der Leser lernen wird

Nach der Lektüre des Buches werden Sie in der Lage sein:

  • Effiziente Systemdienstprogramme in C++ unter Verwendung von Systemaufrufen zu schreiben.
  • Speicher manuell zu verwalten und dabei Lecks und Fragmentierung zu vermeiden.
  • Multithread-Anwendungen mit korrekter Synchronisation zu erstellen.
  • Datenaustausch zwischen Prozessen über Shared Memory, Pipes und Sockets zu organisieren.
  • Mit asynchroner Ein-/Ausgabe zu arbeiten, um die Leistung zu steigern.
  • Systemcode mit Standard-Linux-Werkzeugen zu profilieren und zu debuggen.
  • Den inneren Aufbau des Betriebssystems (Linux) und seiner API zu verstehen.

Stärken

Das Buch hebt sich von anderen Publikationen zur Systemprogrammierung ab durch:

  • Praktische Ausrichtung — jeder theoretische Block wird durch Code untermauert, der von GitHub heruntergeladen werden kann.
  • Modernes C++ — der Autor nutzt aktiv die Möglichkeiten von C++17 (std::optional, std::variant, structured bindings) und zeigt, wie man sicheren und lesbaren Code schreibt.

Empfehlungen