Никогда прежде корпорация Microsoft не обращала столь пристального внимания на Linux, как в последние полгода. Конкретно сборка Microsoft Windows 10 Build 14316 для разработчиков (developer release) совместно с Canonical (!) включает подсистему Linux. Это не эмулятор и не виртуальная машина, а полноценный терминал Linux, работающий внутри Windows 10!

 

Как это понимать?

30 марта 2016 года на конференции Build для разработчиков Microsoft объявила о начале поддержки командного интерпретатора bash в Windows 10. Дастин Киркленд (Dustin Kirkland) из команды разработчиков Ubuntu в своем блоге раскрыл некоторые подробности этого знакового события. Вкратце работа линуксовых приложений организуется без использования контейнеров виртуализации, отдельной пересборки утилит и даже без использования ядра Linux — родные исполняемые файлы Linux запускаются благодаря специальной прослойке, на лету транслирующей системные вызовы Linux в системные вызовы Windows. По сути, реализован обратный аналог системы Wine, получивший название Windows Subsystem for Linux (далее — WSL) и якобы практически не влияющий на производительность выполняемых приложений Linux.

Установка этого чуда — не самая тривиальная задача. Для начала нужно установить сборку Windows 10 14316 — экспериментальную версию Windows 10 для разработчиков и участников программы Windows Insider. Установить сборку можно, обновившись до нее из самой Windows. При этом нужно быть участником программы Windows Insider и не забыть включить в настройках «десятки» получение экспериментальных сборок. Также есть вариант скачать готовый ISO-образ c торрентов. Этот вариант на первый взгляд выглядит незаконным, однако это не так. Экспериментальные сборки Windows 10 распространяются бесплатно для всех (прямо как Linux!).

INFO


Важно! WSL устанавливается и работает только в 64-битных версиях Windows.

Летом Microsoft обещает выпустить большое обновление для Windows 10 всех версий, которое по умолчанию будет включать WSL. После установки Windows 10 Build 14316 необходимо установить специальный образ Ubuntu, доступный из Microsoft Store. Установив данный пакет, пользователь Windows 10 сможет через меню «Пуск» вызвать командную оболочку cmd.exe, запустить в ней bash и получить штатный интерфейс командной строки Ubuntu. Пользователю доступны 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. Код прослойки пока остается закрытым (имеется в виду именно код прослойки, а не код Ubuntu, конечно).

WSL создавалась как проект, независимый от конкретных дистрибутивов Linux. Ubuntu выбран для поставки в первой версии как наиболее популярный дистрибутив в среде разработчиков, и нет существенных технических причин (кроме полной и точной реализации системных вызовов), которые помешали бы поддержке пользовательских окружений других дистрибутивов в будущем, утверждают в Microsoft. Для WSL в ядре Windows была специально реализована поддержка fork() и некоторых других специфичных системных вызовов POSIX и Linux, что позволило добиться реализации более эффективной, чем при использовании эмуляции. Также в WSL удалось полностью избавиться от использования ядра Linux: по сути, пользовательское окружение Ubuntu работает поверх ядра Windows, так же как в Nexenta OS пользовательское окружение Ubuntu работает поверх ядра OpenSolaris.

WSL не базируются на ранее доступной подсистеме POSIX (SUA), которая в NT 3.5.1 содержала лишь минимальный набор системных вызовов и позднее была заменена на систему Services for UNIX (SFU), основанную на наработках Interix. WSL является полностью новой реализацией, не требующей перекомпиляции программ или сборки специальных дистрибутивов. В WSL подготовлена новая инфраструктура ядра Windows, которая предоставляет слой совместимости с Linux syscall API и специальный загрузчик, что позволяет напрямую запускать уже поставляемые в Ubuntu немодифицированные исполняемые файлы, так же как запускаются обычные программы для Windows. По сути, речь идет о новом поколении интеграции различных ОС друг с другом.

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

Ubuntu Bash в Windows 10 во всей красе
Ubuntu Bash в Windows 10 во всей красе
 

Немного об установке

Автор статьи устанавливал WSL в несколько этапов: вначале установленная на его ноутбуке Dell Inspiron «семерка» была обновлена до Windows 10. Это заняло около семи часов (не считая времени на загрузку образа с сервера Microsoft). После чего начался увлекательный процесс установки последней тестовой сборки Windows 10 Build 14316.

Дело в том, что автор никогда не был бета-тестером Windows 10 и из-за этого не мог участвовать в программе Windows Insider. Недолго думая, зарегистрировавшись на сайте для бета-тестеров, он попробовал обновиться. Не тут-то было! Система просто не видела того, что он участвует в тестировании. К тому же ни одно обновление Windows 10 не устанавливалось. После целого дня мучений было принято решение скачать и установить образ тестовой версии «десятки» с нуля. Но и тут ждал неприятный сюрприз: корпорация Microsoft распространяет образы своих экспериментальных сборок в виде не обычных ISO-файлов, а файлов нового формата, созданного самой же Microsoft, — ESD (Electronic Software Distribution). Название говорит само за себя. После скачивания файлов данного типа их необходимо конвертировать в более привычный формат ISO. Для этого Microsoft выпустила специальную утилиту, которая называется ESD Decrypter. Подробнее об этом интересном процессе можешь почитать тут.

Спустя два часа после начала конвертирования ESD-файла ISO-образ был успешно создан и записан с помощью утилиты WinSetupFromUSB на флешку. Установка прошла без проблем, и наконец у автора была Windows 10 Build 14316.

INFO


Если хочешь, чтобы WSL заработал, необходимо установить английский языковой пакет для системы, а также выбрать английский в качестве языка по умолчанию. Иначе WSL установится, но не запустится!
Скачивание Ubuntu из Windows Store
Скачивание Ubuntu из Windows Store

Далее активируешь доступную для участников Windows Insider функцию установки расширенных обновлений System Settings → Advanced Windows Update.

Включение Windows Insider
Включение Windows Insider

Переводишь систему на максимальный уровень оперативности доставки новых обновлений (the fast ring), переместив ползунок в крайне правое положение.

Нам нужна только свежатинка!
Нам нужна только свежатинка!

Включаешь режим разработчика (developer mode).

Теперь мы разработчики
Теперь мы разработчики

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

Установка обновлений займет много времени
Установка обновлений займет много времени

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


1 комментарий

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Цифровой паноптикон. Настоящее и будущее тотальной слежки за пользователями

Даже если ты тщательно заботишься о защите своих данных, это не даст тебе желаемой приватн…