Programación práctica de sistemas en C++
Programación práctica de sistemas en C++
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,execy sus envoltorios en C++. - Gestión de memoria — trabajo con memoria virtual, asignación de grandes bloques, uso de
mmappara 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,gdby 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
Patrones de diseño en Kotlin
Desarrollo web en Rust: de los fundamentos al despliegue
Código limpio en Kotlin: Escribiendo aplicaciones elegantes y mantenibles
C++ para principiantes: curso completo
Pruebas de aplicaciones Java: desde pruebas unitarias hasta escenarios de integración
PHP para principiantes: curso completo