¿Qué es un sistema operativo?
¿Qué es un sistema operativo?
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):
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.
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.
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.
- Ejemplo:
- 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.
- Ejemplo:
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.