📝 kernel_windows_linux
← Volver

Kernel: Windows, Linux y Tipos


Modos de Funcionamiento del Sistema (UNIX/Linux)

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


Tipos de Kernel

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

Representación visual por tamaño del núcleo

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

Kernel Windows

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

Planificador Distribuido de Windows ⚠️

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

Kernel Linux

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

Planificador CFS (Completely Fair Scheduler) ⚠️

      [CFS - Planificador centralizado]
              ↓         ↓         ↓
           CPU 0      CPU 1      CPU 2

Comparativa Windows vs Linux vs otros SO

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

Windows vs Linux — Diferencias clave

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)

Resumen en 3 puntos

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.