Windows Subsystem for Linux
Головна ідея: Windows Subsystem for Linux — це технологія Microsoft, яка дозволяє запускати Linux-середовище безпосередньо у Windows, використовуючи звичайні Linux-команди, shell, утиліти, пакети й інструменти розробника.
Чому це цікаво: WSL перетворив Windows на зручну платформу для розробників, яким потрібні і Windows-програми, і Linux-інструменти одночасно: VS Code, Docker, Git, Python, Node.js, Bash, SSH, apt, make, gcc і Kubernetes-утиліти можуть працювати поруч.
Важливо: WSL — це не повна заміна нативного Linux у всіх сценаріях. Для розробки, DevOps, scripting і навчання він дуже зручний, але для kernel development, повного desktop Linux, низькорівневого hardware-доступу або production-серверів краще використовувати нативний Linux, VM або окремий сервер.
1. Загальний опис
Windows Subsystem for Linux або WSL — це компонент Windows, який дозволяє запускати Linux-дистрибутиви всередині Windows.
Через WSL можна використовувати:
- Bash;
- Zsh;
- Fish;
- GNU/Linux-команди;
- APT, DNF, pacman або інші package managers залежно від дистрибутива;
- Git;
- SSH;
- Python;
- Node.js;
- Go;
- Rust;
- C/C++;
- Docker tooling;
- Kubernetes CLI;
- Linux development workflows;
- Linux GUI apps через WSLg;
- VS Code Remote WSL;
- systemd у підтримуваних дистрибутивах.
WSL особливо популярний серед розробників, які працюють на Windows, але мають проєкти, орієнтовані на Linux-сервери, cloud, containers або open source tooling.
2. Коротка характеристика
| Характеристика | Значення |
|---|---|
| Назва | Windows Subsystem for Linux |
| Скорочення | WSL |
| Розробник | Microsoft |
| Тип | Сумісне Linux-середовище всередині Windows |
| Платформи | Windows 10, Windows 11, Windows Server у відповідних версіях |
| Основні версії | WSL 1, WSL 2 |
| Типове встановлення | wsl --install |
| Типові дистрибутиви | Ubuntu, Debian, Kali Linux, openSUSE, Fedora Remix, Alpine та інші |
| GUI apps | WSLg |
| systemd | Підтримується у WSL 2 для сумісних дистрибутивів |
| Основне призначення | Розробка, DevOps, Linux tooling, scripting, навчання, containers |
| Головна перевага | Linux-інструменти без dual boot і без ручного налаштування повної VM |
3. WSL простими словами
WSL можна уявити як Linux-робочу зону всередині Windows.
Звичайна ситуація без WSL:
Windows для браузера, Office, ігор, Adobe, Visual Studio + окрема VM або dual boot для Linux-команд
Ситуація з WSL:
Windows | +--> Windows apps +--> Linux terminal +--> Linux packages +--> VS Code Remote WSL +--> Docker workflows +--> Linux development environment
Тобто WSL дозволяє не перемикатися між двома комп'ютерами або двома ОС, а працювати в одному середовищі.
Людське пояснення: WSL — це як мати маленький Linux-термінал прямо всередині Windows, але в сучасному WSL 2 цей “термінал” може бути дуже серйозним середовищем для розробки.
4. Історія
WSL з'явився як відповідь на потребу розробників мати Linux-інструменти в Windows.
Ключові етапи:
| Рік | Подія |
|---|---|
| 2016 | Microsoft представила першу версію Windows Subsystem for Linux для Windows 10. |
| 2016 | WSL 1 дозволив запускати Linux userland через compatibility layer без повного Linux-ядра. |
| 2019 | Microsoft представила WSL 2 з реальним Linux-ядром у керованій lightweight VM. |
| 2020 | WSL 2 став основним рекомендованим варіантом для більшості сценаріїв. |
| 2021 | З'явилася підтримка Linux GUI apps через WSLg у Windows 11. |
| 2022 | WSL почав активніше поширюватися через Microsoft Store. |
| 2022–2023 | З'явилася офіційна підтримка systemd у WSL 2. |
| 2025 | WSL став open source-проєктом на GitHub. |
| 2026 | WSL залишається одним із головних способів запуску Linux-інструментів у Windows. |
5. Цікавий факт: WSL змінив ставлення Microsoft до Linux
Колись Windows і Linux часто сприймалися як конкуренти з різних світів.
WSL став символом іншої епохи:
Windows може бути основною desktop-системою, а Linux — щоденним інструментом розробника всередині неї.
Для багатьох це виглядало майже парадоксально:
- Microsoft;
- Windows;
- Linux shell;
- Ubuntu;
- Debian;
- Bash;
- apt;
- systemd;
- Docker;
- все в одному робочому процесі.
WSL показав, що для сучасної розробки важливі не “табори”, а зручність інструментів.
6. WSL 1
WSL 1 — перша архітектура Windows Subsystem for Linux.
Вона не використовувала справжнє Linux-ядро.
Замість цього WSL 1 перекладав Linux system calls у Windows NT kernel interfaces.
Переваги WSL 1:
- швидкий старт;
- мала вага;
- добра інтеграція з Windows-файлами;
- іноді швидший доступ до файлів на Windows-дисках;
- не потребує повної virtual machine.
Недоліки WSL 1:
- неповна сумісність із Linux system calls;
- не всі Linux-програми працюють;
- гірша сумісність з containers;
- немає повноцінного Linux kernel behavior;
- менше підходить для сучасних DevOps-сценаріїв.
7. WSL 2
WSL 2 — сучасна основна архітектура WSL.
Вона використовує справжнє Linux-ядро, яке працює в керованій lightweight virtual machine.
Переваги WSL 2:
- повніша сумісність із Linux system calls;
- краща підтримка Linux software;
- краща продуктивність Linux filesystem;
- сумісність із Docker Desktop;
- підтримка systemd;
- підтримка WSLg;
- кращий вибір для більшості modern development workflows.
Недоліки WSL 2:
- це все ж VM-подібна архітектура;
- networking іноді потребує розуміння NAT/localhost;
- доступ до файлів Windows може бути повільнішим, ніж робота всередині Linux filesystem;
- використання пам'яті й CPU треба контролювати;
- не всі hardware-сценарії працюють як у нативному Linux.
8. WSL 1 і WSL 2
| Критерій | WSL 1 | WSL 2 |
|---|---|---|
| Архітектура | Translation layer. | Реальне Linux-ядро у lightweight VM. |
| Linux-сумісність | Обмеженіша. | Значно краща. |
| Docker | Обмежено. | Основний варіант для Docker Desktop. |
| Швидкість Linux filesystem | Нижча для Linux-heavy workloads. | Вища для Linux filesystem. |
| Доступ до Windows-файлів | Часто швидший. | Може бути повільнішим для інтенсивної роботи. |
| systemd | Ні. | Так, у сучасному WSL. |
| Рекомендація | Спеціальні випадки. | Основний вибір для більшості користувачів. |
9. Коли WSL 1 все ще може бути корисним
WSL 2 зазвичай кращий вибір.
Але WSL 1 може бути корисним, якщо:
- потрібно часто працювати саме з файлами на Windows-диску;
- важлива дуже швидка інтеграція з Windows filesystem;
- потрібне максимально легке середовище;
- не потрібні Docker, systemd або повна Linux-сумісність;
- конкретний старий workflow краще працює на WSL 1.
10. Коли краще WSL 2
WSL 2 краще обрати, якщо:
- потрібна сучасна Linux-сумісність;
- потрібен Docker Desktop;
- потрібен systemd;
- потрібні Linux GUI apps;
- проєкт зберігається всередині Linux filesystem;
- потрібні сучасні DevOps-інструменти;
- потрібна робота з containers;
- потрібні Python/Node.js/Rust/Go development workflows;
- потрібне середовище, близьке до Linux-сервера.
11. Встановлення WSL
Сучасний спосіб встановлення:
wsl --install
Встановлення конкретного дистрибутива:
wsl --install -d Ubuntu
Перегляд доступних дистрибутивів:
wsl --list --online
Перегляд встановлених дистрибутивів:
wsl --list --verbose
або коротко:
wsl -l -v
12. Типові дистрибутиви WSL
У WSL можна встановити різні Linux-дистрибутиви.
Приклади:
| Дистрибутив | Для чого |
|---|---|
| Ubuntu | Найпопулярніший і найзручніший старт для більшості користувачів. |
| Debian | Стабільна Debian-база. |
| Kali Linux | Легальні security labs, навчання й інструменти кібербезпеки. |
| openSUSE | SUSE/openSUSE ecosystem. |
| Fedora Remix | Fedora-подібне середовище у WSL. |
| Alpine | Мінімалістичне середовище. |
| Oracle Linux | Enterprise Linux-сценарії в Oracle ecosystem. |
13. Керування дистрибутивами
Запуск стандартного дистрибутива:
wsl
Запуск конкретного дистрибутива:
wsl -d Ubuntu
Встановлення версії WSL для дистрибутива:
wsl --set-version Ubuntu 2
Зробити дистрибутив стандартним:
wsl --set-default Ubuntu
Завершити всі WSL-сесії:
wsl --shutdown
Оновити WSL:
wsl --update
14. Файлова система WSL
У WSL є два важливі світи:
Linux filesystem /home/user/project Windows filesystem /mnt/c/Users/Name/project
Рекомендація для більшості Linux-heavy проєктів:
зберігати код у Linux filesystem наприклад: /home/user/projects
Чому?
- швидше для Linux tools;
- краще для npm, pip, git, compilers;
- менше проблем із permissions;
- краще для Docker workflows;
- ближче до реального Linux-середовища.
15. Доступ до Windows-файлів із Linux
Windows-диски доступні у WSL через `/mnt`.
Приклади:
cd /mnt/c/Users
ls /mnt/c
Шлях Windows:
C:\Users\Name\Desktop
Шлях у WSL:
/mnt/c/Users/Name/Desktop
16. Доступ до Linux-файлів із Windows
Linux-файли можна відкрити з Windows через:
\\wsl$
або:
\\wsl.localhost\
Наприклад:
\\wsl.localhost\Ubuntu\home\user
Це зручно для відкриття Linux-файлів у File Explorer або редакторах.
17. Цікавий факт: правильне місце для коду дуже важливе
Одна з типових помилок WSL-новачків:
зберігати Node.js або Python-проєкт у C:\Users\... і запускати Linux tools через /mnt/c/...
Це може працювати, але іноді повільніше й проблемніше.
Краще для Linux-проєктів:
~/projects/my-app
а для Windows-проєктів:
C:\Users\Name\Projects
WSL найкраще працює, коли кожен світ використовує свою файлову систему за призначенням.
18. systemd у WSL
Сучасний WSL 2 підтримує systemd.
Це важливо, бо багато Linux-сервісів і tools очікують systemd.
systemd корисний для:
- Docker-related workflows;
- snaps у частині сценаріїв;
- system services;
- timers;
- journald;
- dbus;
- developer environments;
- більшої сумісності з Linux-дистрибутивами.
Увімкнення systemd у дистрибутиві може виглядати так:
[boot]
systemd=true
у файлі:
/etc/wsl.conf
Після зміни:
wsl --shutdown
і повторно запустити дистрибутив.
19. WSLg
WSLg — це компонент WSL для запуску Linux GUI apps у Windows.
Завдяки WSLg можна запускати:
- Linux graphical editors;
- GUI utilities;
- simple Linux desktop apps;
- plotting tools;
- development tools;
- деякі графічні Linux-застосунки.
Приклад:
gedit
або:
xeyes
якщо пакет встановлений.
20. Цікавий факт: WSLg зробив Linux GUI apps майже “рідними” для Windows
Раніше запуск Linux GUI apps у Windows вимагав X server, ручного налаштування DISPLAY і додаткової магії.
WSLg зробив це значно простіше.
Тепер Linux GUI apps можуть з'являтися як звичайні Windows-вікна.
Це не завжди замінює повний Linux desktop, але для багатьох інструментів дуже зручно.
21. Windows Terminal
WSL часто використовують разом із Windows Terminal.
Windows Terminal дозволяє:
- відкривати кілька вкладок;
- запускати PowerShell;
- запускати Command Prompt;
- запускати Ubuntu WSL;
- запускати Debian WSL;
- налаштовувати теми;
- використовувати profiles;
- працювати з Unicode, Nerd Fonts і modern terminal features.
Типовий workflow:
Windows Terminal | +--> PowerShell tab +--> Ubuntu tab +--> Debian tab +--> SSH tab
22. VS Code і WSL
Один із найсильніших сценаріїв WSL — робота з Visual Studio Code.
Через Remote - WSL можна:
- відкрити Linux-проєкт у VS Code;
- запускати terminal у WSL;
- використовувати Linux dependencies;
- працювати з Git;
- запускати Node.js/Python/Go/Rust tooling у Linux;
- редагувати файли з Windows UI;
- мати зручний bridge між Windows і Linux.
Типовий запуск:
cd ~/projects/my-app code .
23. Docker і WSL 2
Docker Desktop для Windows активно використовує WSL 2.
Типова схема:
Windows
|
+--> Docker Desktop
|
+--> WSL 2 backend
|
+--> Linux containers
Це дуже зручно для:
- web development;
- microservices;
- PostgreSQL у контейнері;
- Redis;
- Docker Compose;
- local Kubernetes;
- DevOps labs;
- CI-like testing.
24. WSL і Kubernetes
WSL зручний для Kubernetes-інструментів:
- kubectl;
- helm;
- k9s;
- kind;
- minikube;
- Docker Desktop Kubernetes;
- cloud CLIs;
- Terraform;
- Ansible;
- GitOps tools.
WSL не завжди є production Kubernetes-середовищем, але для локальної розробки він дуже практичний.
25. DevOps-сценарії
WSL популярний у DevOps, бо дозволяє запускати Linux tooling без окремого Linux-комп'ютера.
Типові інструменти:
- Git;
- SSH;
- Docker CLI;
- kubectl;
- helm;
- Terraform;
- Ansible;
- Python;
- Go;
- jq;
- yq;
- curl;
- make;
- gcc;
- cloud CLIs;
- bash scripts.
26. WSL для веброзробки
WSL добре підходить для:
- Node.js;
- npm;
- pnpm;
- yarn;
- Python;
- Django;
- Flask;
- FastAPI;
- Ruby;
- PHP;
- Laravel;
- Go;
- Rust;
- PostgreSQL;
- Redis;
- Docker Compose;
- local dev servers.
Приклад:
cd ~/projects/site npm install npm run dev
або:
python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt
27. WSL для навчання Linux
WSL — дуже зручний спосіб вивчати Linux-команди, якщо основна система — Windows.
Можна практикувати:
- ls;
- cd;
- grep;
- find;
- sed;
- awk;
- chmod;
- chown;
- ssh;
- scp;
- tar;
- systemctl у WSL 2 з systemd;
- package managers;
- shell scripting.
Для початку це набагато простіше, ніж dual boot.
28. WSL для кібербезпеки
WSL можна використовувати для частини security-learning задач:
- CTF;
- scripting;
- Linux CLI;
- Python tools;
- basic network utilities;
- Kali WSL для навчальних лабораторій;
- log parsing;
- forensic file analysis у безпечних сценаріях.
Але важливо: WSL не завжди підходить для low-level security work, wireless testing, kernel-level labs або hardware-heavy задач.
І, як завжди, будь-яке security-тестування має бути легальним і виконуватися тільки на власних або дозволених системах.
29. WSL і GPU
WSL 2 може використовувати GPU-прискорення у певних сценаріях.
Це корисно для:
- machine learning;
- CUDA workflows;
- data science;
- Linux ML tools;
- Jupyter;
- PyTorch;
- TensorFlow;
- GPU-accelerated development.
Для таких сценаріїв потрібні сумісні драйвери, Windows-версія, WSL 2 і налаштоване середовище.
30. WSL і USB
WSL 2 може працювати з USB-пристроями через спеціальні механізми підключення.
Це корисно для:
- embedded development;
- serial devices;
- debugging boards;
- microcontrollers;
- Android development у частині сценаріїв.
Але це складніше, ніж у нативному Linux, і не всі USB-сценарії працюють без додаткового налаштування.
31. WSL і networking
WSL 2 має власну мережеву модель.
Типові моменти:
- localhost часто працює між Windows і WSL;
- WSL 2 використовує VM-подібне мережування;
- іноді потрібно розуміти IP WSL-дистрибутива;
- firewall Windows може впливати на доступ;
- VPN іноді створює проблеми;
- corporate networks можуть мати особливі обмеження.
Приклад отримання IP:
ip addr
або:
hostname -I
32. .wslconfig
Файл `.wslconfig` у Windows home directory дозволяє налаштовувати WSL 2 VM.
Приклад шляху:
C:\Users\Name\.wslconfig
Приклад:
[wsl2]
memory=8GB
processors=4
swap=2GB
Після зміни:
wsl --shutdown
і повторний запуск WSL.
33. /etc/wsl.conf
Файл `/etc/wsl.conf` налаштовує поведінку конкретного Linux-дистрибутива.
Приклад:
[boot]
systemd=true
[user]
default=myuser
[automount]
enabled=true
root=/mnt/
Це корисно для:
- systemd;
- default user;
- automount;
- interop;
- mount options;
- network settings.
34. Цікавий факт: WSL має два рівні конфігурації
У WSL є два різні конфігураційні світи:
| Файл | Де знаходиться | Що налаштовує |
|---|---|---|
| .wslconfig | Windows home directory | Глобальні параметри WSL 2 VM. |
| /etc/wsl.conf | Всередині Linux-дистрибутива | Поведінку конкретного дистрибутива. |
Це важливо не плутати.
`.wslconfig` — про всю WSL 2 машину.
`wsl.conf` — про конкретний Linux-дистрибутив.
35. Імпорт і експорт дистрибутивів
WSL дозволяє експортувати й імпортувати дистрибутиви.
Експорт:
wsl --export Ubuntu ubuntu-backup.tar
Імпорт:
wsl --import UbuntuDev C:\WSL\UbuntuDev ubuntu-backup.tar
Це корисно для:
- backup;
- перенесення середовища;
- створення копій;
- лабораторій;
- експериментів;
- швидкого відновлення.
36. Переваги WSL
| Перевага | Опис |
|---|---|
| Linux-інструменти у Windows | Можна використовувати Bash, Git, SSH, Python, Node.js, apt та інші інструменти. |
| Без dual boot | Не потрібно перезавантажуватися між Windows і Linux. |
| Легше за повну VM | WSL запускається швидко й інтегрується з Windows. |
| WSL 2 має справжнє Linux-ядро | Краща сумісність із Linux software. |
| Docker Desktop integration | Дуже зручно для container development. |
| VS Code Remote WSL | Один із найкращих developer workflows у Windows. |
| WSLg | Можна запускати Linux GUI apps. |
| systemd | Більше сумісності з сучасними Linux-дистрибутивами. |
37. Недоліки WSL
| Недолік | Опис |
|---|---|
| Не повна заміна Linux | Для kernel, hardware і production-сценаріїв краще нативний Linux або VM. |
| Файлова продуктивність залежить від місця зберігання | Проєкти краще тримати у Linux filesystem, а не на /mnt/c. |
| Networking може плутати | VPN, firewall і localhost іноді потребують налаштувань. |
| Не всі hardware-сценарії працюють | USB, GPU, low-level devices можуть мати обмеження. |
| WSL 2 використовує ресурси VM | Пам'ять і CPU треба контролювати через .wslconfig. |
| Не production server | WSL не призначений як основна ОС для production-сервера. |
38. Порівняння з віртуальною машиною
| Критерій | WSL | Класична VM |
|---|---|---|
| Запуск | Дуже швидкий. | Повільніший. |
| Інтеграція з Windows | Дуже сильна. | Обмеженіша. |
| Повна ізоляція | Менша. | Вища. |
| Повний Linux desktop | Не основна мета. | Можливий. |
| Kernel experiments | Обмежено. | Краще у VM. |
| Dev workflow | Дуже зручний. | Трохи важчий. |
39. Порівняння з dual boot
| Критерій | WSL | Dual boot |
|---|---|---|
| Перемикання | Без перезавантаження. | Потрібне перезавантаження. |
| Доступ до Windows apps | Одночасно. | Ні, якщо завантажений Linux. |
| Нативний Linux hardware access | Обмежений. | Повний. |
| Зручність для розробки | Дуже висока. | Висока, але окреме середовище. |
| Ризик для диска | Нижчий. | Вищий через розмітку. |
40. Порівняння з нативним Linux
| Критерій | WSL | Нативний Linux |
|---|---|---|
| Основна ОС | Windows. | Linux. |
| Linux kernel | WSL 2 має kernel у lightweight VM. | Повний контроль над системою. |
| Hardware access | Обмежений. | Повніший. |
| Desktop Linux | Не основний сценарій. | Повний desktop. |
| Production server | Не призначений. | Так. |
| Developer convenience на Windows | Дуже висока. | Залежить від потреб Windows apps. |
41. Порівняння з Cygwin і MSYS2
| Критерій | WSL | Cygwin / MSYS2 |
|---|---|---|
| Linux-середовище | Реальний Linux userland, WSL 2 — з Linux kernel. | POSIX-like середовище поверх Windows. |
| Пакети | Пакети Linux-дистрибутива. | Власні пакети Cygwin/MSYS2. |
| Сумісність | Вища з Linux software. | Добра для окремих UNIX-like tools. |
| DevOps | Краще для Linux/cloud workflows. | Корисно для Windows-native development tools. |
42. Коли варто використовувати WSL
WSL доцільно використовувати, якщо:
- основна система — Windows;
- потрібні Linux-команди;
- потрібен Bash;
- потрібен Python/Node.js/Go/Rust у Linux-середовищі;
- потрібен Docker Desktop;
- потрібен VS Code Remote WSL;
- потрібно вчити Linux;
- потрібно працювати з Git/SSH;
- потрібні DevOps tools;
- не хочеться dual boot;
- повна VM здається надмірною.
43. Коли WSL може бути не найкращим вибором
WSL може бути не найкращим варіантом, якщо:
- потрібен production Linux server;
- потрібен повний Linux desktop;
- потрібен глибокий kernel development;
- потрібен повний hardware access;
- потрібні складні USB/RF/GPU-сценарії;
- потрібно тестувати саме native Linux behavior;
- потрібна максимальна ізоляція;
- Windows не потрібен у workflow.
44. Типові проблеми новачків
| Проблема | Чому виникає | Як думати про це |
|---|---|---|
| “npm install дуже повільний” | Проєкт лежить на /mnt/c. | Перенести код у ~/projects. |
| “Docker не працює” | Потрібен WSL 2 backend і правильна інтеграція. | Перевірити Docker Desktop settings. |
| “systemctl не працює” | systemd не ввімкнений або старий WSL. | Увімкнути systemd у /etc/wsl.conf і оновити WSL. |
| “Не бачу файли Linux у Windows” | Шлях неочевидний. | Використовувати \\wsl.localhost\. |
| “WSL забирає багато RAM” | WSL 2 VM може кешувати пам'ять. | Налаштувати .wslconfig. |
| “localhost не працює як очікував” | Networking WSL 2 має особливості. | Перевірити IP, firewall, binding address. |
45. Базовий хороший workflow
1. Встановити WSL 2. 2. Встановити Ubuntu або Debian. 3. Оновити пакети. 4. Увімкнути systemd, якщо потрібно. 5. Встановити Git, build tools, language runtime. 6. Створити ~/projects. 7. Зберігати Linux-проєкти всередині WSL filesystem. 8. Відкривати проєкти через code . 9. Використовувати Windows Terminal. 10. Для контейнерів увімкнути Docker Desktop WSL integration. 11. Робити export backup важливих дистрибутивів. 12. Не перетворювати WSL на production-сервер.
46. Базові команди WSL
wsl --install
wsl --list --online
wsl --list --verbose
wsl --set-default-version 2
wsl --set-version Ubuntu 2
wsl --shutdown
wsl --update
wsl --export Ubuntu backup.tar
wsl --import UbuntuDev C:\WSL\UbuntuDev backup.tar
47. Цікаві факти
| Факт | Пояснення |
|---|---|
| WSL 1 не мав справжнього Linux-ядра | Він перекладав Linux system calls у Windows-механізми. |
| WSL 2 має реальне Linux-ядро | Це значно покращило сумісність. |
| WSL можна використовувати з кількома дистрибутивами одночасно | Наприклад, Ubuntu, Debian і Kali можуть бути встановлені паралельно. |
| WSLg дозволяє запускати Linux GUI apps | Linux-програми можуть відкриватися як Windows-вікна. |
| VS Code Remote WSL став дуже популярним workflow | Редактор у Windows, а tooling і файли — у Linux. |
| WSL зручний для Docker Desktop | WSL 2 backend став стандартним способом роботи з Linux containers у Windows. |
| WSL став open source | Це важлива зміна в історії проєкту. |
| WSL не є production Linux-сервером | Це developer/workstation-технологія, а не заміна серверної ОС. |
48. Людське пояснення: чим є WSL
WSL — це компроміс, який виявився дуже вдалим.
Він не намагається повністю замінити Linux.
Він не намагається зробити Windows схожою на Linux.
Він просто дає розробнику можливість сказати:
Я хочу залишитися у Windows, але мати нормальні Linux-інструменти поруч.
І для багатьох людей це ідеальний варіант.
Можна писати код у VS Code, запускати Bash, використовувати Docker, працювати з Git, тестувати Linux-команди, запускати Python або Node.js, і при цьому не залишати Windows-середовище.
49. Безпека
Рекомендовані практики:
- оновлювати WSL;
- оновлювати Linux-дистрибутиви;
- не запускати випадкові скрипти з інтернету;
- не працювати постійно від root;
- зберігати важливі SSH keys обережно;
- не змішувати production-секрети з тестовими WSL-середовищами;
- обмежувати доступ до проєктів;
- використовувати Windows Defender або корпоративні security-політики;
- не запускати неперевірені Linux GUI apps;
- робити backup важливих WSL-дистрибутивів;
- пам'ятати, що WSL інтегрований із Windows, тому межа між середовищами не така жорстка, як у повній VM.
50. WSL у сучасній розробці
У 2026 році WSL є одним із найважливіших developer tools у Windows.
Його використовують для:
- web development;
- backend development;
- cloud development;
- DevOps;
- Docker;
- Kubernetes;
- scripting;
- Python/Node.js/Rust/Go;
- Linux learning;
- data science;
- AI/ML у відповідних GPU-сценаріях;
- security labs у дозволених умовах;
- cross-platform development.
WSL не замінює всі Linux-сценарії, але дуже добре закриває щоденну потребу розробника у Linux-інструментах на Windows.
51. Висновок
Windows Subsystem for Linux — це технологія, яка дозволяє запускати Linux-середовище всередині Windows без dual boot і без класичної повної VM.
Його головні переваги:
- Linux tools у Windows;
- WSL 2 з реальним Linux kernel;
- просте встановлення;
- кілька дистрибутивів одночасно;
- VS Code Remote WSL;
- Docker Desktop integration;
- WSLg;
- systemd;
- зручність для DevOps і web development;
- хороший старт для вивчення Linux.
Головні обмеження:
- не повна заміна нативного Linux;
- не production server OS;
- hardware-доступ обмежений;
- networking може бути складним;
- треба правильно працювати з файловими системами;
- WSL 2 використовує ресурси VM;
- для деяких задач краще VM, dual boot або справжній Linux-сервер.
WSL найкраще підходить тим, хто працює у Windows, але хоче мати Linux-команди, Linux-пакети, Linux-розробку й DevOps-інструменти прямо поруч із Windows-застосунками.
52. Джерела
- Microsoft Learn: Windows Subsystem for Linux Documentation
- Microsoft Learn: What is Windows Subsystem for Linux
- Microsoft Learn: Install WSL
- Microsoft Learn: Comparing WSL 1 and WSL 2
- Microsoft Learn: Basic commands for WSL
- Microsoft Learn: WSL release notes
- Microsoft Learn: WSL kernel release notes
- Microsoft WSL GitHub repository
- Visual Studio Code Remote WSL documentation
- Docker Desktop WSL 2 backend documentation
53. Див. також
Windows Subsystem for Linux WSL WSL 2 WSL 1 Windows Windows 10 Windows 11 Linux Ubuntu Debian Kali Linux openSUSE Fedora Docker Kubernetes Visual Studio Code Windows Terminal Bash systemd WSLg DevOps Віртуалізація Операційні системи