Curso de Sistemas Operativos

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.?

Llamadas al sistema

El shell

Ficheros y directorios

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