Programación práctica de sistemas en C++
566 páginas
Spanish
PDF
4.5

Programación práctica de sistemas en C++

Programación práctica de sistemas en C++

Autor:

Año:

Resumen:

Introducción

El libro «Hands-On System Programming with C++» (en español: «Programación práctica de sistemas en C++») del autor Rian Quinn es una guía práctica que sumerge al lector en el mundo de la programación de bajo nivel utilizando C++ moderno (C++17). Publicado en 2018 por la editorial Packt, el libro de 566 páginas cubre aspectos clave de la interacción de un programa con el sistema operativo: llamadas al sistema, gestión de memoria, multiproceso, comunicación entre procesos (IPC) y trabajo con sistemas de archivos. A diferencia de los libros de texto académicos, Quinn se enfoca en ejemplos reales y ejercicios prácticos, lo que convierte al libro en una opción ideal para desarrolladores que desean pasar de escribir código de aplicaciones a crear componentes de sistema.

De qué trata el libro

El libro está dividido en 14 capítulos, cada uno dedicado a un tema específico de la programación de sistemas. El autor comienza con lo básico: compilación, enlazado, trabajo con g++ y CMake, y luego pasa a conceptos más complejos. El enfoque principal está en:

  • Llamadas al sistema POSIX — open, read, write, mmap, fork, exec y sus envoltorios en C++.
  • Gestión de memoria — trabajo con memoria virtual, asignación de grandes bloques, uso de mmap para mapear archivos.
  • Multiproceso y sincronización — std::thread, mutex, variables de condición, operaciones atómicas, así como primitivas de bajo nivel (futex).
  • Comunicación entre procesos — tuberías (pipes), colas de mensajes, memoria compartida, semáforos y sockets.
  • Trabajo con sistemas de archivos — monitoreo de cambios, entrada/salida asíncrona (AIO, io_uring).
  • Perfilado y depuración — uso de perf, strace, gdb y herramientas integradas de C++.

Cada capítulo contiene numerosos ejemplos de código que se pueden ejecutar y modificar inmediatamente. El autor también aborda cuestiones de seguridad y portabilidad del código entre Linux y Windows (a través del subsistema WSL).

Para quién es este libro

El libro está dirigido a desarrolladores de C++ con experiencia básica (conocimiento de sintaxis, STL, clases). Será útil para:

  • Programadores que pasan del nivel de aplicaciones (web, bases de datos) a la programación de sistemas.
  • Desarrolladores de sistemas embebidos y controladores.
  • Especialistas en rendimiento y optimización.
  • Estudiantes de últimos cursos que estudian sistemas operativos.

Si conoces C++ a nivel de escribir utilidades de consola, pero quieres entender cómo funcionan los procesos, los hilos y la memoria «bajo el capó», este libro será un excelente puente entre la teoría y la práctica.

Qué aprenderá el lector

Después de leer el libro, podrás:

  • Escribir utilidades de sistema eficientes en C++ utilizando llamadas al sistema.
  • Gestionar la memoria manualmente, evitando fugas y fragmentación.
  • Crear aplicaciones multiproceso con sincronización correcta.
  • Organizar el intercambio de datos entre procesos a través de memoria compartida, tuberías y sockets.
  • Trabajar con entrada/salida asíncrona para mejorar el rendimiento.
  • Perfilar y depurar código de sistema con herramientas estándar de Linux.
  • Comprender el funcionamiento interno del sistema operativo (Linux) y su API.

Puntos fuertes

El libro se destaca frente a otras publicaciones sobre programación de sistemas gracias a:

  • Enfoque práctico — cada bloque teórico está respaldado por código que se puede descargar de GitHub.
  • C++ moderno — el autor utiliza activamente las características de C++17 (std::optional, std::variant, structured bindings), mostrando cómo escribir código seguro y legible.

Recommendations