Los sistemas operativos operan en dos modos de ejecución diferenciados por el nivel de privilegio:
┌─────────────────────────────────────────────┐
│ ESPACIO DE USUARIO │ ← Modo Usuario
│ Aplicaciones, procesos, shell, libs... │
├─────────────────────────────────────────────┤
│ INTERFAZ (Llamadas al sistema) │ ← syscalls
├─────────────────────────────────────────────┤
│ ESPACIO DE KERNEL │ ← Modo Kernel
│ Gestión memoria, CPU, E/S, planificador... │
└─────────────────────────────────────────────┘
HARDWARE FÍSICO
| Modo | Nivel de privilegio | Acceso al hardware | Ejemplos |
|---|---|---|---|
| Modo Usuario | Bajo (Ring 3) | ❌ No directo | Shell, aplicaciones, servicios |
| Modo Kernel | Alto (Ring 0) | ✅ Total | Drivers, planificador, memoria |
Las aplicaciones pasan de modo usuario a modo kernel mediante llamadas al sistema (syscalls).
| Tipo | Características | Ventajas | Desventajas | Ejemplos |
|---|---|---|---|---|
| Monolítico | Todo en el kernel | Muy rápido | Menos modular | Linux, Android |
| Monolítico modular | Permite módulos dinámicos | Flexible + rápido | Complejidad media | Linux |
| Microkernel | Solo lo esencial en kernel | Muy seguro y estable | Más lento | Minix |
| Híbrido | Mezcla de ambos | Equilibrio | Complejo | Windows, macOS |
| Exokernel | Muy minimalista | Máximo control | Poco usado | Experimental |
MICROKERNEL │▓│ → Solo: IPC, scheduling, memoria básica
MONOLÍTICO │▓▓▓▓▓▓▓▓▓│ → Todo: drivers, FS, red, memoria...
HÍBRIDO │▓▓▓▓▓▓│ → Núcleo + servicios externos selectivos
MODULAR │▓▓▓▓▓[mod]│ → Núcleo + módulos cargables en caliente
| Característica | Descripción |
|---|---|
| Tipo de kernel | Híbrido (mezcla monolítico + microkernel) |
| Planificación | Preventiva (preemptive) |
| Planificador | Distribuido (no centralizado) |
| Multitarea | Multitarea real |
| Multiprocesamiento | Soporte SMP (varias CPUs) |
| Prioridades | Basadas en niveles de prioridad |
| Hilos (threads) | Unidad básica de ejecución |
| Cambio de contexto | Rápido y eficiente |
Windows no usa un planificador centralizado. Su modelo es distribuido:
CPU 0 → [Planificador propio] → Cola de hilos local
CPU 1 → [Planificador propio] → Cola de hilos local
CPU 2 → [Planificador propio] → Cola de hilos local
CPU N → [Planificador propio] → Cola de hilos local
| Característica | Descripción |
|---|---|
| Tipo de kernel | Monolítico (modular) |
| Arquitectura | Núcleo grande con módulos cargables |
| Planificación | Preventiva (preemptive) |
| Planificador | Centralizado (CFS - Completely Fair Scheduler) |
| Multitarea | Multitarea real |
| Multiprocesamiento | SMP (soporte multi-CPU) |
| Gestión de memoria | Avanzada (paginación, swapping) |
| Drivers | En el kernel o como módulos |
| Código | Open source |
| Portabilidad | Muy alta |
[CFS - Planificador centralizado]
↓ ↓ ↓
CPU 0 CPU 1 CPU 2
| Sistema operativo | Tipo de kernel | Detalles |
|---|---|---|
| Windows | Híbrido | Mezcla monolítico + microkernel |
| Linux | Monolítico (modular) | Kernel grande con módulos |
| macOS | Híbrido (XNU) | Basado en Mach + BSD |
| iOS | Híbrido (XNU) | Igual que macOS |
| Android | Monolítico (Linux) | Kernel Linux modificado |
| Aspecto | Windows | Linux |
|---|---|---|
| Tipo kernel | Híbrido | Monolítico modular |
| Planificador | Distribuido (por CPU) | Centralizado (CFS) |
| Código fuente | Propietario (cerrado) | Open source |
| Drivers | En espacio kernel/usuario | En kernel o módulos .ko |
| Portabilidad | Media (x86/ARM) | Muy alta (múltiples arquitecturas) |
| Módulos dinámicos | Limitado | Sí (insmod, modprobe) |
1. Modos de ejecución: Todo SO con base UNIX/Linux opera en dos modos: modo usuario (privilegio bajo, sin acceso directo al hardware) y modo kernel (privilegio total). El paso entre ambos se realiza mediante llamadas al sistema (syscalls).
2. Tipos de kernel: Existen cinco tipos principales — monolítico (todo integrado, muy rápido), monolítico modular (flexible con módulos cargables, usado en Linux), microkernel (solo lo esencial, más seguro pero lento), híbrido (equilibrio entre ambos, usado en Windows y macOS) y exokernel (experimental). Linux es monolítico modular; Windows es híbrido.
3. Planificación: La diferencia clave entre Windows y Linux reside en el planificador — Windows usa un modelo distribuido (cada CPU tiene el suyo), mientras que Linux usa CFS centralizado (Completely Fair Scheduler) que garantiza equidad en el reparto de CPU entre todos los procesos.