La idea central
Un sistema operativo es el intermediario entre los programas y el hardware. Sin él, cada programa tendría que saber cómo hablar con el disco, la memoria o la pantalla directamente.
┌─────────────────────────────────────┐
│ Usuario │
├─────────────────────────────────────┤
│ Shell / Terminal (bash) │ ← interpreta los comandos
├─────────────────────────────────────┤
│ Programas (git, python, nano...) │
├─────────────────────────────────────┤
│ KERNEL (núcleo del SO) │ ← el que manda
├─────────────────────────────────────┤
│ Hardware (CPU, RAM, disco, red) │
└─────────────────────────────────────┘
Una analogía útil: el SO es el administrador de un edificio. Los inquilinos (programas) no tocan la electricidad ni el agua directamente. Se lo piden al administrador, que decide quién recibe qué y cuándo, y evita que uno moleste a otro.
Las 5 responsabilidades del SO
| Responsabilidad | Qué hace | Comando para verlo |
|---|---|---|
| Procesos | Ejecuta programas y reparte el tiempo de CPU entre ellos | ps aux, top, pstree |
| Memoria | Asigna y protege la RAM de cada programa | free -h |
| Archivos | Organiza el disco en carpetas y archivos | ls /, df -h, tree -L 1 / |
| Usuarios y permisos | Decide quién puede leer, escribir o ejecutar qué | whoami, id, ls -l |
| Dispositivos | Habla con el hardware mediante drivers | lsblk, ls /dev |
Recorrido rápido por el sistema
uname -a # el kernel: nombre, versión, arquitectura
ps aux | head # procesos corriendo ahora mismo
echo $$ # el PID de la terminal actual (también es un proceso)
free -h # memoria total y usada
ls / # estructura del sistema de archivos
cat /proc/cpuinfo | head # "archivos" que en realidad son información del kernel
Conceptos clave
- Proceso: un programa en ejecución. Cada uno tiene un número, el PID.
- Todo es un archivo: hasta los dispositivos (
/dev) y la información del sistema (/proc) se ven como archivos. - Árbol de directorios: todo parte de
/(raíz). No hayC:niD:. - Shell y kernel: la shell solo traduce lo que se escribe en peticiones al kernel, las system calls.
- Root y usuario normal: root puede todo, y por eso
sudose usa solo cuando hace falta.
Y en WSL
Windows sigue siendo el sistema anfitrión. WSL 2 corre un kernel de Linux real dentro de una máquina virtual ligera, y por eso uname -a muestra Linux aunque el equipo sea una laptop con Windows.