Wsl windows 11 для чего нужен

Упоминаются ли Linux и Windows вместе?

Упоминаются ли Linux и Windows вместе?

Если да, то что это за объединение?

Может ли это быть чем-то, что позволит преодолеть разрыв между двумя мирами?

В прошлом люди, использующие технологический стек Microsoft, применяли Windows в качестве среды разработки, в то время как другие, более заинтересованные в сообществе разработчиков с открытым исходным кодом, предпочитали Linux.

До появления подсистемы Windows для Linux (WSL) между ними существовала четкая пропасть, и они никогда ничем не делились.

Но с появлением WSL разработчики теперь могут работать в Linux на своем настольном компьютере версии Windows 10 с помощью подсистемы Windows Subsystem for Linux или Windows WSL.

Запуск системы Linux рядом с системой Windows значительно упрощается и становится более гибким благодаря WSL.

Kali Linux в подсистеме Windows для Linux

Содержание

  1. Что такое подсистема Windows для Linux?
  2. Сравнение WSL1 и WSL2
  3. Для чего нужна подсистема Windows для Linux?
  4. Зачем использовать WSL вместо Linux на виртуальной машине?
  5. Как настроить среду разработки WSL?
  6. Установите дистрибутив Linux
  7. Создание логина и пароля Linux
  8. Обновление и модернизация пакетов
  9. Можно включить больше дистрибутивов
  10. Настройка терминала Windows
  11. Хранение файлов
  12. Выберите редактор кода
  13. Использование Visual Studio Code
  14. Использование Visual Studio
  15. Использование Git для управления версиями
  16. Настройка Docker для удаленной разработки
  17. Создание базы данных
  18. Настройка GPU
  19. Используйте основные команды WSL
  20. Монтирование внешнего диска или USB
  21. Запуск приложений с графическим интерфейсом Linux
  22. Плюсы и минусы использования подсистемы Windows для Linux
  23. Плюсы
  24. Минусы
  25. Заключение

Что такое подсистема Windows для Linux?

Подсистема Windows Subsystem for Linux (WSL) позволяет исполняемым файлам Linux 64-разрядного формата (ELF64) работать на ядре Windows в операционной системе (ОС) Windows 10.

WSL – это компонент, который позволяет использовать средства разработки Linux на компьютерах Windows, но не рабочие нагрузки.

Изначально он был разработан как вариант установки клиентской системы Windows.

Для администрирования экземпляра Linux в состав WSL входит служба управления сеансами в пользовательском режиме, уменьшенные процессы Pico для обработки системных вызовов Linux и драйверы Pico для имитации ядра Linux.

Такая архитектура позволяет ядру Windows принимать и обрабатывать системные вызовы Linux.

На прошлой неделе компания Microsoft объявила, что Windows Subsystem for Linux версии 2 (WSL2) теперь совместима с Windows Server 2022.

Основными причинами для перехода с WSL 1 на WSL 2 являются:

  • Ускорение работы файловой системы
  • Поддержка совместимости системных вызовов.

WSL 2 запускает ядро Linux внутри легковесной виртуальной машины с использованием новейшей технологии виртуализации (VM).

Однако WSL 2 не является типичной виртуальной машиной.

Сравнение WSL1 и WSL2

За исключением производительности в файловых системах разных ОС, которую можно решить, храня файлы проекта в той же операционной системе, что и инструменты, используемые для работы над проектом, архитектура WSL 2 по многим параметрам превосходит WSL 1.

Только Windows 11 или 10, версия 1903, Build 18362 или более поздняя поддерживают WSL 2.

Другими ключевыми различиями между обеими версиями являются:

  • Архитектурное различие
  • Производительность ввода-вывода файлов
  • WSL 2 обеспечивает полную совместимость с системными вызовами

На Linux системные вызовы используются для доступа к файлам, запроса памяти и запуска процессов.

В отличие от WSL 1, которая была основана на слое трансляции, созданном командой WSL, WSL 2 имеет встроенное ядро Linux, которое работает со всеми системными вызовами.

Для чего нужна подсистема Windows для Linux?

С помощью подсистемы Windows для Linux вы можете:

  • Выбрать дистрибутивы GNU/Linux, которые вы предпочитаете, из магазина Microsoft.
  • Запустить бинарники ELF-64 или стандартные инструменты командной строки, такие как grep, sed или awk.
  • Запускать программы командной строки GNU/Linux и скрипты оболочки Bash, включая: Инструменты: tmux, emacs и vi, Языки: Go, Rust, NodeJS, Javascript, Python, Ruby, C/C++, C# и F#, Сервисы: PostgreSQL, MongoDB, Apache, MySQL, SSHD и lighttpd.
  • Установить дополнительное программное обеспечение с помощью менеджера пакетов в вашем собственном дистрибутиве GNU/Linux.
  • Использовать оболочку командной строки, аналогичную Unix, для запуска приложений Windows.
  • Запускать программы GNU/Linux на компьютере с Windows.
  • Запускать Linux в оболочке Bash (Ubuntu, Debian, OpenSUSE, Kali, Alpine и т.д.). Вы можете использовать Bash для запуска утилит и программ командной строки Linux.

Зачем использовать WSL вместо Linux на виртуальной машине?

WSL использует меньше ресурсов (процессор, память и хранилище), чем целая виртуальная машина.

Наряду с запуском инструментов и приложений командной строки Linux наряду с приложениями командной строки, рабочего стола и магазина Windows, WSL также позволяет вам получать доступ к файлам Windows из Linux и запускать инструменты и приложения командной строки Linux.

Это позволяет использовать как приложения Windows, так и инструменты командной строки Linux на одном и том же наборе файлов.

Как настроить среду разработки WSL?

В составе операционной системы Windows есть подсистема для Linux, которая называется Windows Subsystem for Linux.

Вот краткое руководство по настройке среды разработки WSL:

Установите дистрибутив Linux

Перед включением WSL установите дистрибутив Linux.

Чтобы воспользоваться преимуществами команды упрощенной установки, вы должны использовать последнюю версию Windows (Build 20262+).

Чтобы узнать, какая у вас версия и номер сборки, нажмите клавишу с логотипом Windows + R, введите winver и нажмите OK.

Обновления можно выполнить через меню Настройки или помощник обновления Windows.

Создание логина и пароля Linux

После завершения процесса установки WSL откройте дистрибутив Linux (по умолчанию Ubuntu).

Для вашего дистрибутива Linux должны быть созданы имена пользователей и пароли.

Обновление и модернизация пакетов

Используйте менеджер пакетов вашего дистрибутива для частого обновления пакетов.

Windows не выполняет автоматических обновлений и модернизаций.

Большинство пользователей Linux предпочитают справляться с этой задачей самостоятельно.

Можно включить больше дистрибутивов

Если вы хотите установить больше дистрибутивов Linux через Microsoft Store, вы можете загрузить свой собственный дистрибутив, использовать команду -import или загрузить свой собственный дистрибутив из Интернета.

Кроме того, вы можете создать уникальные образы WSL и распространить их по всей компании.

Настройка терминала Windows

Любое приложение, имеющее интерфейс командной строки, может быть запущено через терминал Windows.

Механизм рендеринга текста с ускорением GPU, множество вкладок и панелей, совместимость с символами Unicode и UTF-8, возможность создания собственных тем, а также возможность изменения текста, цвета фона и ярлыков – вот лишь некоторые из его ключевых особенностей.

При установке нового дистрибутива WSL Linux внутри терминала Windows будет создан его свежий экземпляр, который можно настроить по своему вкусу.

Хранение файлов

Храните файлы проекта на том же компьютере, что и оборудование, которое вы собираетесь использовать.

Наибольшая скорость работы достигается при сохранении файлов в файловой системе WSL (Ubuntu, OpenSUSE и т.д.).

Для сохранения файлов в файловой системе Windows можно использовать командную строку Windows (PowerShell, Command Prompt) и инструменты Windows.

Хотя файлы можно просматривать из любой операционной системы, производительность может заметно снизиться.

Выберите редактор кода

Поскольку они изначально позволяют осуществлять удаленную разработку и отладку WSL, мы советуем использовать Visual Studio Code или Visual Studio.

С помощью Visual Studio Code вы можете использовать WSL как полнофункциональную среду программирования.

Visual Studio обеспечивает встроенную поддержку WSL для кроссплатформенной разработки на C++.

Использование Visual Studio Code

Вы можете использовать WSL в качестве основной среды разработки из VS Code с помощью расширения Remote – WSL и Visual Studio Code.

После установки и настройки VS Code вы можете использовать удаленный сервер VS Code для запуска вашего WSL-проекта.

Использование Visual Studio

Используя один и тот же экземпляр Visual Studio 2022, вы можете собирать и отлаживать проекты CMake на Windows, WSL-дистрибутивах и SSH-соединениях.

Использование Git для управления версиями

Наиболее распространенная программа управления версиями называется Git.

С помощью Git вы можете отслеживать изменения, которые вы вносите в файлы, чтобы иметь запись о том, что было сделано, и при необходимости вернуться к более старым версиям.

Git также облегчает сотрудничество, позволяя объединять правки нескольких авторов в одном хранилище.

Настройка Docker для удаленной разработки

Docker Desktop предлагает среду разработки для создания, распространения и запуска докеризованных приложений для Windows.

Вы можете запускать контейнеры Linux и Windows в Docker Desktop на одной машине, включив механизм на базе WSL 2.

Создание базы данных

Начните с подключения вашего проекта в WSL к базе данных. С MySQL, PostgreSQL, MongoDB, Redis, Microsoft SQL Server или SQLite вы сможете быстро приступить к работе.

Настройка GPU

Подсистема Windows для Linux (WSL) предоставляет отличную среду для запуска наиболее распространенных и популярных приложений машинного обучения с GPU-ускорением, независимо от того, являетесь ли вы специалистом по исследованию данных, инженером по ML или только начинаете работать с ML. Итак, вашим следующим шагом должна стать установка и запуск GPU.

Используйте основные команды WSL

Лучший способ администрирования дистрибутивов Linux, установленных через WSL, – это PowerShell или Windows Command Prompt (CMD).

Монтирование внешнего диска или USB

Используйте WSL 2 для монтирования диска и чтения его содержимого, если вам нужен доступ к диску формата Linux, который Windows не поддерживает.

Процедуры поиска диска и раздела для подключения к WSL2, их монтирования и получения доступа к ним рассматриваются в этом уроке.

Запуск приложений с графическим интерфейсом Linux

Чтобы запускать программы Linux GUI (X11 и Wayland) на Windows в полностью интегрированной среде рабочего стола, теперь вы можете изучить совместимость с Windows Subsystem for Linux (WSL).

Благодаря WSL 2 приложения с графическим интерфейсом Linux на Windows теперь могут ощущаться как родные и интуитивно понятные.

Плюсы и минусы использования подсистемы Windows для Linux

Вот некоторые плюсы и минусы использования Windows Subsystem для Linux.

Плюсы

Идеально подходит для разработчиков, использующих инструменты с открытым исходным кодом

Если вы разработчик, уже использующий инструменты с открытым исходным кодом, ничто не сравнится с подсистемой Windows для Linux.

Она идеально подходит для тех, кто хочет использовать существующий язык разработки и инструменты сборки, или для тех, кто хочет воспользоваться преимуществами своих любимых языков программирования, которые могут работать как в Windows, так и в Linux.

В последние годы поддержка Linux со стороны Microsoft постоянно улучшается, но она все еще не настолько совершенна, как при использовании виртуальной машины или контейнера.

Но если вам нужно запустить свой код на нескольких платформах, это один из единственных вариантов, который позволит вам сделать это без необходимости устанавливать что-либо на свой компьютер.

Совместимость Windows-Linux

Совместимость Windows и Linux обеспечивается с помощью WSL.

Файловая система как Windows, так и Linux доступна для просмотра.

Кроме того, они могут запускать программы из командных интерпретаторов друг друга.

Это может привести к появлению некоторых интригующих приложений и, возможно, к переходу от рассмотрения этих двух систем как конкурентов к рассмотрению их как взаимодополняющих параметров.

Проще, чем двойная загрузка или виртуальные машины

Вам не нужно перезагружаться или запускать виртуальную машину, поскольку WSL уже работает в Windows.

При установке системы с двойной загрузкой необходимо оставить место на жестком диске и убедиться, что у вас есть резервный носитель для загрузки в случае, если что-то пойдет не так.

Вы должны перезагрузить систему, если хотите использовать Windows для выполнения программ Linux или наоборот.

Хотя виртуальная машина (VM) является более простой и быстрой в настройке, Windows и Linux сталкиваются с трудностями при обмене данными, поскольку VM все еще является принципиально другой машиной.

На виртуальной системе часто требуется настройка файлового сервера. Кроме того, виртуальные машины имеют стоимость производительности.

Простое введение в Linux для пользователей Windows

Для тех, кто не знаком с Linux, WSL может стать лучшей отправной точкой.

Они могут познакомиться с командами Linux, не устанавливая полностью новую операционную систему. WSL можно установить всего несколькими щелчками мыши из магазина Microsoft Store.

Кроме того, это облегчит людям переход на Linux.

Минусы

Вы продолжаете использовать Windows

Поскольку использование WSL все равно подразумевает участие в этой экосистеме, ее использование вызывает возражения у тех, кто идеологически не приемлет Microsoft и проприетарное ПО.

WSL будет поддерживать участие в этой системе.

Для ярых сторонников свободного программного обеспечения не подойдет ничто иное, как ПК под управлением свободной версии GNU/Linux.

WSL создавалась не для серверов

Дистрибутивы не предназначены для работы в качестве серверов, хотя WSL может быть установлена на Windows Server.

Запустить такие серверы, как Apache или MariaDB на Ubuntu сложнее, поскольку система не поддерживается.

Большинство пользователей, которым требуются серверы, устанавливают обычные Linux-серверы, поэтому этот недостаток может быть не столь существенным.

WSL может препятствовать внедрению Linux на настольных компьютерах

Меньшему числу пользователей может понадобиться установка настольной версии Linux, поскольку WSL совместима с Windows.

Учитывая, что у них уже есть настольная система Windows и они могут запускать приложения Linux GUI на Windows, они могут не видеть необходимости в установке совершенно новой настольной ОС.

Предположим, что только крошечный процент пользователей Linux работает с полным рабочим столом.

В этом случае, возможно, не будет прилагаться столько усилий для улучшения совместимости оборудования, что может только усугубить проблемы с рабочим столом Linux.

Заключение

В своем нынешнем виде WSL – это довольно крутой прогресс в Windows.

Разработчики, работающие в Windows, могут получить доступ к среде Linux благодаря Windows Subsystem for Linux.

WSL предлагает ядро Linux и позволяет установить несколько дистрибутивов внутри среды Windows, устраняя необходимость запускать виртуальную машину или полагаться на удаленный компьютер с Linux для разработки.

Конечная цель – предоставить простой способ запуска Linux в Windows.

Самое главное, WSL не занимает много памяти (например, около 256 МБ для Bash), что означает, что ваша машина может работать быстрее и плавнее.

Table of Contents

Зачем нужен Windows Subsystem for Linux 2 (WSL2)? Самый частый ответ — простое использованое Linux программ в среде Windows. Docker самая распространенная причина для установки WSL2.

Что надо для WSL2

  • убедиться что в BIOS включена виртуализация, ищите пункт меню:
    • процессор Intel: VT-x, Intel Virtualization Technology, VTx
    • процессор AMD: SVM Mode, AMD-V, Virtualization Technology
  • версия Windows 11 или 10 не ниже версии 2004 (сборка 19041 ~декабрь 2019)
  • права администратора

Всего несколько команд

Установим само ядро wsl и запустим дистрибутив Ubuntu для работы в консоли.

Открывайте PowerShell с правами Администратора. Самый простой вариант по мне -> WIN+X и выбрать Терминал Windows (Администратор).

Выполняйте команду:

По-умолчанию, установится WSL2 с GUI и Ubuntu . Установка займет определенное время, подождите.

Если ошибка 0x80072eff

В процессе, можете увидеть ошибку Во время установки произошла ошибка, но установка может быть продолжена. Компонент: 'Ядро WSL' код ошибки: 0x80072eff.

0x80072eff

А значит, все автоматически не сработало, не беда. Перезагружайтесь и снова запустите PowerShell от Администратора.

  • Запустите обновление wsl
  • Завершите работу wsl
  • Запустите заново wsl
  • Запустите установку Ubuntu (если надо более специфический дистр, посмотрите все варианты wsl -l -o)

ubuntu success install

Успешная установка Ubuntu

После установки, введите имя пользователя и пароль для Ubuntu, и вам будет доступна среда Linux.

ubuntu login pass

Рекомендуется сделать одну команду, обновить список пакетов:

и наслаждаться :)

Как зайти в WSL консоль

  • запускайте команду wsl. (например, в настройках среды разработки указать wsl это для терминала по-умолчанию)
  • можете вынести из Пуска, ярлык Ubuntu на панель задач.
  • или поставить обновленный Microsoft Terminal, и в нем настроить при запуске сразу открывать консоль wsl, рекомендую.

start wsl

ubuntu info

WSL в Windows 11 – новейший дистрибутив, который можно использовать на операционной системе последнего поколения. В новой версии разработчики решили внести более упрощенный вариант установки. Обладает оригинальным графическим интерфейсом, предназначенным для ОС Linux. Согласно мнению людей, утилита работает для улучшения операционной системы, что позволяет раскрыть все в максимальном объеме.

Установка WSL в Windows 11 не займет много времени, такой процесс требует немного свободного времени. Для этого выполните необходимые  действия. Установить утилиту можно по умолчанию. Производители дистрибутива упростили процедуру, сделав установку удобной и простой. Можно сократить другие шаги до одной единственной команды, в которую включаются дополнительные инструменты, функционал, платформа онлайн машины и после запрашивает необходимую перезагрузку.

Используемая команда по умолчанию поможет установить новейший формат утилиты Ubuntu. Если пользователи намерены использовать другой вариант дистрибутива для Линукс, то есть появится возможность дополнить его в функционале. Совместно с моментальным и упрощенным видом установки, существует еще одна разновидность, которая максимально упрощает обновление ядра.

Как установить WSL с определенным дистрибутивом в Windows 11

Для моментальной установки программы при помощи командной строки, действуйте согласно инструкции:

  1. Для начала откройте «Командную строку» либо «Виндовс Терминал». Действуйте только от имени администратора компьютера, используя главное меню, либо при помощи «Пуск».
  2. Теперь введите необходимую команду, установите ВСЛ в Виндовс 11 и нажмите на клавишу «Энтер».
  3. Дождитесь загрузки и проведите перезагрузку компьютера.

Как только дистрибутив загрузится на устройство, автоматически включается инсталляция данных, запускаются дополнительные компоненты. Настройте скачанную утилиту под свое удобство и параметры, чтобы использовать было легче. Также предлагается вписать логин и пароль, чтобы вовремя открывать утилиту.

Для определенного дистрибутива нужно создать новое имя пользователя и придумать сложную комбинацию пароля. Оригинальная учетная запись используется лишь для входа в установленный компонент дистрибутива. Учетная запись предоставляет возможность пользоваться устройством от имени администратора.

При особой необходимости установите дистрибутив на Линукс. Как только все шаги выполните согласно с требованиями, вы можете пользоваться установленными дистрибутивами в удобном формате. Все необходимые компоненты устанавливаются автоматически, в последней версии представлены дополнительные опции. Как видно, установить WSL в Windows 11 несложно, процедура занимает не больше 5-10 минут.

 Обновление ядра WSL в Windows 11

Для обновления ядра до новой версии при помощи командной строки действуйте следующим образом:

  1. Задействуйте клавишу «Пуск». Там найдите строку «Запуск от имени администратора», кликните по нему и выделите необходимые для пользования параметры.
  2. Введите в командную строку нужные комбинации wsl –update. После нажмите на кнопку Энтер.

Выполнив несложные действия, если обновление было задействовано, оно загрузится автоматически. Установите его на персональный компьютер и программа будет работать лучше прежнего.

Как удалить дистрибутив

Перед выполнением удаления дистрибутива убедитесь в том, что устройство обновилось до Виндовс 11 с 10. Если применили новейшую установку при помощи форматирования системы, отформатируйте весь раздел системного блока и после переустановить старую версию Виндовс, то есть на 10. Виндовс 11 появилась на свет относительно недавно, но за короткое время успела понравиться пользователям благодаря оригинальности и удобству. Если такой вариант не нравится, вы всегда легко удалите Виндовс 11 и вернуться к обратному исходу.

Самый простой способ устранить ошибки – это вернуться к прежней версии Виндовс 10. Используя данный способ, вы никогда не потеряете личные данные. Но пользователи столкнутся с неприятностью, где дается десять дней на откат. Проследите за тем, чтобы процедура сработала. Для этого следуйте по подсказскам:

  • Нажмите на ВИН+1, чтобы перейти к настройкам Виндовс 11.
  • Выберите там раздел «Центр обновления».
  • Нажмите по разделу «Доп. Параметры».
  • Нажмите на клавишу «Восстановление».
  • Следуйте подсказскам, чтобы перейти на прежнюю версию.

Если вы используете портативные компьютеры, то есть ноутбуки, то электропитание обязательно. Несколько раз перезеапустив компьютер, ОС с Виндовс 11 вернется к 10. Это довольно простой и безопасный вариант для возврата к Виндовс 10.

 Ошибки при запуске Линукса на Windows 11

Этот дистрибутив является относительно новым вариантом вспомогательного инструмента. Новички постоянно сталкиваются с многочисленными ошибками обновления только из-за полного несоответствия системным параметрам. Компания разработчик выпустила удобные функции, позволяющие настраивать параметры, устраняющие ошибку обновления для пользователей. Для применения обновлений, предлагается перезапустить ПК, после программа обновится автоматически.

Ошибки частенько возникают из-за недостаточности показателей главным требованиям оборудования для Виндовс 11. Устройство дополнительно получит необходимые сборки, пока Виндовс 11 не окажется общедоступным, после установите его в компьютер. К сожалению, но невозможно установить практически все формальности дистрибутива, пользователи частенько игнорируют изучение инструкции по установке, потому и появляются типичные ошибки с загрузкой. Исключите любые ошибки, чтобы предотвратить неприятности с вашим персональным компьютером. Применение профессионального дистрибутива, позволяет настроить все необходимые параметры для удобства применения утилиты после установки новой программного обеспечения.

Windows Subsystem for Linux (known as WSL)

This article has been written to complete the presentation and to deal in depth with the subject in detail.

WSL-Logo


  • Windows Subsystem for Linux (known as WSL)
    • What is the WSL and how it works ?
      • WSL is not a virtual machine !
      • WSL 1 vs WSL 2
      • The limits of WSL
    • Install WSL on Windows
      • Requirements
      • Download WSL
      • WSL distributions available at this time
    • Some useful WSL features
      • Mount an EXT file system on Windows (or other filesystem)
        • Mount an entire disk
        • Mount a partition from a disk
      • Add a desktop environment to your WSL
      • Some useful commands
    • Appendix — Sources and References

What is the WSL and how it works ?

The WSL for Windows Subsystem for Linux is a compatibility layer developed by Microsoft for running Linux binaries natively (ELF format) in a console environment on Windows 10 and Windows 11. This ingenious technology provides a Linux-compatible kernel interface and can interact directly with the Windows operating system with performances very close to a native Linux distribution. Moreover, it allows a user to choose a Linux distribution to install directly from the Microsoft Store (more info in below).

WSL is not a virtual machine !

Oh my god, I have heard so many times «WSL ? Yeah it’s like a virtual machine on your Windows» but no. It’s not as simple…
Although WSL uses virtualization technologies in some cases (more information in the next section), it does not work in a partitioned environment on your Windows system like a classic virtual machine on VMware or VirtualBox.

It’s important to know that all your storage devices that have an assigned letter by the Windows operating system (for example C:, D:, E:, …) are reachable in the /mnt directory. As an example, the famous C: partition of your Windows system is in /mnt/c and this is same thing for the others.

The NTFS and FAT partitions are directly mounted on the /mnt directory but it’s necessary to execute some commands to mount EXT4 ones (more information below).

Therefore, the WSL can access to your storage devices and it may have some consequences. Indeed, if you try to delete your Document folder for example, you will notice that it will be permanently removed from your computer. You can also create a new file with a text editor like vim or nano and be able to edit it with a Windows text editor (like notepad for example).

For the curious ones, we tried to do a rm -fr /mnt/c command with the WSL and the root privileges, to delete all the files in the C: directory. It seems that the WSL can only delete the files in the user folder in C:Users<name_of-the_user>. However, the windows system becomes quite unstable and slow.

WSL 1 vs WSL 2

The first thing to know is that WSL 2 isn’t only an simple evolution of the first version. The entire architecture has been redesigned and the operation is not the same.

First of all, let’s see how the architecture of WSL 1 looks like :

bg fit right

As you can see, WSL 1 is a simple layer between the linux distribution and the Windows kernel. The Linux syscalls are converted into Windows syscalls with bridges.

Actually, we can compare the WSL 1 with the well known Wine software that permits to execute Windows applications on Linux systems by converting Windows API calls on Linux API calls.

However, we can notice in the architecture of the WSL 2 that there is a whole Linux kernel virtualized :

bg fit right

The Virtual Machine Platform is a less powerful version of Hyper-V that still enables a hypervisor. Note that Microsoft if very vague on what the actual differences are between the Virtual Machine Platform and Hyper-V.

As we can see, the WSL 2 is based on a Linux kernel virtualized with the Virtual Machine Platform. This version has an increased I/O performance and a full system call compatibility. Indeed, initial versions of WSL 2 run up to 20 times faster compared to WSL 1 when unpacking a zipped tar archive, and around 2-5 times faster when using file intensive operations like git clone, apt upgrade, etc. Besides, unlike the WSL 1, it supports 32-bits applications.

However, if you are using files stored in storage devices on /mnt in your Windows file system, the WSL 1 will be faster than then second version. It has a lighter architecture and it does not need a hypervisor layer. But if you are using files stored in the root directory ( / ), WSL 2 will be even faster because file operations are moved on a VHD (Virtual Hardware Disk). You can access to this virtual disk with the windows explorer if you enter the command explorer.exe in your home directory or directly with the windows explorer by specifying the path \wsl$<name_of_the_distro>.

The limits of WSL

First of all, hardware acceleration isn’t supported so the graphic performances are quite poor and well known graphic standards, like the CUDA technology, are not implemented. Regarding the audio, it’s not natively supported but it can be remedied by installing a network-capable sound server like PulseAudio.

Currently, a better integrated desktop oriented WSL is still in development and its named WSLg. At this time, according to Microsoft, it only works on Windows 11 (build 22000+) or Windows 11 Insider Preview (builds 21362+). If you want more information, check the references section below.

Moreover, networking on WSL isn’t fully reliable. WSL allows you to communicate with a network, but it may be less efficient because it needs to pass through a few layers in order to do work. This implies a considerable loss of performance when executing processes that operate at a low network level.

As Microsoft says in its documentation, WSL has been designed for the developers. So, if you want to host a Web service or sharing storages locally for example, it’s better and more convenient to use a full Linux virtual machine in a classic hypervisor.

Install WSL on Windows

Requirements

First, you must be running Windows 10 64bits version 2004 or higher (Build 19041 or higher) or Windows 11 64bits.

To check your Windows version and build number, select Windows logo key + R, type winver and select OK.

If you have an older version, update your system with Windows Update.

You need to have a Windows functionality installed before using WSL. To install it, select Windows Logo key, type Windows Features and enter. This window should open :

bg fit right

Make sure to install Virtual Machine Platform. After this, you must restart your Windows system.

Or you can type this command in a prompt with administrator privileges to install it :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Make sure to restart the system afterwards.

Download WSL

You can install the WSL feature with the same procedure described before by selecting the Windows Subsystem for Linux or with the following Powershell command as an administrator :

According to Microsoft, this command will activates the required optional components, downloads the latest Linux kernel, sets WSL 2 as default and installs a Linux distribution for you (Ubuntu by default)

or

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

This command will only install WSL.

WSL distributions available at this time

At this moment (when this article was written), you can install these distributions :

  • Ubuntu
  • Debian
  • Kali Linux
  • openSUSE
  • Alpine Linux
  • Pengwin (more information about it in Presentation.md)
  • Fedora Remix

You can install the distribution you want directly on the Windows Store !

Or you can install it via a console with the command :

wsl --install --distribution DistribName

Some useful WSL features

Mount an EXT file system on Windows (or other filesystem)

First, you must be running Windows 11 Build 22000 or higher and have admin privileges. This procedure only works on the WSL 2 and it is non-peristent, the filesystem will be unmounted after WSL shutdown.

Mount an entire disk

To mount an entire disk, we first need to identify the physical disk.

In a windows console :

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

This command should return a list of physical drives in this format :

\.PHYSICALDRIVEX X : number of the physical drive

Then we can mount it with the command :

wsl --mount \.PHYSICALDRIVEX

Default filesystem is ext4, we can specify the type of filesystem with the argument t. We can list the available filesystem with cat /proc/filesystems

The mounted disk should be now accessible via the Explorer in \wsl$DistromntPHYSICALDRIVEX

Or directly in the distro used : /mnt/PHYSICALDRIVEX

Mount a partition from a disk

To mount only a partition from a disk, we first need to identify the physical disk as before.
In a windows console :

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

Then mount the physcial disk :

wsl --mount \.PHYSICALDRIVEX

Now we are going to list the available partitions with :

It should return something like this :

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    1G  0 disk
├─sdb2   8:18   0   50M  0 part
├─sdb3   8:19   0  873M  0 part
└─sdb1   8:17   0  100M  0 part
sdc      8:32   0  256G  0 disk /
sda      8:0    0  256G  0 disk

We can now mount the partition we want by specifying only the number of the partition. For instance if it’s sdb1, we specify 1 :

wsl --mount \.PHYSICALDRIVEX --partition 1 --type <Filesystem>

Add a desktop environment to your WSL

This procedure only works on the WSL 2.
WSL 2 allows us to run linux applications with GUI by default.

You could run a complete desktop environnement but we need a X server.
There are plenty of tutos about that.

X11 server with Xfce

If you are in the kali team, they have built a nice tool called Win-KeX which provides a Kali Desktop Experience for WSL 2.

In the kali console you can install the tool with :

sudo apt install -y kali-win-kex

To launch it in Window mode with sound support :

To launch it in Enhanced Session Mode :

Some useful commands

Update WSL :

Stop WSL :

Export a distro (Backup) :

wsl --export distro filename.tar 

Import a distro (Restore) :

wsl --import distro install_location filename.tar

List distros and version :

List available distros to install :

Set WSL default version to 2 :

wsl --set-default-version 2

Set WSL default version to 2 :

wsl --set-default-version 2

Appendix — Sources and References

You can find here all the references that we used to write this article and the presentation :

https://docs.microsoft.com/en-us/windows/wsl/about

https://www.whitewaterfoundry.com/what-is-wsl

https://docs.microsoft.com/en-us/windows/wsl/install

https://docs.microsoft.com/en-us/windows/wsl/compare-versions

https://docs.microsoft.com/en-us/virtualization/api/hypervisor-platform/hypervisor-platform

https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux

https://www.howtogeek.com/426749/how-to-access-your-linux-wsl-files-in-windows-10/

https://www.it-connect.fr/wsl-comment-acceder-aux-fichiers-linux-depuis-windows-10/

https://www.kali.org/docs/wsl/win-kex/

Official GitHub repositories of the WSL projects :

WSL 1 (only for issue reporting) : https://github.com/microsoft/WSL

WSL 2 : https://github.com/microsoft/WSL2-Linux-Kernel

WSLg : https://github.com/microsoft/wslg

Lists of different compatibles softwares that work or not on WSL :

https://github.com/ethanhs/WSL-Programs

https://github.com/davatron5000/can-i-subsystem-it


Updated : 03/03/2022, Authors : Xen0rInspire, AnthonyF

Windows Subsystem for Linux (known as WSL)

This article has been written to complete the presentation and to deal in depth with the subject in detail.

WSL-Logo


  • Windows Subsystem for Linux (known as WSL)
    • What is the WSL and how it works ?
      • WSL is not a virtual machine !
      • WSL 1 vs WSL 2
      • The limits of WSL
    • Install WSL on Windows
      • Requirements
      • Download WSL
      • WSL distributions available at this time
    • Some useful WSL features
      • Mount an EXT file system on Windows (or other filesystem)
        • Mount an entire disk
        • Mount a partition from a disk
      • Add a desktop environment to your WSL
      • Some useful commands
    • Appendix — Sources and References

What is the WSL and how it works ?

The WSL for Windows Subsystem for Linux is a compatibility layer developed by Microsoft for running Linux binaries natively (ELF format) in a console environment on Windows 10 and Windows 11. This ingenious technology provides a Linux-compatible kernel interface and can interact directly with the Windows operating system with performances very close to a native Linux distribution. Moreover, it allows a user to choose a Linux distribution to install directly from the Microsoft Store (more info in below).

WSL is not a virtual machine !

Oh my god, I have heard so many times «WSL ? Yeah it’s like a virtual machine on your Windows» but no. It’s not as simple…
Although WSL uses virtualization technologies in some cases (more information in the next section), it does not work in a partitioned environment on your Windows system like a classic virtual machine on VMware or VirtualBox.

It’s important to know that all your storage devices that have an assigned letter by the Windows operating system (for example C:, D:, E:, …) are reachable in the /mnt directory. As an example, the famous C: partition of your Windows system is in /mnt/c and this is same thing for the others.

The NTFS and FAT partitions are directly mounted on the /mnt directory but it’s necessary to execute some commands to mount EXT4 ones (more information below).

Therefore, the WSL can access to your storage devices and it may have some consequences. Indeed, if you try to delete your Document folder for example, you will notice that it will be permanently removed from your computer. You can also create a new file with a text editor like vim or nano and be able to edit it with a Windows text editor (like notepad for example).

For the curious ones, we tried to do a rm -fr /mnt/c command with the WSL and the root privileges, to delete all the files in the C: directory. It seems that the WSL can only delete the files in the user folder in C:Users<name_of-the_user>. However, the windows system becomes quite unstable and slow.

WSL 1 vs WSL 2

The first thing to know is that WSL 2 isn’t only an simple evolution of the first version. The entire architecture has been redesigned and the operation is not the same.

First of all, let’s see how the architecture of WSL 1 looks like :

bg fit right

As you can see, WSL 1 is a simple layer between the linux distribution and the Windows kernel. The Linux syscalls are converted into Windows syscalls with bridges.

Actually, we can compare the WSL 1 with the well known Wine software that permits to execute Windows applications on Linux systems by converting Windows API calls on Linux API calls.

However, we can notice in the architecture of the WSL 2 that there is a whole Linux kernel virtualized :

bg fit right

The Virtual Machine Platform is a less powerful version of Hyper-V that still enables a hypervisor. Note that Microsoft if very vague on what the actual differences are between the Virtual Machine Platform and Hyper-V.

As we can see, the WSL 2 is based on a Linux kernel virtualized with the Virtual Machine Platform. This version has an increased I/O performance and a full system call compatibility. Indeed, initial versions of WSL 2 run up to 20 times faster compared to WSL 1 when unpacking a zipped tar archive, and around 2-5 times faster when using file intensive operations like git clone, apt upgrade, etc. Besides, unlike the WSL 1, it supports 32-bits applications.

However, if you are using files stored in storage devices on /mnt in your Windows file system, the WSL 1 will be faster than then second version. It has a lighter architecture and it does not need a hypervisor layer. But if you are using files stored in the root directory ( / ), WSL 2 will be even faster because file operations are moved on a VHD (Virtual Hardware Disk). You can access to this virtual disk with the windows explorer if you enter the command explorer.exe in your home directory or directly with the windows explorer by specifying the path \wsl$<name_of_the_distro>.

The limits of WSL

First of all, hardware acceleration isn’t supported so the graphic performances are quite poor and well known graphic standards, like the CUDA technology, are not implemented. Regarding the audio, it’s not natively supported but it can be remedied by installing a network-capable sound server like PulseAudio.

Currently, a better integrated desktop oriented WSL is still in development and its named WSLg. At this time, according to Microsoft, it only works on Windows 11 (build 22000+) or Windows 11 Insider Preview (builds 21362+). If you want more information, check the references section below.

Moreover, networking on WSL isn’t fully reliable. WSL allows you to communicate with a network, but it may be less efficient because it needs to pass through a few layers in order to do work. This implies a considerable loss of performance when executing processes that operate at a low network level.

As Microsoft says in its documentation, WSL has been designed for the developers. So, if you want to host a Web service or sharing storages locally for example, it’s better and more convenient to use a full Linux virtual machine in a classic hypervisor.

Install WSL on Windows

Requirements

First, you must be running Windows 10 64bits version 2004 or higher (Build 19041 or higher) or Windows 11 64bits.

To check your Windows version and build number, select Windows logo key + R, type winver and select OK.

If you have an older version, update your system with Windows Update.

You need to have a Windows functionality installed before using WSL. To install it, select Windows Logo key, type Windows Features and enter. This window should open :

bg fit right

Make sure to install Virtual Machine Platform. After this, you must restart your Windows system.

Or you can type this command in a prompt with administrator privileges to install it :

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Make sure to restart the system afterwards.

Download WSL

You can install the WSL feature with the same procedure described before by selecting the Windows Subsystem for Linux or with the following Powershell command as an administrator :

According to Microsoft, this command will activates the required optional components, downloads the latest Linux kernel, sets WSL 2 as default and installs a Linux distribution for you (Ubuntu by default)

or

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

This command will only install WSL.

WSL distributions available at this time

At this moment (when this article was written), you can install these distributions :

  • Ubuntu
  • Debian
  • Kali Linux
  • openSUSE
  • Alpine Linux
  • Pengwin (more information about it in Presentation.md)
  • Fedora Remix

You can install the distribution you want directly on the Windows Store !

Or you can install it via a console with the command :

wsl --install --distribution DistribName

Some useful WSL features

Mount an EXT file system on Windows (or other filesystem)

First, you must be running Windows 11 Build 22000 or higher and have admin privileges. This procedure only works on the WSL 2 and it is non-peristent, the filesystem will be unmounted after WSL shutdown.

Mount an entire disk

To mount an entire disk, we first need to identify the physical disk.

In a windows console :

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

This command should return a list of physical drives in this format :

\.PHYSICALDRIVEX X : number of the physical drive

Then we can mount it with the command :

wsl --mount \.PHYSICALDRIVEX

Default filesystem is ext4, we can specify the type of filesystem with the argument t. We can list the available filesystem with cat /proc/filesystems

The mounted disk should be now accessible via the Explorer in \wsl$DistromntPHYSICALDRIVEX

Or directly in the distro used : /mnt/PHYSICALDRIVEX

Mount a partition from a disk

To mount only a partition from a disk, we first need to identify the physical disk as before.
In a windows console :

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

Then mount the physcial disk :

wsl --mount \.PHYSICALDRIVEX

Now we are going to list the available partitions with :

It should return something like this :

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdb      8:16   0    1G  0 disk
├─sdb2   8:18   0   50M  0 part
├─sdb3   8:19   0  873M  0 part
└─sdb1   8:17   0  100M  0 part
sdc      8:32   0  256G  0 disk /
sda      8:0    0  256G  0 disk

We can now mount the partition we want by specifying only the number of the partition. For instance if it’s sdb1, we specify 1 :

wsl --mount \.PHYSICALDRIVEX --partition 1 --type <Filesystem>

Add a desktop environment to your WSL

This procedure only works on the WSL 2.
WSL 2 allows us to run linux applications with GUI by default.

You could run a complete desktop environnement but we need a X server.
There are plenty of tutos about that.

X11 server with Xfce

If you are in the kali team, they have built a nice tool called Win-KeX which provides a Kali Desktop Experience for WSL 2.

In the kali console you can install the tool with :

sudo apt install -y kali-win-kex

To launch it in Window mode with sound support :

To launch it in Enhanced Session Mode :

Some useful commands

Update WSL :

Stop WSL :

Export a distro (Backup) :

wsl --export distro filename.tar 

Import a distro (Restore) :

wsl --import distro install_location filename.tar

List distros and version :

List available distros to install :

Set WSL default version to 2 :

wsl --set-default-version 2

Set WSL default version to 2 :

wsl --set-default-version 2

Appendix — Sources and References

You can find here all the references that we used to write this article and the presentation :

https://docs.microsoft.com/en-us/windows/wsl/about

https://www.whitewaterfoundry.com/what-is-wsl

https://docs.microsoft.com/en-us/windows/wsl/install

https://docs.microsoft.com/en-us/windows/wsl/compare-versions

https://docs.microsoft.com/en-us/virtualization/api/hypervisor-platform/hypervisor-platform

https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux

https://www.howtogeek.com/426749/how-to-access-your-linux-wsl-files-in-windows-10/

https://www.it-connect.fr/wsl-comment-acceder-aux-fichiers-linux-depuis-windows-10/

https://www.kali.org/docs/wsl/win-kex/

Official GitHub repositories of the WSL projects :

WSL 1 (only for issue reporting) : https://github.com/microsoft/WSL

WSL 2 : https://github.com/microsoft/WSL2-Linux-Kernel

WSLg : https://github.com/microsoft/wslg

Lists of different compatibles softwares that work or not on WSL :

https://github.com/ethanhs/WSL-Programs

https://github.com/davatron5000/can-i-subsystem-it


Updated : 03/03/2022, Authors : Xen0rInspire, AnthonyF

Понравилась статья? Поделить с друзьями:
  • Wsl 2 windows 10 docker install
  • Wsl 2 installation is incomplete windows 10 ошибка
  • Wsearch что это за служба windows 10
  • Wsd порт принтера как настроить windows 10
  • Wscsvc что это за служба windows 10