Добавить в корзинуПозвонить
Найти в Дзене

WSL2 на Windows: Запуск Linux-инструментов без виртуальной машины

Всем привет! На связи BFDevel, и в данной статье я расскажу Вам о Подсистеме Windows для Linux, ну или сокращенно - WSL. Если вы до сих пор разворачиваете VirtualBox или VMware исключительно ради bash-терминала или компилятора, то этот инструмент сэкономит вам не только время, но и ресурсы машины. WSL (Windows Subsystem for Linux) — это не эмулятор и не классическая виртуальная машина. Первая версия подсистемы (WSL1) работала как транслятор: она перехватывала системные вызовы Linux и на лету преобразовывала их в вызовы Windows API. Это позволяло запускать консольные утилиты, но файловая система работала медленно, сетевой стек, как и доступ к ядру, был существенно ограничен. WSL2 в корне изменил архитектуру. Теперь внутри крутится настоящее, облегчённое ядро Linux, которое работает поверх встроенного гипервизора. Для пользователя это выглядит как обычное окно терминала, загрузка занимает 2–3 секунды, оперативная память выделяется динамически и освобождается, когда подсистема неактивна,
Оглавление

Всем привет! На связи BFDevel, и в данной статье я расскажу Вам о Подсистеме Windows для Linux, ну или сокращенно - WSL. Если вы до сих пор разворачиваете VirtualBox или VMware исключительно ради bash-терминала или компилятора, то этот инструмент сэкономит вам не только время, но и ресурсы машины.

Что же это такое?

WSL (Windows Subsystem for Linux) — это не эмулятор и не классическая виртуальная машина. Первая версия подсистемы (WSL1) работала как транслятор: она перехватывала системные вызовы Linux и на лету преобразовывала их в вызовы Windows API. Это позволяло запускать консольные утилиты, но файловая система работала медленно, сетевой стек, как и доступ к ядру, был существенно ограничен.

WSL2 в корне изменил архитектуру. Теперь внутри крутится настоящее, облегчённое ядро Linux, которое работает поверх встроенного гипервизора. Для пользователя это выглядит как обычное окно терминала, загрузка занимает 2–3 секунды, оперативная память выделяется динамически и освобождается, когда подсистема неактивна, а главное - теперь прямо из-под Windows можно запускать практически любую Linux-утилиту.

Установка и первый запуск

На современных сборках Windows 10 (2004+) и Windows 11 установка сводится к нажатию одной кнопки. Откройте Microsoft Store, введите в поиск название желанного дистрибутива (Допустим, Ubuntu), и нажмите кнопку "Установить".

-2

Если по какой-либо причине у Вас нет доступа к Microsoft Store, выполнить установку можно и без него. Для этого откройте PowerShell от имени администратора и введите:

wsl --install

Система сама включит необходимые компоненты, загрузит ядро и установит Ubuntu по умолчанию. После перезагрузки откроется терминал, где нужно будет придумать имя пользователя и пароль для Linux-учётной записи. На этом базовая настройка завершена.

Окно терминала Ubuntu внутри Windows
Окно терминала Ubuntu внутри Windows

Особенности файловой системы

Одна из самых частых ошибок при работе с WSL2 - неправильное размещение проектов. Подсистема хранит данные в виртуальном диске ext4.vhdx, который монтируется в Windows как сетевой ресурс \\wsl.localhost\. Если вы будете хранить исходный код на диске C:\ и обращаться к нему из Linux-терминала через /mnt/c/, производительность упадёт в разы. Файловые операции будут идти через слой трансляции, что особенно заметно при работе с тысячами мелких файлов (node_modules, git-репозитории, кэши компиляторов).

Более корректным будет разместить проекты для Linux внутри домашней директории WSL (/home/username/). Доступ к ним из Windows сохраняется через \\wsl.localhost\Ubuntu\home\..., а скорость чтения/записи остаётся нативной. Если вам нужно редактировать код в Windows-редакторах, используйте VS Code с официальным расширением Remote-WSL. Оно подключается к подсистеме по SSH-туннелю, запускает серверную часть редактора внутри Linux и отдаёт вам только интерфейс. Компиляция, линковка и запуск тестов проходят на стороне WSL, без потери скорости.

Типичные проблемы и как их решать

1. Ошибка запуска или сообщение о недоступности виртуализации
WSL2 использует гипервизор Hyper-V, поэтому в BIOS/UEFI должна быть включена аппаратная виртуализация (VT-x для Intel или AMD-V/SVM для AMD). Проверить статус можно в Диспетчере задач → Производительность → ЦП. Если там написано «Виртуализация: Отключено», подсистема не запустится. Решение: зайти в BIOS, включить соответствующий параметр, сохранить настройки и перезагрузиться.

2. Виртуальный диск растёт и не уменьшается
Файл ext4.vhdx умеет увеличиваться под нагрузку, но не сжимается автоматически после удаления файлов. Если место на системном диске начало заканчиваться, нужно завершить работу WSL (wsl --shutdown), найти файл vhdx по пути
%LOCALAPPDATA%\Packages\<пакет_дистрибутива (Например CanonicalGroupLimited.Ubuntu_....)>\LocalState\ и использовать встроенную утилиту DiskPart:

diskpart
select vdisk file="полный\путь\к\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
-4

Практическое применение

Зачем всё это нужно в реальной работе? Первое и самое очевидное — запуск нативных Linux-инструментов без слоёв совместимости. Возьмём, например, сборку проектов на C/C++. В Windows разработчики часто ставят MinGW или Cygwin, что добавляет лишние зависимости и периодически ломает пути к системным библиотекам. В WSL2 вы просто выполняете sudo apt install build-essential, получаете актуальный gcc, g++, make и отладчик gdb.

Это особенно удобно, если вы работаете с кроссплатформенными проектами или используете инструменты, которые официально поддерживают только Linux (например, некоторые версии Redis, PostgreSQL или специфичные утилиты для работы с сетью). О том, как правильно настроить GCC, оптимизировать сборку флагами, подключить статический анализ и отладку через GDB, я разберу в отдельной статье (не обещаю, что в следующей), так как тема достаточно объёмная.

Вместо заключения

WSL2 - это не замена полноценному Linux на отдельном железе, но для локальной разработки, скриптов, тестирования и работы с серверным стеком её хватает с запасом. Вы получаете возможность работать в привычной Windows-среде без постоянного переключения между ОС или использования виртуальной машины.

Надеюсь, вам понравилась моя новая статья. Пишите комментарии, ставьте "Мне нравиться", делитесь моей статьей в соц. сетях, подписывайтесь на канал, скоро новые статьи)

Моя предыдущая статья: