Ubuntu в Windows: что, кому и зачем

Алексей Федорчук

Некогда для многих применителей Linux’а актуальной задачей было — наладить запуск отдельных Windows-приложений в своей операционке. Для удовлетворения этой потребности возник ряд проектов, начиная с Corel Office for Linux (да-да, некогда существовал специальный эмулятор для запуска в Linux’е текстового процессора WordPerfect, электронной таблицы QuattroPro и примкнувшей к ним Presentation) и заканчивая дожившими до наших дней Wine и CrossOver. Нередко с этой же целью использовались и виртуальные машины, сначала VMWare, а затем VirtualBox и другие. Существовали и решения обратной задачи, но цели их были ограничены.

И вот в преддверии великого первоапрельского праздника весь Инет облетела весть о встраивании в MS Windows 10 подсистемы запуска приложений Ubuntu — именно так можно было интерпретировать название статьи Microsoft and Canonical partner to bring Ubuntu to Windows 10. Резонные люди предположили, что авторы новости поспешили с праздничной шуткой. Однако последовавшие публикации показали, что дело это серьёзное. Или, по крайней мере, стремящееся выглядеть таковым. И в сети (в том числе её русскоязычном сегменте) начался ажиотаж, вполне вписывающийся в рубрику Скандалы, интриги, расследования.

Поскольку тема эта от меня была далека, я проглядел соответствующие новости по диагонали — и никаких поводов для ажиотажа не увидел. Да, внутри Windows (именно 10, как подчёркивается в источниках) можно будет запускать Bash, а в его среде — такие утилиты, как find, xargs, grep, sed и многие другие. Иными словами, то, что обычно объединяется понятием Linux-утилит (или классических UNIX-утилит в их GNU-реализации). Да, наряду с этим станут доступны gcc, perl, php, python и другие средства разработки, созданные в рамках различных открытых проектов (не обязательно GNU и FSF). Да, для управления этим хозяйством будет использоваться семейство утилит apt. И да, всё это очень блаародно, но…

…кое-что из этого появилось в составе подсистемы POSIX в Windows NT, начиная, если меня не подводят эклер со склерозом, с версии 3.5X (или только с NT 4?). А в развивавших её подсистемах SUA (Subsystem for UNIX-based Applications) и SFU (Microsoft Windows Services for UNIX) имел место быть уже совсем весь комплекс утилит CLI (кроме, разве что, apt‘а). Да и средства разработки типа gcc, не говоря уже о perl’е, php или python’е, в Windows существовали чуть ли не испокон веку.

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

Из приведённых материалов вырисовывается такая картина. Разработанная подсистема, именуемая WSL (Windows Subsystem for Linux), позволяет в эмуляторе терминала Windows (или как он там у них называется?) запустить Bash, а в его командной строке — весь комплекс Linux-утилит CLI и консольных средств разработки. Происходит это не путём портирования оных (то есть без перекомпиляции), и не в режиме эмуляции, а в нативном виде, посредством трансляции системных вызовов ядра Linux в таковые ядра Windows.

Теоретически субсистема WSL, которая будет штатно включена в Windows 10, посредством apt может наращиваться дополнительными пакетами из (родных?) репозиториев Ubuntu — утилитами CLI и серверными приложениями консольного режима. Поддержка приложений, работающих в режиме графическом, в настоящее время отсутствует и, судя по всему, даже не планируется.

Для всего этого хозяйства создан специальный блог, на котором, правда, пока нет ничего, кроме сообщения о его создании и «протокола о намерениях» —

…публиковать новости, статьи, обновления, информацию, ссылки и всевозможные материалы, связанные с инструментами командной строки Windows, включая PowerShell, Ubuntu’уевского Bash в Windows и собственно консоли.

В указанных выше материалах проводятся аналогии с Wine, в которой решается обратная задача (трансляция системных вызовов Windows в Linux), и с Nexenta OS, в которой пользовательское окружение Ubuntu работает на ядре OpenSolaris. За Wine ничего не скажу, так как дела с ней практически не имел (разве что лет 15 назад запускал в ней Солитёра).

А вот аналогия с Nexenta мне кажется не правомерной. Ибо эта система представляет собой просто портирование инфраструктуры Debian/Ubuntu на ядро OpenSolaris. И в своё время, когда она имела две линии развития, десктопную и серверную, содержала не только консольные утилиты, но и перекомпилированные Иксы, рабочие среды и приложения графического режима, и внешне была неотличима от Linux’а. Кстати, десктопная линия прекратила своё развитие ещё в прошлом десятилетии ввид невостребованности. Тогда как линия серверная (ныне именуется NexentaStor), вполне успешно применяется во всякого рода NAS’ах.

Больше сходства WSL, как мне кажется, обнаруживает с так называемым режимом совместимости с Linux во FreeBSD (Linux Binary Compatibility). Он позволяет запускать нативные Linux-приложения без всякой перекомпиляции и эмуляции, за счёт трансляции системных вызовов ядра Linux в таковые ядра FreeBSD. Вероятно, технически задача, стоящая перед разработчиками WSL, сложнее — уж больно разные ядра у Linux и Windows. Но разным оказывается и результат: в режиме совместимости FreeBSD запускаются не только консольные утилиты, но и весьма сложные программы графического режима.

Собственно, режим совместимости во FreeBSD и был придуман для запуска специфических для Linux программ, которые некогда портировать было или невозможно, или очень сложно. В частности, именно таким образом в прежние времена во FreeBSD запускались и StarOffice с Netscape (предтечи AOo с LOo и Firefox’а, соответственно), и медиапроигрыватель RealPlayer, и Adobe Acrobat, и уже не помню что. В WSL же, как отмечено выше, о графических приложениях даже и речи не идёт.

Субсистема WLS позиционируется как среда для Linux-разработчиков, работающих в Windows. Или для Windows-разработчиков, желающих разрабатывать приложения для Linux. В первом случае, вероятно, предполагается, что она будет альтернативой массовой миграции Linux-разработчиков на MacOS X (с соответствующим железом, разумеется) как платформу для своей профессиональной жизнедеятельности. Однако MacOS X, насколько я слышал, предлагает не только командную строку, а действительно удобную среду разработки — достаточно вспомнить многочисленных поклонников текстового редактора Sublime Text (кстати, не свободного и в общем случае вовсе не бесплатного) даже в его Linux-инкарнации. Да и слухи о массовости такой миграции сильно преувеличены. А у нас на Руси, после осени 2014 года, просто потеряли все основания.

Второй же случай представляется мне утопией: как-то с трудом верится, что матёрые Windows-разработчики все, как один человек, дружно бросят свои уютные и привычные IDE, занявшись кодированием приложений под Linux в Vim или Emacs. А если и займутся этим делом, и займутся успешно — не забросят ли они Windows-разработку вообще?

Более реально, что WSL окажется неплохим подспорьем для администраторов Unix-серверов, вынужденных делать это с Windows-машин. Например, мой старый товарищ Игорь Борейко, лучший из всех админов, которых я когда-либо знал, в силу ряда причин, не имеющих отношения к личным предпочтениям, бывало,оказывался в такой ситуации. И тогда он первым делом устанавливал что-нибудь типа PowerShell’а или SUA/SFU, ибо без этого чувствовал себя очень некомфортно. Ныне Игорь, увы, пребывает у верхних людей. Но будь он здесь — такому инструменту «из коробки», как WSL, порадовался бы. А нам остаётся порадоваться за всех, кто продолжает (или вынужден продолжать) его дело…

Потому что всем обычным применителям Linux’а, использующим эту ОС в целях мирных, не админских и не программерских, от этого WSL, скорее всего, будет ни холодно, ни жарко. Разве что можно отметить: внимание почтеннейшей публики в очередной раз было привлечено к Linux вообще и Ubuntu в частности. Что тоже не… плохо, как сказал однажды Гай Юлий Цезарь, бросив камень в собаку, а попав в тёщу.

Правда, скорее, основная цель всей PR-акции, сопряжённой с WSL, была как раз противоположной — лишний раз привлечь внимание к Windows, не блестяще претворённой в её последних версиях. И отнюдь не победно шествующей по миру со своими Windo-фонами.

А никакого полярного зверя ни для Linux’а, ни для Windows’а из всего произошедшего накануне праздника не последует: поговорят и забудут. Хотя — кто знает? Нельзя исключить, что в деле популяризации Ubuntu (а косвенно и Linux’а) эта штука WSL (и сопряжённый с ней ажиотаж) окажется посильней, чем Фауст Гёте бесплатная рассылка компактов с дистрибутивом.

В заключение хочу выразить признательность Станиславу Шрамко aka Stanis и участникам соответствующего обсуждения на форуме Matuntu: благодаря им я заинтересовался этой темой и даже вспомнил некоторые слова про Windows. Даже не обсценные, а те, которых никогда не знал.

Ubuntu в Windows: что, кому и зачем: 6 комментариев

  1. Да, ты прав, Алексей. Консольные posix-утилиты для нас, старых админов, и в Windows представляют интерес. Потому как в «чуждой» среде ты ни grep, ни find, ни, тем более, vim не найдёшь. А иногда: хотелось бы. Как ни странно: часто в интересах той же win-системы. Это всё было и без реверансов MS (cygwin-то здравствует). А учитывая заявленное ограничение WSL (только 10-ка), интерес ещё более падает: после 60-ти очередное детище от MS вызывает болезненную неприязнь. Так что… так себе новость.

  2. Чисто по Владимиру Асмолову получается:

    Очень ему хочется
    Хоть разок мелькнуть
    В «До и после полночи»
    Рядом с кем-нибудь,
    Съездить в Ригу с Лаймою
    К Раймонду на ленч —
    Вобщем как-нибудь внимание
    К себе привлечь.

    Источник: http://www.russhanson.org/text/asmolov/devicit_obsheniya.html

  3. Microsoft все больше напоминает царя Мидаса из сказки Родари: все, к чему он прикасался, превращалось в навоз…

  4. Поздравляю Вас с прошедшим Днем геолога!

  5. К чему столько слов? Ведь и так ясно что остальное дребедень..

  6. Если рассматривать эту новость не как первую, а как третью, то все встает на свои места.
    1. MS портирует MS SQL на Linux.
    2. MS объявляет MS Server EndOfLife и о переходе на Ubuntu server.
    3. MS дает своим админам инструментарий для работы с Ubuntu server.
    Все более чем логично.
    Т.е. виндакпец пришел со стороны облаков/сервером. Ну и слава богу. :-)

    Господин барон вас с утра ожидает. Он в своем кабинете работает, заперся и спрашивает: Томас, говорит, не приехал ли господин пастор. Я говорю — «нет еще». Он говорит — «Ну и слава богу». Очень вас ждет.

Добавить комментарий