¿Quieres usar la terminal de Linux, sus herramientas de desarrollo y su ecosistema de paquetes sin salir de Windows? WSL (Windows Subsystem for Linux) te permite exactamente eso: ejecutar un Linux real dentro de Windows, con rendimiento casi nativo, integración total con tus herramientas de Windows y sin la complejidad de un dual boot o una máquina virtual. Esta guía cubre todo lo que necesitas para instalarlo, configurarlo y aprovecharlo al máximo.
🔄 Qué es WSL y por qué existe
WSL (Windows Subsystem for Linux) es una funcionalidad de Windows que permite ejecutar distribuciones Linux directamente en Windows, sin necesidad de dual boot, sin máquinas virtuales pesadas y sin reiniciar. Microsoft lo lanzó en 2016 y desde entonces ha evolucionado hasta convertirse en una herramienta fundamental para millones de desarrolladores en todo el mundo.
La pregunta obvia es: ¿por qué Microsoft, la empresa que durante décadas trató a Linux como un enemigo, decidió integrar Linux dentro de Windows? La respuesta es pragmática. A mediados de la década de 2010, Microsoft se dio cuenta de que la mayoría de los desarrolladores web y de software usaban herramientas de Linux (Node.js, Python, Ruby, Docker, Git, SSH, bases de datos) y que muchos de ellos estaban abandonando Windows en favor de macOS precisamente por su base Unix. Satya Nadella, CEO de Microsoft desde 2014, declaró que «Microsoft ama Linux» y puso en marcha la estrategia de traer Linux a Windows para retener a los desarrolladores.
El resultado fue WSL, y su impacto ha sido enorme. Según la encuesta de Stack Overflow de 2024, WSL es la tercera «plataforma» más usada por desarrolladores profesionales, detrás de Linux y macOS pero creciendo más rápido que ambos. Docker Desktop en Windows funciona sobre WSL. GitHub Codespaces usa WSL. La mayoría de los tutoriales modernos de desarrollo web asumen que tienes acceso a una terminal tipo Unix, y WSL es la forma más sencilla de conseguirlo en Windows.
⚖️ WSL 1 vs WSL 2: diferencias clave
WSL ha tenido dos versiones muy diferentes en su arquitectura. Entender la diferencia es importante porque afecta al rendimiento y a las funcionalidades disponibles.
WSL 1: traducción de llamadas de sistema
La primera versión de WSL (2016) funcionaba mediante una capa de traducción: interceptaba las llamadas al kernel Linux que hacían las aplicaciones y las traducía a llamadas equivalentes del kernel de Windows NT. No había un kernel Linux real ejecutándose. Era ingenioso pero tenía limitaciones importantes: no todas las llamadas al sistema estaban implementadas, el rendimiento del sistema de archivos era bueno para archivos de Windows pero lento para operaciones intensivas, y muchas herramientas de Linux (especialmente Docker y las que necesitaban acceso directo al kernel) simplemente no funcionaban.
WSL 2: un kernel Linux real
WSL 2 (lanzado en 2020) cambió radicalmente el enfoque. En lugar de traducir llamadas, Microsoft ejecuta un kernel Linux real (compilado por Microsoft a partir del código fuente oficial) dentro de una máquina virtual ligera basada en Hyper-V. Este kernel es idéntico al que usarías en un servidor Ubuntu o Fedora real, lo que significa compatibilidad total con todas las herramientas de Linux.
| Característica | WSL 1 | WSL 2 |
|---|---|---|
| Kernel Linux | No (traducción) | Sí (kernel real 5.15+) |
| Compatibilidad syscalls | ~70% | 100% |
| Docker | No funciona | Funciona nativamente |
| Rendimiento I/O en ext4 | Lento | Nativo (muy rápido) |
| Rendimiento I/O en NTFS | Rápido | Más lento (cross-filesystem) |
| Consumo de RAM | Bajo | Mayor (configurable) |
| Apps gráficas Linux | Limitado | WSLg (GPU acelerada) |
| Networking | Comparte IP con Windows | IP propia (NAT) |
| Tiempo de arranque | Instantáneo | 1-2 segundos |
📥 Instalar WSL paso a paso
La instalación de WSL se ha simplificado enormemente. En Windows 10 (versión 2004 o superior) y Windows 11, un solo comando hace todo el trabajo.
Requisitos previos
Necesitas Windows 10 versión 2004 o posterior (mayo 2020) o Windows 11, un procesador de 64 bits con soporte de virtualización (Intel VT-x o AMD-V, que la inmensa mayoría de CPUs modernas tienen), y al menos 4 GB de RAM (8 GB o más recomendado). La virtualización debe estar habilitada en la BIOS; en la mayoría de equipos viene activada de fábrica.
Instalación con un solo comando
Al reiniciar y abrir Ubuntu desde el menú de inicio, se completará la instalación pidiéndote que crees un nombre de usuario y contraseña para tu entorno Linux. Estos no tienen que coincidir con tu usuario de Windows.
Instalar una distribución diferente
🐧 Distribuciones disponibles en WSL
| Distribución | Ideal para | Gestor de paquetes | Notas |
|---|---|---|---|
| Ubuntu 24.04 LTS | Desarrollo general, máxima compatibilidad | apt | Predeterminada, la más documentada |
| Debian | Estabilidad, servidores | apt | Más conservadora que Ubuntu |
| Fedora | Desarrollo con paquetes recientes | dnf | Disponible oficialmente desde 2024 |
| openSUSE Leap | Entornos empresariales SUSE | zypper | Estable, base RPM |
| Alpine | Contenedores, mínimo espacio | apk | Muy ligera (~5 MB) |
| Kali Linux | Seguridad, pentesting | apt | Herramientas de seguridad preinstaladas |
| Arch Linux | Usuarios avanzados | pacman | No oficial, importar manualmente |
💻 Windows Terminal: la terminal moderna
Windows Terminal es la terminal moderna de Microsoft que ha reemplazado al antiguo CMD y PowerShell como experiencia por defecto. Es fundamental para trabajar con WSL porque ofrece pestañas (puedes tener PowerShell, Ubuntu y Debian abiertos simultáneamente), renderizado de texto acelerado por GPU, soporte completo de Unicode y emojis, temas y personalización visual, atajos de teclado configurables, y paneles divididos (split panes) para ver varias terminales a la vez.
Configuración recomendada
Si quieres una experiencia visual profesional, instala una fuente Nerd Font (como CaskaydiaCove NF o JetBrains Mono NF) que incluye iconos especiales para terminales, y configura Oh My Posh (el equivalente de Oh My Zsh para Windows Terminal) para tener un prompt informativo con colores, iconos de Git, y más.
🛠️ Desarrollo de software con WSL
El caso de uso principal de WSL es el desarrollo de software. La mayoría del software moderno se ejecuta en servidores Linux, por lo que desarrollar en un entorno Linux (incluso dentro de Windows) elimina los problemas del tipo «funciona en mi máquina pero no en producción».
Configuración del entorno de desarrollo
Flujos de trabajo reales en WSL
Para entender por qué WSL es tan útil, veamos algunos escenarios concretos del día a día de un desarrollador.
Desarrollo web con Node.js: Tienes un proyecto React o Next.js. Abres Windows Terminal, entras en Ubuntu, navegas a tu carpeta de proyecto (guardada dentro de WSL, no en /mnt/c/), ejecutas npm run dev y abres localhost:3000 en Chrome de Windows. El servidor de desarrollo detecta cambios en tiempo real, hot reload funciona perfectamente, y puedes depurar desde VS Code conectado a WSL. No hay ninguna diferencia perceptible con respecto a desarrollar en un Linux nativo.
API con Python y Django: Usas pyenv para gestionar versiones de Python, creas un entorno virtual con python -m venv .venv, instalas Django, y tu API corre dentro de WSL. PostgreSQL también corre dentro de WSL (o como contenedor Docker). Redis para la caché, Celery para tareas asíncronas, todo funciona exactamente como en un servidor de producción Linux porque es Linux.
DevOps e infraestructura: Escribes playbooks de Ansible, Dockerfiles y configuraciones de Terraform desde VS Code. Ejecutas terraform plan desde la terminal WSL, haces docker compose up para levantar tu stack local, y usas kubectl para gestionar un cluster Kubernetes de prueba con minikube. Todas estas herramientas funcionan nativamente en WSL 2.
Stacks de desarrollo populares en WSL
| Stack | Herramientas en WSL | Rendimiento |
|---|---|---|
| Web frontend | Node.js, npm/pnpm, Vite, React/Vue/Svelte | Excelente |
| Web backend | Node.js/Express, Python/Django/Flask, PHP/Laravel | Excelente |
| DevOps | Docker, Kubernetes (minikube), Terraform, Ansible | Muy bueno |
| Data Science | Python, Jupyter, pandas, TensorFlow, PyTorch | Muy bueno (GPU limitada) |
| Sistemas | C/C++, Rust, Go, make, CMake, GDB | Excelente |
| Java | JDK, Maven/Gradle, Spring Boot, Tomcat | Excelente |
🐋 Docker y contenedores en WSL
Docker es probablemente la herramienta que más se beneficia de WSL. Antes de WSL 2, Docker en Windows requería Hyper-V completo y era notoriamente lento. Con WSL 2, los contenedores se ejecutan dentro del kernel Linux real de WSL, lo que ofrece rendimiento prácticamente nativo.
Instalar Docker con WSL
📝 VS Code + WSL: el entorno perfecto
La integración de Visual Studio Code con WSL es, probablemente, la mejor experiencia de desarrollo multiplataforma que existe. Con la extensión oficial «WSL» de Microsoft, VS Code se ejecuta en Windows pero su backend (el servidor de lenguaje, el terminal, la depuración) se ejecuta directamente dentro de WSL. Esto significa que editas código con la interfaz de Windows pero compilas, ejecutas y depuras en Linux.
Las extensiones que instales en VS Code se pueden instalar «en WSL» o «en Windows». Las extensiones de interfaz (temas, atajos) se instalan en Windows, mientras que las extensiones de lenguaje (Python, ESLint, C++) se instalan automáticamente dentro de WSL para tener acceso a los compiladores y herramientas de Linux.
Extensiones imprescindibles para WSL + VS Code
Para sacar el máximo partido a esta combinación, instala WSL (ms-vscode-remote.remote-wsl) que es la extensión base para conectarse, Dev Containers para desarrollar dentro de contenedores Docker desde WSL, GitLens para visualización avanzada de Git, y las extensiones de lenguaje correspondientes a tu stack (Python, ESLint, Prettier, etc.). Todas se ejecutarán dentro de WSL automáticamente, con acceso a los compiladores e intérpretes de Linux.
Una de las características más potentes es la depuración remota. Puedes establecer breakpoints en VS Code, ejecutar tu programa dentro de WSL (ya sea un servidor Node.js, una aplicación Python o un programa en C), y VS Code se conecta al depurador de Linux de forma transparente. Puedes inspeccionar variables, evaluar expresiones y navegar la pila de llamadas exactamente igual que si estuvieras depurando un programa nativo de Windows.
📁 Sistema de archivos: Windows ↔ Linux
Uno de los aspectos más importantes (y potencialmente confusos) de WSL es cómo interactúan los sistemas de archivos de Windows y Linux. Hay dos direcciones y cada una tiene su propio rendimiento.
Acceder a archivos de Linux desde Windows
🔧 Configuración avanzada
Limitar recursos de WSL
Por defecto, WSL 2 puede consumir hasta el 50% de tu RAM total. Si tu equipo tiene 16 GB, WSL podría usar hasta 8 GB. Puedes limitar esto creando un archivo de configuración en Windows.
Habilitar systemd
Desde septiembre de 2022, WSL soporta systemd, el gestor de servicios estándar de Linux. Esto permite usar systemctl, servicios que arrancan automáticamente, y herramientas que dependen de systemd (como snap).
Comandos de gestión de WSL
Personalización del shell: zsh + Oh My Zsh
Aunque bash es el shell por defecto en Ubuntu, muchos desarrolladores prefieren zsh con Oh My Zsh por su autocompletado inteligente, sugerencias basadas en el historial, y temas visuales informativos que muestran la rama de Git actual, el estado del repositorio, la versión de Node/Python activa, y más.
Trucos y atajos que todo usuario de WSL debería conocer
Estos trucos mejoran significativamente la experiencia diaria con WSL y te ahorran tiempo en operaciones frecuentes.
⚠️ Limitaciones y cuándo usar Linux nativo
WSL es extraordinario para desarrollo, pero no es un sustituto completo de Linux nativo. Estas son sus principales limitaciones y los escenarios donde deberías considerar una instalación completa de Linux.
Lo que WSL hace excepcionalmente bien
Antes de hablar de limitaciones, merece la pena destacar dónde WSL brilla: desarrollo web fullstack, scripting y automatización con bash/Python, herramientas de línea de comandos (grep, sed, awk, jq), compilación de código C/C++/Rust/Go, gestión de contenedores Docker, administración de servidores remotos vía SSH, y cualquier tarea que en Windows requeriría Cygwin, Git Bash o puertos de herramientas Unix. Para estas tareas, WSL ofrece una experiencia indistinguible de Linux nativo.
Limitaciones reales
| Limitación | Impacto | Alternativa |
|---|---|---|
| Sin acceso directo al hardware | No puedes acceder a dispositivos USB, Bluetooth ni hardware especializado | Linux nativo o máquina virtual con pass-through |
| GPU limitada | WSLg soporta aceleración GPU pero con limitaciones vs nativo | Linux nativo para deep learning intensivo |
| Rendimiento I/O cross-filesystem | Leer archivos de Windows desde WSL es lento | Guardar proyectos en ~/ |
| No es ideal para gaming | Sin soporte Vulkan completo para juegos | Linux nativo, dual boot o Steam Deck |
| Networking limitado | NAT por defecto, puede complicar VPNs corporativas | networkingMode=mirrored en .wslconfig |
| Sin entorno de escritorio completo | WSLg ejecuta apps sueltas, no un escritorio Linux | VM completa o Linux nativo |
| Requiere Windows | Sigues necesitando una licencia de Windows activa | Linux nativo si no necesitas Windows |
❓ Preguntas frecuentes sobre WSL: cómo usar Linux dentro de Windows sin dual boot ni máquinas virtuales
Las dudas más comunes respondidas de forma clara y directa.
💬 Foro de discusión
¿Tienes dudas sobre WSL: cómo usar Linux dentro de Windows sin dual boot ni máquinas virtuales? Comparte tu pregunta con la comunidad.
Todavía no hay mensajes. ¡Sé el primero en participar!