Это Build 2016, и мы можем начать спорить о главном объявлении, но возможность запускать двоичные файлы Linux под Windows 10 должна что-то значить. Он называется «Запускаем Bash в Windows», но выходит далеко за рамки этого. Вопрос в том, почему и как это повлияет на программистов?
В Linux на Windows нет ничего нового; различные подсистемы обеспечивали некоторую совместимость с Linux на протяжении многих лет. Например, собственная поддержка Posix со стороны Microsoft потерпела неудачу только потому, что на самом деле она не справлялась с этим достаточно хорошо, а такие надстройки, как Cygwin, были загадкой для большинства программистов Windows. По сути, Linux на Windows был захолустью, полной проблем.
Теперь у нас есть подсистема Linux, встроенная в Windows 10 и способная запускать немодифицированные двоичные файлы Linux, и это открывает шлюзы.
Предыстория состоит в том, что Microsoft решила найти способ запускать приложения Android в WIndows, проекте Astoria, и для этого ей потребовалось реализовать подсистему Linux — помните, что под Android находится довольно стандартное ядро Linux. Этот проект был отменен, но подсистема Linux, похоже, выжила. Новая подсистема Windows для Linux (WSL) реализует достаточно системных вызовов, чтобы позволить программам пользовательского пространства работать без изменений.
На данный момент учетные записи, кажется, по-другому расставляют акценты.
Некоторые говорят, что это не полный Linux на Windows, а просто попытка запустить Bash. Однако, даже если вы просто запустите Bash, в вашем распоряжении все еще много Linux. Настолько, что Microsoft объединилась с Canonical, чтобы упаковать корневую файловую систему Ubuntu в пакет приложения Windows для WIndows Store. Таким образом, похоже, что в Windows 10 по умолчанию установлен WSL, и пользователь может выбрать загрузку и установку корневой файловой системы Ubuntu вместе со всеми обычными утилитами командной строки Linux.
После установки корневая файловая система будет иметь доступ к вашей файловой системе Windows через стандартное монтирование — / mnt / c. Из файловой системы Windows вы можете увидеть корневую файловую систему в AppData / Local / Lxssrpptfs /.
Чтобы дать вам некоторое представление о том, насколько это Linux в Windows, вы можете использовать apt-get для установки новых пакетов Ubuntu — так что это гораздо больше, чем просто Bash в Windows.
Взгляните на это в действии:
Так где же эта реализация Linux на Windows остановится?
Вы должны иметь в виду, что это подсистема пользовательского режима, и поэтому специальных драйверов Linux не существует. Это означает, что вы можете запустить X и работать с графическим интерфейсом пользователя. Пока вы счастливы ограничить себя командной строкой и не хотите получать доступ к какому-либо дополнительному оборудованию, большинство вещей должно работать. Однако похоже, что сокеты поддерживаются, и поэтому вы можете запускать веб-сервер из WSL. Да, похоже, он поддерживает vim, emacs, apache, python, gcc, php и так далее …
На данный момент единственное предупреждение — у MySQL есть «проблемы». Удивительно, что MySQL вообще работает на этой ранней стадии, и это должно дать вам некоторое представление о том, что у нас есть что-то вроде Linux-сервера внутри Windows.
Обратите внимание, что это означает, что вы можете запускать и разрабатывать новые программы командной строки. Если в будущем подсистема будет расширена для включения графики, то, вероятно, вы сможете запускать программы на основе графического интерфейса. Нет никаких предположений, что это когда-либо произойдет, но если это так, зачем беспокоиться о конкретных версиях Chrome или LibreOffice для Windows.
Почему Microsoft так поступила?
Заявленная причина состоит в том, что понималось, что любой программист Windows, работающий с Интернетом, должен войти в контакт с Linux, потому что большинство веб-серверов являются серверами Linux. Поэтому возможность работать с командной строкой Linux под Windows имеет некоторый смысл, но не большой. Это означает, что вам не нужно изучать PowerShell или командную строку Windows. Однако это не имеет полного смысла, потому что PowerShell намного мощнее, чем Bash.
Кроме того, кажется, что WSL больше похож на сервер Linux, встроенный в Windows.
Будет интересно посмотреть, откуда пользователи берут эту идею. На данный момент часть системы Microsoft не имеет открытого исходного кода, но может быть. Если это так, похоже, нет причин, по которым он мог бы расшириться, чтобы стать полноценным Linux под Windows — теперь как странно это …
Обратите внимание на новую функцию в обновлении Windows Insider.