Conceptos básicos

¿Qué es un sistema operativo?

Definición técnica, roles fundamentales y la diferencia entre kernel y espacio de usuario.

¿Qué es un sistema operativo?

Definición de ingeniería
Un sistema operativo no es más que un programa que corre todo el tiempo en la computadora (el kernel), cuyo trabajo es repartir recursos escasos (CPU, RAM, Disco) entre programas que compiten por ellos.

Si le preguntas a un usuario qué es el sistema operativo, te dirá que es "Windows" o "macOS". Si le preguntas a un programador, te dirá que es el entorno donde corre su código. Pero si le preguntas a un ingeniero de sistemas, la respuesta es más cínica:

El sistema operativo es una burocracia necesaria.

Por sí mismo, el sistema operativo no produce nada útil. No puedes escribir una tesis en el kernel, ni puedes ver una película en el gestor de memoria. Su única función es proporcionar un entorno ordenado para que otros programas (los que realmente importan) puedan hacer su trabajo sin matarse entre ellos.


Los dos roles fundamentales

Podemos ver al sistema operativo desde dos perspectivas opuestas, dependiendo de si miramos desde arriba (usuario) o desde abajo (hardware).

1. La máquina extendida (abstracción)

El hardware es feo, complejo y difícil de programar.

  • Un disco duro no sabe de "archivos" ni "carpetas"; solo sabe de platos, pistas, sectores y cabezales magnéticos.
  • Escribir un "Hola Mundo" directamente en la tarjeta de video requeriría conocer los registros de voltaje específicos de ese fabricante.

El rol del OS: Ocultar esta realidad sucia y ofrecer abstracciones limpias y bonitas.

  • En lugar de "sector 4829 del plato 2", el OS te da: /home/usuario/tesis.pdf.
  • En lugar de gestionar interrupciones de red, el OS te da: socket().

2. El gestor de recursos (arbitraje)

Imagina que tienes 100 procesos (Chrome, Spotify, VS Code, etc.) corriendo en una computadora con 1 sola CPU y 8 GB de RAM. Todos quieren la CPU ahora y todos quieren toda la RAM ahora.

El rol del OS: Actuar como un árbitro estricto.

  • Multiplexación en el tiempo: Le da la CPU a Chrome por 10 milisegundos, luego se la quita y se la da a Spotify, creando la ilusión de que ambos corren a la vez.
  • Multiplexación en el espacio: Le da un trozo de RAM a cada uno y se asegura de que Chrome no pueda escribir en la memoria de Spotify (Protección).

La tríada de la virtualización

En este curso, aprenderemos cómo el OS logra su magia a través de tres mecanismos clave (basados en el libro OSTEP):

Virtualización

El OS toma un recurso físico (CPU, RAM) y lo transforma en una versión virtual más fácil de usar y más potente. Cada proceso cree que tiene su propia CPU privada y memoria infinita.

Concurrencia

Manejar muchos eventos a la vez. ¿Qué pasa si dos hilos intentan modificar el mismo contador al mismo tiempo? El OS proporciona primitivas (mutex, semáforos) para evitar el caos.

Persistencia

La RAM es volátil; si apagas la PC, los datos mueren. El OS necesita guardar datos permanentemente en discos duros o SSDs de forma segura y organizada (Sistemas de Archivos).


Kernel vs. Sistema Operativo

Es común confundir estos términos, pero en ingeniería debemos ser precisos.

  • El kernel (Núcleo): Es el programa que corre en modo privilegiado (Modo Kernel). Gestiona la memoria, el CPU y los dispositivos. Es el "corazón" que nunca se detiene.
    • Ejemplo: Linux.
  • El sistema operativo (Distro): Es el kernel más un conjunto de herramientas de espacio de usuario (User Space) que hacen que el sistema sea utilizable: shell, compiladores, librerías gráficas, gestores de ventanas.
    • Ejemplo: Ubuntu, Android, Fedora.

Nota técnica: Por eso existe la controversia "GNU/Linux". Linux es el kernel (el motor), GNU son las herramientas (el chasis y el volante). En este curso nos enfocaremos casi exclusivamente en el Kernel.


¿Por qué estudiar esto en 2026?

"Si hoy en día todo es Serverless y IA, ¿para qué necesito saber cómo funciona un inodo o un planificador de procesos?"

Porque las abstracciones tienen fugas. Cuando tu base de datos colapsa, cuando tu servidor web no aguanta más conexiones o cuando tu modelo de IA consume demasiada memoria, el problema siempre es un recurso del sistema operativo.

Solo entendiendo lo que ocurre bajo el capó ("Under the hood") podrás depurar problemas complejos, optimizar rendimiento y escribir software que no solo funcione, sino que vuele.