WSL — различия между версиями

Материал из Русский WINE
Перейти к: навигация, поиск
(Установка)
 
(не показана одна промежуточная версия 2 участников)
Строка 1: Строка 1:
'''Windows Subsystem for Linux''' (WSL, подсистема Windows для приложений на базе Linux).
+
=Windows Subsystem for Linux=
 +
Windows Subsystem for Linux (WSL) - подсистема Windows для приложений на базе Linux.
  
Подсистему WSL без лишних громких слов поместили в код Windows 10 (билд № 14251) в конце января 2016 года. Несколько дней спустя Алекс Ионеску высказал предположение о том, что две новые подсистемы внутри файлов lxcore.sys и lxss.sys могут стать вспомогательным средством разработки приложений под Linux для Windows-программистов.
 
  
Главное предназначение подсистемы WSL состоит в том, чтобы эмулировать Linux (на начальном этапе - Ubuntu) в пользовательском режиме. В результате можно запускать нативную оболочку Bash для Ubuntu под операционной системой Windows. Подсистема WSL еще не готова к повсеместному использованию. Представитель компании Canonical сказал, что сейчас «она находится на ранней стадии это всего лишь бета-версия».
+
Подсистему WSL без лишних громких слов поместили в код Windows 10 (билд № 14251) в конце января 2016 года. Несколько дней спустя Алекс Ионеску высказал предположение о том, что две новые подсистемы внутри файлов lxcore.sys и lxss.sys могут стать вспомогательным средством разработки приложений под Linux для Windows-программистов. Участникам программы тестирования Windows Insider этот функционал стал доступен в Windows 10 Insider Preview Build 14316. Образ Linux был предоставлен партнером Microsoft компанией Canonical (разработчиком Ubuntu) и загружается из Windows Store.  
  
'''Это не Cygwin'''
 
  
Но это вовсе не разновидность среды Cygwin, т.к. чтобы Linux-приложения могли нативно работать под Windows, их код специально нужно перекомпилировать. А в WSL можно запускать "родные" ELF-бинарниках Ubuntu, с идентичной контрольной суммой, которые запускаются прямо из-под Windows.
+
Главное предназначение подсистемы WSL состоит в том, чтобы эмулировать Linux (на начальном этапе - Ubuntu) в пользовательском режиме. В результате можно запускать нативную оболочку Bash для Ubuntu под операционной системой Windows. Подсистема WSL еще не готова к повсеместному использованию. Представитель компании Canonical сказал, что сейчас «она находится на ранней стадии — это всего лишь бета-версия».  
  
'''Это не coLinux, это "WINE наоборот"'''
+
==Принцип реализации==
Запуск исполняемых файлов Linux реализован путём включения специальной прослойки (код подсистемы закрыт), которая в режиме реального времени транслирует системные вызовы Linux в системные вызовы Windows. Концептуально, такой подход является  противоположностью среды WINE.  
+
[[Файл:Wsl-2.png|right]]
 +
Это не разновидность среды [[Cygwin]], т.к. чтобы Linux-приложения Cygwin могли нативно работать под Windows, их код специально нужно перекомпилировать. А в WSL можно запускать "родные" ELF-бинарниках Ubuntu, с идентичной контрольной суммой, которые запускаются прямо из-под Windows. Для упрощения установки для пользователей Windows подготовлена специальная сборка Ubuntu, содержащая образ корневой системы с набором базовых приложений.
  
  
'''Функциональность'''
+
В WSL удалось полностью избавиться от использования ядра Linux, по сути пользовательское окружение Ubuntu работает поверх ядра Windows. Запуск исполняемых файлов Linux реализован путём включения специальной прослойки (код подсистемы закрыт), которая в режиме реального времени транслирует системные вызовы Linux в системные вызовы Windows. Концептуально, такой подход чем-то вроде среды WINE (только транслирует не WinAPI -> LinuxAPI, а наоборот LinuxAPI -> WinAPI).
  
Пользователю доступны apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, redis, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch и большинство бинарных пакетов из архива Ubuntu, содержащих консольные и серверные приложения. При этом некоторые приложения пока остаются неработоспособны, например, из-за неполной эмуляции терминала VT100 невозможно использовать byobu, screen и tmux. Также ничего не говорится о реализации запуска графических приложений.  
+
==Функциональность==
 +
Пользователю доступны apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, redis, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch и большинство бинарных пакетов из архива Ubuntu, содержащих консольные и серверные приложения. При этом некоторые приложения пока остаются неработоспособны, например, из-за неполной эмуляции терминала VT100 невозможно использовать byobu, screen и tmux.
  
  
'''Производительность'''
+
Приложения Ubuntu выполняются в отдельном представлении файловой системы, повторяющей организацию файловой иерархии в Linux. Файловые системы Windows доступны на запись в форме разделов, примонтированных в директории /mnt. Например, директория "C:\Users\Kirkland\Downloads" доступна как "/mnt/c/Users/Kirkland/Downloads". А для Windows-приложений корневая ФС Ubuntu видна как "C:\Users\Kirkland\AppData\Local\Lxss\rootfs\". Для установки дополнительных пакетов и обновления системы применяется инструментарий apt с загрузкой штатных пакетов и обновлений из репозиториев Ubuntu.
  
Утилита sysbench демонстрирует практически эквивалентные показатели работы процессора, оперативки и операций ввода-вывода». Система прошла подавляющее большинство LTP-тестов на производительность и работает хорошо. Но шероховатости все равно есть, особенно в работе с терминалами tty и vt100.
 
  
 +
В WSL подготовлена новая инфраструктура ядра Windows, которая предоставляет слой совместимости с Linux syscall API и специальный загрузчик, что позволяет напрямую запускать уже поставляемые в Ubuntu немодифицированные исполняемые файлы, так же как запускаются обычные программы для Windows. Для WSL в ядре Windows была специально реализована поддержка fork() и некоторых других специфичных системных вызовов POSIX и Linux, что позволило добиться реализации, более эффективной, чем при использовании эмуляции.
  
'''Исторические корни'''
 
  
Идея уходит корнями в подсистему POSIX операционной системы Windows NT. NT Posix была задумана для того, чтобы запускать нативные
+
Система может запускать серверные приложения (поддержка графических приложений не планируется), но рассчитана скорее на их тестирование, чем на развёртывание замены Linux-серверов для промышленного применения. Однако утилита sysbench демонстрирует практически эквивалентные показатели работы процессора, оперативки и операций ввода-вывода. Система прошла подавляющее большинство LTP-тестов на производительность и работает хорошо. Проект нацелен только на предоставление инструментария командной строки для разработчиков.  
бинарные коды для Unix внутри Windows NT.
+
  
 +
==Установка==
 +
[[Файл:Windows-subsystem-bash-linux-beta.jpg|right]]
 +
По умолчанию подсистемы WSL в Windows нет. Для того чтобы ее установить, необходимо найти «Windows Features», выбрать пункт «Turn Windows features on or off» и включить «Windows Subsystem for Linux (Beta)». После этого нужно открыть Microsoft Store и установить образ Ubuntu.
  
'''Установка'''
+
==Исторические корни==
 +
Идея уходит корнями в подсистему POSIX операционной системы Windows NT. NT Posix была задумана для того, чтобы запускать нативные бинарные коды для Unix внутри Windows NT. WSL не основывается на ранее доступной подсистеме POSIX (SUA), которая в NT 3.5.1 содержала лишь минимальный набор системных вызовов и позднее была заменена на систему Services for Unix (SFU), основанную на наработках Interix.
  
Для упрощения установки для пользователей Windows подготовлена специальная сборка Ubuntu, содержащая образ корневой системы с набором базовых приложений. Пакет будет доступен для установки из каталога Windows Store. Установив данный пакет пользователь Windows 10 сможет через меню Start вызвать командную оболочку cmd.exe, запустить в ней bash и получить штатный интерфейс командной строки Ubuntu.
 
  
 +
WSL является полностью новой реализацией и создавалась как проект независимый от конкретных дистрибутивов Linux. Ubuntu выбран для поставки первой версии как наиболее популярный дистрибутив в среде разработчиков, нет существенных технических причин (кроме полной и точной реализации системных вызовов), которые помешали бы поддержке пользовательских окружений других дистрибутивов в будущем.
  
Источники
+
==Источники==
 
*[http://www.pcweek.ru/pc/article/detail.php?ID=184453 Ubuntu (но не Linux) под Windows — как это работает]
 
*[http://www.pcweek.ru/pc/article/detail.php?ID=184453 Ubuntu (но не Linux) под Windows — как это работает]
*[https://www.opennet.ru/opennews/art.shtml?num=44141 В Windows обеспечена поддержка запуска исполняемых файлов Linux]
+
*[http://www.opennet.ru/opennews/art.shtml?num=44141 В Windows обеспечена поддержка запуска исполняемых файлов Linux]
 
+
*[http://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-linux-overview/ Windows Subsystem for Linux Overview]
{{ReactOS}}
+
{{Microsoft}}

Текущая версия на 19:49, 1 июня 2020

Windows Subsystem for Linux

Windows Subsystem for Linux (WSL) - подсистема Windows для приложений на базе Linux.


Подсистему WSL без лишних громких слов поместили в код Windows 10 (билд № 14251) в конце января 2016 года. Несколько дней спустя Алекс Ионеску высказал предположение о том, что две новые подсистемы внутри файлов lxcore.sys и lxss.sys могут стать вспомогательным средством разработки приложений под Linux для Windows-программистов. Участникам программы тестирования Windows Insider этот функционал стал доступен в Windows 10 Insider Preview Build 14316. Образ Linux был предоставлен партнером Microsoft — компанией Canonical (разработчиком Ubuntu) и загружается из Windows Store.


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

Принцип реализации

Wsl-2.png

Это не разновидность среды Cygwin, т.к. чтобы Linux-приложения Cygwin могли нативно работать под Windows, их код специально нужно перекомпилировать. А в WSL можно запускать "родные" ELF-бинарниках Ubuntu, с идентичной контрольной суммой, которые запускаются прямо из-под Windows. Для упрощения установки для пользователей Windows подготовлена специальная сборка Ubuntu, содержащая образ корневой системы с набором базовых приложений.


В WSL удалось полностью избавиться от использования ядра Linux, по сути пользовательское окружение Ubuntu работает поверх ядра Windows. Запуск исполняемых файлов Linux реализован путём включения специальной прослойки (код подсистемы закрыт), которая в режиме реального времени транслирует системные вызовы Linux в системные вызовы Windows. Концептуально, такой подход чем-то вроде среды WINE (только транслирует не WinAPI -> LinuxAPI, а наоборот LinuxAPI -> WinAPI).

Функциональность

Пользователю доступны apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, redis, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch и большинство бинарных пакетов из архива Ubuntu, содержащих консольные и серверные приложения. При этом некоторые приложения пока остаются неработоспособны, например, из-за неполной эмуляции терминала VT100 невозможно использовать byobu, screen и tmux.


Приложения Ubuntu выполняются в отдельном представлении файловой системы, повторяющей организацию файловой иерархии в Linux. Файловые системы Windows доступны на запись в форме разделов, примонтированных в директории /mnt. Например, директория "C:\Users\Kirkland\Downloads" доступна как "/mnt/c/Users/Kirkland/Downloads". А для Windows-приложений корневая ФС Ubuntu видна как "C:\Users\Kirkland\AppData\Local\Lxss\rootfs\". Для установки дополнительных пакетов и обновления системы применяется инструментарий apt с загрузкой штатных пакетов и обновлений из репозиториев Ubuntu.


В WSL подготовлена новая инфраструктура ядра Windows, которая предоставляет слой совместимости с Linux syscall API и специальный загрузчик, что позволяет напрямую запускать уже поставляемые в Ubuntu немодифицированные исполняемые файлы, так же как запускаются обычные программы для Windows. Для WSL в ядре Windows была специально реализована поддержка fork() и некоторых других специфичных системных вызовов POSIX и Linux, что позволило добиться реализации, более эффективной, чем при использовании эмуляции.


Система может запускать серверные приложения (поддержка графических приложений не планируется), но рассчитана скорее на их тестирование, чем на развёртывание замены Linux-серверов для промышленного применения. Однако утилита sysbench демонстрирует практически эквивалентные показатели работы процессора, оперативки и операций ввода-вывода. Система прошла подавляющее большинство LTP-тестов на производительность и работает хорошо. Проект нацелен только на предоставление инструментария командной строки для разработчиков.

Установка

Windows-subsystem-bash-linux-beta.jpg

По умолчанию подсистемы WSL в Windows нет. Для того чтобы ее установить, необходимо найти «Windows Features», выбрать пункт «Turn Windows features on or off» и включить «Windows Subsystem for Linux (Beta)». После этого нужно открыть Microsoft Store и установить образ Ubuntu.

Исторические корни

Идея уходит корнями в подсистему POSIX операционной системы Windows NT. NT Posix была задумана для того, чтобы запускать нативные бинарные коды для Unix внутри Windows NT. WSL не основывается на ранее доступной подсистеме POSIX (SUA), которая в NT 3.5.1 содержала лишь минимальный набор системных вызовов и позднее была заменена на систему Services for Unix (SFU), основанную на наработках Interix.


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

Источники

Microsoft
Search.png
Windows Research KernelWNT: правдивая история Windows NTRemote Desktop ProtocolXmingWindows Subsystem for Linux (WSL) Запуск DE и графического ПО в WSLCygwinPowerShell