null

Bash on Ubuntu on Windows. А оно точно работает?

После выхода очередного обновления Windows 10 где-то в 2016 году я очень порадовался анонсу подсистемы Linux для Windows 10. Обозвали они её очень прелестно: Bash on Ubuntu on Windows.

Сразу после анонса в моей голове возникла мысль:"Неужели теперь можно просто поставить галочку в Windows Features и пользоваться всеми удобностями Линукса без использования виртуалок и сторонних хостов?". Как оказалось, нет. 

В том виде, в котором находилась система WSL в 2016 году, пользоваться её было возможно, но крайне сложно. Годилась она разве что для запуска grep, sed, vim и прочих "обычных" утилит для работы с тектом. При первом дотрагивании до всего, что касалось proc или сетевой подсистемы, пользователя ждал неизбежный fail. Было достаточно больно пользоваться непонятно как еле работающей системой, и я довольно быстро на неё забил. Но индусы разработчики Microsoft не дремлят. 

После нескольних крупный апдейтов (в моем случае последним был Creators Update) WSL стал куда более полным. Поднятие сетевых сервисов теперь стало вполне возможным, а некоторые умельцы даже смогли поднять графическую подсистему (в данный момент только Unity и Xfce, подробности в гугле).

Из моего личного опыта можно твёрдо сказать, что на данном этапе с большей частью повседневных задач, таких как тестирование различных web-серверов, тестирование конфигураций сервисов, анализ текста базовыми утилитами и т.д., WSL справляется. 

Но всем интереснее узнать что НЕ работает. Итак, поехали:

1) С сетевой подсистемой до сих пор всё не очень хорошо.

Будте готовы, что, например, большинство утилит из набора net-tools просто не будут работать. 

2) Управление системой почти невозможно.

Хоть WSL и пытается притворяться, что, например, сетевые интерфейсы принадлежат именно ей, но управлять ими просто не выйдет. Какой-нибудь ifconfig eth1 down радостно отработает и вернёт 0, но по факту изменений не последует. И такие вещи встречаются всюду. 

3) Некоторое количество программ просто отказываются работать по очень разным причинам. Подробности можно узнать на официальном баг-трекере Microsoft: https://github.com/Microsoft/BashOnWindows

4) Динамические библиотеки не работают. Вообще.

5) Из окружения Bash всё таки не получится запускать Windows приложения, хоть Microsoft и продолжает утверждать, что WSL и Windows это одна и та же система, и там всё работает вместе и дружно.

6) ??? Проблемы в внезапности могут возникнуть откуда угодно.

Итоги.

Всё таки WSL не является полноценным Линуксом. Лично для меня он остаётся подсистемой, которая может предложить только удобности в виде Bash, утилит для работы текста и, иногда, тестовым стендом для тестирования решений. Но последнее остаётся немного опасным: то, что не работает на WSL может быть исключительно проблемой WSL. Поэтому главное не пытаться начинать решать эту проблему.