
Advanced Programming in the UNIX Environment, 3rd Edition
Richard Stevens, Stephen Rago
- Editorial
- Addison Wesley
- Año
- 2013
- Páginas
- ~1024
- Nivel
- Avanzado
De qué trata
Obra canónica y referencia definitiva sobre la programación de sistemas UNIX escrita por W. Richard Stevens y actualizada en su tercera edición por Stephen A. Rago para alinearse con los estándares POSIX.1-2008 y SUSv4 (Single UNIX Specification Version 4). Las explicaciones y llamadas al sistema se analizan y contrastan de manera simultánea en cuatro plataformas: Linux 3.2 (Ubuntu 12.04), FreeBSD 8.0, Apple OS X 10.6.8 (Darwin 10.8) y Solaris 10. Está dirigida a programadores intermedios y avanzados en lenguaje C, ingenieros de software y desarrolladores de infraestructura que necesitan comprender el funcionamiento interno del sistema operativo e interactuar con el kernel sin capas de abstracción intermedias.
El texto desmenuza de forma exhaustiva la biblioteca estándar de C y las primitivas POSIX: entrada y salida sin búfer (`open`, `read`, `write`, `lseek`, `fcntl`) e I/O estándar (`stdio`), archivos y directorios (`stat`, inodos, enlaces duros y simbólicos), ciclo de vida y control de procesos (`fork`, familias `exec`, `waitpid`), manejo de señales e interrupciones (`sigaction`, máscaras de señales), programación multihilo con hilos POSIX (`pthread`, exclusión mutua con mutexes, variables de condición y bloqueos de lectura/escritura), procesos demonio y sesiones de terminal (`termios`). Asimismo, profundiza en la comunicación entre procesos mediante tuberías (pipes), FIFOs, memoria compartida, semáforos y sockets de red Berkeley utilizando `getaddrinfo`, `socket`, `bind`, `listen` y `connect`.
A lo largo de sus capítulos se desarrollan implementaciones completas de referencia, entre las que destacan una biblioteca de base de datos indexada con concurrencia mediante bloqueo de registros (`fcntl`), un controlador de pseudoterminales (`pty`) y mecanismos de paso de descriptores de archivos entre procesos independientes. Todos los capítulos incorporan ejercicios técnicos con soluciones detalladas en el apéndice de la obra. Es un tratado indispensable de programación a bajo nivel que exige un sólido dominio de C y arquitectura de computadores; no cubre el desarrollo en modo núcleo (módulos o drivers), pero establece la base teórica y práctica esencial para construir software de alto rendimiento en entornos POSIX.
- Programación de sistemas
- UNIX / Linux
- Lenguaje C
- POSIX.1-2008
- Gestión de procesos
- POSIX Threads (pthreads)
- Señales e interrupciones
- Llamadas al sistema
- IPC (Comunicación entre procesos)
- Sockets de red
- Pseudoterminales
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✓ Incluye proyectos
Proyectos
Biblioteca de base de datos indexada (db)
Biblioteca de almacenamiento clave-valor en C con soporte para acceso concurrente seguro mediante hashing estático y bloqueo de registros con fcntl.
Controlador de pseudoterminales (pty)
Utilidad de línea de comandos que intercepta y gestiona sesiones interactivas de terminal emulando la capa termios y redirigiendo flujos estándar de entrada y salida.

