Подсистема Windows для Linux

редактировать
Уровень совместимости для запуска двоичных исполняемых файлов Linux изначально в Windows

Подсистема Windows для Linux
Tux.svg
Bash, работающий в Windows 10 Bash работает в Windows 10
Другие именаWSL
Разработчик (и) Microsoft
Первоначальный выпуск2 августа 2016 г.; 4 года назад (02.08.2016)
Стабильный выпуск WSL 2/12 июня 2019 г.; 16 месяцев назад (12.06.2019)
Репозиторий github.com / Microsoft / WSL (только выпуски)
Операционная система Microsoft Windows
ПредшественникСлужбы Windows для UNIX
Тип Уровень совместимости, Виртуализация
Лицензия Подсистема: Собственное коммерческое программное обеспечение ;. Ядро Linux: GNU GPLv2 (только) с некоторым кодом в рамках совместимых вариантов GPL или разрешительных лицензий, таких как BSD, MIT
Веб-сайтблоги.msdn.microsoft.com / wsl / Измените это в Викиданных

Подсистема Windows для Linux (WSL ) - это уровень совместимости для работы Linux двоичные исполняемые файлы (в формате ELF ) изначально на Windows 10 и Windows Server 2019.

В мае 2019 года WSL 2 было объявлено о внесении важных изменений, таких как настоящее ядро ​​Linux с помощью подмножества функций Hyper-V. С июня 2019 года WSL 2 доступен клиентам Windows 10 в рамках программы Windows Insider, включая версию Home.

Содержание
  • 1 Обзор
  • 2 Введение и доступность
  • 3 Разработка
  • 4 Архитектура
    • 4.1 WSL 1
      • 4.1.1 Служба диспетчера LXSS
      • 4.1.2 wsl.exe
        • 4.1.2.1 Примеры
      • 4.1.3 Доступ к оборудованию и файловой системе
      • 4.1.4 Ограничения
      • 4.1.5 Тесты
    • 4.2 WSL 2
  • 5 Скриншоты
  • 6 Противоречие
  • 7 См. Также
  • 8 Ссылки
  • 9 Внешние ссылки
Обзор

Первый выпуск WSL предоставляет Linux -совместимый интерфейс ядра, разработанный Microsoft, не содержащий кода ядра Linux, который затем может запускать GNU пользовательское пространство поверх него, например, Ubuntu, openSUSE, SUSE Linux Enterprise Server, Debian и Kali Linux. Такое пользовательское пространство может содержать оболочку GNU Bash и командный язык с собственными инструментами командной строки GNU (sed, awk и т. Д.), Программированием- языковые интерпретаторы (Ruby, Python и т. д.) и даже графические приложения (с использованием сервера X11 на стороне хоста).

Архитектура была переработана в WSL 2, при этом ядро ​​Linux работало в облегченной среде виртуальной машины.

Введение и доступность

Когда было представлено Anniversary Update 2 августа 2016 года, был доступен только образ Ubuntu. В обновлении Fall Creators Update, выпущенном 17 октября 2017 г., процесс установки дистрибутивов Linux перенесен в Магазин Windows и представлены образы SUSE.

WSL доступен только в 64-битных версиях Windows 10, начиная с версии 1607. Он также доступен в Windows Server 2019.

Microsoft анонсировала WSL 2 6 мая 2019 г. который включает полностью новый бэкэнд на основе виртуальных машин (на основе подмножества функций Hyper-V) вместо предыдущего уровня адаптации системных вызовов, который планируется выпустить в рамках программы Windows Insider в июне 2019 года.

Разработка

Первый набег Microsoft на достижение Unix-подобной совместимости в Windows начался с подсистемы Microsoft POSIX, замененной Windows Services для UNIX через MKS / Interix, который в конечном итоге устарел с выпуском Windows 8.1. Технология, лежащая в основе подсистемы Windows для Linux, возникла в невыпущенном Project Astoria, который позволил некоторым приложениям Android работать в Windows 10 Mobile. Впервые он был доступен в Windows 10 Insider Preview build 14316.

Тогда как предыдущие проекты Microsoft и сторонний Cygwin были сосредоточены на создании собственных уникальных Unix-подобные среды, основанные на стандарте POSIX, WSL нацелен на совместимость с Linux. Вместо того, чтобы заключать неродные функции в системные вызовы Win32 , как это было в предыдущих системах, в первоначальном дизайне WSL (WSL 1) использовался исполнительный модуль ядра NT для обслуживания Linux. программы как специальные, изолированные минимальные процессы (известные как «пико-процессы»), прикрепленные к режиму ядра «провайдеры пико» как выделенный системный вызов и обработчики исключений, отличные от что из ванильного процесса NT, решив повторно использовать существующие реализации NT везде, где это возможно.

Хотя WSL (через этот первоначальный дизайн) был намного быстрее и, возможно, намного популярнее, чем его собратья из проектов UNIX-on-Windows, ядра Windows Инженеры столкнулись с трудностями при попытке повысить производительность WSL и совместимость с системными вызовами, пытаясь изменить существующее ядро ​​NT для распознавания и правильной работы с Linux API. На конференции Microsoft Ignite в 2018 году инженеры Microsoft представили общий обзор новой «облегченной» технологии Hyper-V VM для контейнеризации, где виртуализированное ядро ​​может напрямую использовать Примитивы NT на хосте. В 2019 году Microsoft анонсировала полностью переработанную архитектуру WSL (WSL 2) с использованием этой облегченной технологии виртуальных машин, в которой размещаются реальные (настроенные) образы ядра Linux, заявив о полной совместимости с системными вызовами.

Microsoft рассматривает WSL как «в первую очередь инструмент для разработчиков - особенно веб-разработчиков и тех, кто работает над проектами с открытым исходным кодом или с ними ». В сентябре 2018 года Microsoft заявила, что «WSL требует меньше ресурсов (ЦП, памяти и хранилища), чем полноценная виртуальная машина» (что до WSL было наиболее прямым способом запуска программного обеспечения Linux в среде Windows), при этом позволяя пользователям использовать приложения Windows и инструменты Linux для одного и того же набора файлов.

Архитектура

WSL 1

Служба диспетчера LXSS

Служба диспетчера LXSS - это служба отвечает за взаимодействие с подсистемой (через драйверы lxss.sysи lxcore.sys), и способ, которым Bash.exe (не путать с оболочками, предоставляемыми дистрибутивами Linux) запускает процессы Linux, а также обрабатывает системные вызовы Linux и двоичные блокировки во время их выполнения.

Все процессы Linux, запущенные определенным пользователем перейдите в «Экземпляр Linux» (обычно первым вызываемым процессом является init ). Как только все приложения закрываются, экземпляр закрывается.

wsl.exe

wsl
Разработчик (и) Microsoft
Первоначальный выпуск2 августа 2016 г.; 4 года назад (02.08.2016)
Операционная система Microsoft Windows
Тип Команда
Веб-сайтблоги.msdn.microsoft. com / wsl / Измените это в Викиданных

Команда wsl.exe используется для управления дистрибутивами в подсистеме Windows для Linux с помощью командной строки. Он может отображать доступные дистрибутивы, устанавливать дистрибутивы по умолчанию и удалять дистрибутивы. Эту команду также можно использовать для запуска двоичных файлов Linux из командной строки Windows или Windows PowerShell. wsl.exeзаменяет lxrun.exeкоторый устарел в Windows 10 1803 и более поздних версиях.

Примеры

Выполните команду uname в WSL с помощью PowerShell.

PS C: \ temp>wsl uname --all Linux WikiMachine 4.4.0-18362-Microsoft # 1-Microsoft Пн 18 марта 12:02:00 PST 2019 x86_64 x86_64 x86_64 GNU / Linux

Пример использования sudo из командной строки.

C: \ temp>wsl sudo apt-get update [sudo] пароль для имени пользователя: Hit: 1 https://archive.ubuntu.com/ubuntu xenial InRelease Get: 2 https://security.ubuntu.com/ ubuntu xenial-security InRelease [94,5 kB]

Доступ к оборудованию и файловой системе

В дизайне WSL 1 не было аппаратной эмуляции / виртуализации (в отличие от других проектов, таких как coLinux), и он напрямую использовал файловую систему хоста (через VolFSи DrvFS) и некоторые части оборудования, такие как сеть (например, веб-серверы, могут быть доступны через те же интерфейсы и IP-адреса, настроенные на хосте, и общие те же ограничения на использование портов, требующих административных разрешений, или портов, уже занятых другими приложениями), что гарантирует совместимость.

Существуют определенные местоположения (например, системные папки) и конфигурации, доступ / изменение которых ограничены, даже при запуске от имени root, с sudo из оболочки. Экземпляр с повышенными привилегиями должен быть запущен, чтобы заставить sudo предоставить реальные привилегии root и разрешить такой доступ.

Ограничения

WSL 1 не может запускать все программное обеспечение Linux, такие как 32-битные двоичные файлы или те, для которых требуются определенные службы ядра Linux, не реализованные в WSL. Из-за отсутствия какого-либо «настоящего» ядра Linux в WSL 1 модули ядра, такие как драйверы устройств, не могут быть запущены. Однако WSL 2 использует живые виртуализированные экземпляры ядра Linux.

Можно запускать некоторые графические (GUI) приложения (например, Mozilla Firefox ), установив сервер X11 в среде Windows (хост) (например, или Xming ), хотя и не без оговорок, таких как отсутствие поддержки звука (хотя это можно исправить, установив PulseAudio в Windows аналогично X11) или аппаратное ускорение ( что приводит к плохой графической производительности). Поддержка OpenCL и CUDA также не реализуется в настоящее время, хотя запланирована для будущих выпусков.

Microsoft заявила, что WSL был разработан для разработки приложений, а не для настольные компьютеры или производственные серверы, рекомендуется использование виртуальных машин (Hyper-V ), Kubernetes и Azure для этих целей.

Тесты

В тестах производительность WSL 1 часто близка к родному Linux Ubuntu, Debian, Intel Clear Linux или другим дистрибутивам Linux. В некоторых тестах ввод-вывод является узким местом для WSL. Microsoft утверждает, что переработанный бэкэнд WSL 2 предлагает 20-кратное увеличение скорости выполнения определенных операций по сравнению с WSL 1.

WSL 2

Версия 2 вносит изменения в архитектуру. Microsoft выбрала виртуализацию с помощью высоко оптимизированного подмножества функций Hyper-V, чтобы запустить ядро ​​и дистрибутивы (на основе ядра), обещая производительность, эквивалентную WSL 1. Для обратной совместимости разработчики не не нужно ничего менять в опубликованных дистрибутивах. Параметры WSL2 могут быть изменены с помощью глобальной конфигурации WSL, содержащейся в INI-файле с именем .wslconfigв папке профиля пользователя.

. Установка дистрибутива находится внутри ext4 -форматированная файловая система внутри виртуального диска, а файловая система хоста прозрачно доступна через протокол 9P, аналогично другим технологиям виртуальных машин, таким как QEMU. Для пользователей Microsoft обещала в 20 раз большую производительность чтения / записи WSL 1. В Windows для доступа к гостевым файлам Linux с префиксом пути UNC предоставляется IFS сетевой перенаправитель. \\ wsl $.

WSL 2 требует Windows 10 версии 1903 или выше со сборкой 18362 или выше для систем x64 и версии 2004 или выше со сборкой 19041 или выше для систем ARM64.

Снимки экрана
Controversy

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

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

«Цель движения за свободное программное обеспечение - освободить пользователей от отрицающих свободу проприетарных программ и систем, таких как Windows. Сделать несвободную систему, такую ​​как Windows, MacOS, iOS, ChromeOS или Android, более удобной - это шаг назад в кампании за свободу ».

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Викискладе есть носители, связанные с Подсистемой Windows для Linux.
Последняя правка сделана 2021-06-21 10:47:58
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте