WSL позволяет работать с Linux-окружением в Windows. WSL 1 использует слой совместимости с трансляцией системных вызовов; WSL 2 запускает настоящее ядро Linux в управляемой виртуальной машине. WSL 2 обеспечивает более полную совместимость системных вызовов, но производительность доступа к файлам зависит от того, где они хранятся.
Что такое WSL и чем WSL 1 отличается от WSL 2?
Разница между трансляцией системных вызовов и настоящим ядром Linux, совместимость программ и особенности работы с файлами в WSL.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Windows Subsystem for Linux позволяет запускать Linux-дистрибутив и его инструменты рядом с Windows-приложениями. Версии отличаются архитектурой, а не только набором команд.
WSL 1 реализует слой совместимости: системные вызовы Linux обслуживаются через механизмы Windows. Полноценное ядро Linux при этом не запускается. Такой подход ограничивает совместимость программ, которым нужны отсутствующие возможности ядра.
WSL 2 использует настоящее ядро Linux внутри легковесной управляемой виртуальной машины. Это расширяет совместимость, в том числе для программ, зависящих от Linux-механизмов ядра. Пользователю не нужно вручную создавать обычную виртуальную машину для каждого запуска среды. См. сравнение версий в документации Microsoft.
Важный практический нюанс — расположение файлов. Много мелких операций с проектом внутри Linux-файловой системы и работа с тем же проектом через границу файловых систем Windows/Linux могут иметь разную скорость. Поэтому утверждение «WSL 2 всегда быстрее» некорректно: сравнивают конкретную нагрузку.
При выборе учитывают совместимость нужного ПО, расход ресурсов, доступ к файлам и интеграцию с рабочими инструментами. Сетевое поведение зависит от версии и настроек, поэтому не стоит описывать один режим как обязательный для всех установок.
Краткая формула для интервью: WSL 1 — совместимость без собственного Linux-ядра; WSL 2 — Linux-ядро с виртуализацией и тесной интеграцией в Windows.