En esta página tienes material para el curso de introducción a Sistemas Operativos que se imparte en la URJC, en la Escuela de Ingeniería de Telecomunicación, como parte de diversos grados de ingeniería de telecomunicación.
El curso utiliza UNIX para enseñar qué abstracciones tiene un Sistema Operativo y cómo se usan. Esto es, cómo se programa en Linux o BSD usando C y cómo se utiliza el shell o intérprete de comandos en dicho sistema.
Hay videos con explicaciones para algunos de los temas y, con el tiempo, se incluirán videos para el resto (aunque esta parte es todavía “work in progress”).
El libro de texto es Introducción a las abstracciones del Sistema Operativo utilizando UNIX, Francisco J. Ballesteros 2016. Está todavía sin publicar pero tienes enlaces a PDFs en esta página.
Tienes los videos de algunas partes en youtube.
Los vídeos y secciones correspondientes del libro están en el orden en que deberían verse/leerse, agrupados por temas. El material no ha de utilizarse como referencia, ¡para eso ya está el manual!
Tema 1: Empezando
Capítulo 1 del libro.
¿Qué es el S.O.?
- Clip #1. Funcionamiento del ordenador.
- Clip #2. El kernel.
- Clip #3 El kernel vs. los programas de aplicación.
- Clip #4 El kernel como librería.
- Clip #5 El kernel como multiplexor.
- Secciones de libro de texto.
Llamadas al sistema
- Clip #6. Abstracciones y llamadas al sistema.
- Clip #7. Una llamada al sistema.
- Clip #8. La pila y llamadas al sistema.
- Clip #9. Comandos y llamadas al sistema.
- Clip #10 Primera sesión en UNIX.
- Secciones de libro de texto.
El shell
- Clip #11. El manual.
- Clip #12. Comandos y ficheros.
- Clip #13. Seguimos con comandos y ficheros.
- Secciones de libro de texto.
Ficheros y directorios
- Clip #14. Árbol de ficheros y paths.
- Clip #15. Directorios. Paths absolutos y relativos.
- Clip #16. Ficheros, bytes y líneas.
- Secciones de libro de texto.
Usuarios y permisos
Compilación, enlazado y carga
Tema 2: Procesos
Capítulo 2 del libro.
Programas y procesos
Carga de programas y segmentos
Nacimiento y muerte
Errores
Variables de entorno
Nombres de procesos, atributos y usuarios.
Límites, depuradores y core-dumps.
/proc.
Tema 3: Ficheros
Capítulo 3 del libro.
Ficheros, read y write.
Open, close, el terminal y la consola.
Offsets
Creación, borrado y enlaces.
Directorios y globbing.
Metadatos.
El tiempo.
Cambio de atributos.
Enlaces y dispotivos
Entrada/salida y buffering
Segmentos y ficheros proyectados
Montajes y espacios de nombres
Tema 4: Padres e hijos
Capítulo 4 del libro.
Ejecutando un programa
Creación de procesos
Descriptores de fichero
Cargando un nuevo programa
Todo junto; wait y procesos en background
Ejecutables y scripts
Tema 5: Intercomunicación entre procesos
Capítulo 5 del libro.
Redirecciones de entrada/salida
Pipelines
Pipefrom y sustitución de comandos
Pipes con nombre
Señales
Alarmas y time-outs
Terminales y sesiones
Tema 6: El shell como lenguaje
Capítulo 6 del libro.
Herramientas y convenios
Expresiones regulares
Trabajando con líneas y campos
Otras estructuras de control y funciones
Editando streams
Usando tablas
Tema 7: Concurrencia
Capítulo 7 del libro.Threads
Regiones críticas
Cierres
Cierres en ficheros y cierres de lectura/escritura
Deadlocks, livelocks y hambruna.
Semáforos
Semáforos con pipes
El buffer acotado
Monitores y variables condición
Tema 8: La red
Capítulo 8 del libro.Sockets