Fundamentos de Sistemas Operativos: Una Aproximación Práctica Usando Linux
Bienvenido a la página principal del libro Fundamentos de Sistemas Operativos: Una Aproximación Práctica Usando Linux.
Este libro es libre y gratuito,
se distribuye bajo una licencia Atribución-CompartirIgual 4.0 Internacional
de Creative Commons, disponible en https://creativecommons.org/licenses/by-sa/4.0/deed.es.
Este es un libro de sistemas operativos, centrado en sistemas GNU/Linux. Lo empezamos a escribir durante el primer confinamiento causado por la pandemia COVID-19, como parte del material online para dar soporte a nuestros alumnos de Ingeniería Telemática/Telecomunicaciones e Ingeniería Robótica Software. Como tal, es un libro eminentemente práctico (usando el lenguaje de programación C), aunque hay capítulos que incluyen conceptos más teóricos.
El contenido se centra en una introducción a los sistemas de tipo Unix (Unix-like), la estructura básica del sistema (historia, kernel, área de usuario, uso básico, etc.), el uso efectivo de la shell (comandos básicos, creación de shell scripts, pipelines, uso del terminal, expresiones regulares, grep, sed, awk, etc.), la comprensión y el uso de procesos (llamadas al sistema, planificación, etc.), la comprensión de sistemas de ficheros y el uso de ficheros (llamadas al sistema, formato de sistemas de ficheros, etc.), la comprensión y el uso de la memoria (gestión de memoria, etc.), la comunicación entre procesos (pipes, sockets, fifos, señales, etc.) y una introducción a la programación concurrente (condiciones de carrera, memoria compartida, cerrojos, threads, etc.).
Los ejemplos se han probado en Linux (específicamente, en una distribución Ubuntu), pero en principio deberían ser fáciles de trasladar a cualquier sistema tipo Unix.
Descarga el PDF.
Programas de ejemplo en C del libro
Programas de ejemplo en C del libro
Scripts de ejemplo del libro
Changelog
-
2024-05-2. Versión 2.01. Corrección de erratas menores.
-
2023-10-9. Versión 2.0. Corrección de erratas menores. Se incluyen secciones avanzadas sobre el terminal, mmu, gather/scatter, E/S asíncrona, ejercicios y algunas adiciones menores (sudo, etc).
-
2022-10-17. Versión 1.02. Corrección de erratas menores.
-
2022-09-21. Versión 1.00. Versión inicial.
Erratas, sugerencias, etc.
Nos puedes enviar un correo electrónico o un issue en github.