Разница, по сути, в том, что между виртуализацией на уровне операционной системы и виртуализацией на основе гипервизора.
Когда вы запускаете bash
из меню «Пуск» Windows, вы получаете текстовое окно с доступом к полной среде командной строки Ubuntu, откуда вы можете установить любой пользовательский пакет Ubuntu.
В отличие от того, что вы получите с традиционной виртуальной машиной, ядро Linux не загружается и не запускается, поэтому запускать его намного быстрее и легче. Собственные двоичные файлы Ubuntu просто выполняются ядром Windows (именно новая его подсистема). Другое отличие состоит в том, что нет графической интеграции из коробки. В случае виртуальной машины у вас есть доступ к окну (или полноэкранному) представлению текстовой и графической консоли виртуального оборудования, но с помощью Windows bash это больше похоже на удаленное подключение к серверу из эмулятора терминала Windows. Тем не менее, вы можете запускать графические приложения Linux, если вы запускаете сервер X11
в Windows. Поскольку ядро Linux не задействовано, вы не можете использовать модули / драйверы Linux для доступа к вашему оборудованию, к нему будут обращаться нативные Windows. Это имеет много последствий, например, в настоящее время нет поддержки символических ссылок и проблем с длинными именами файлов и регистром имен файлов, нет inotify. Здесь нет последовательности загрузки, как на реальной машине или на традиционной виртуальной машине, это означает, что ни один сервис не запускается автоматически при запуске bash
. Это немного похоже на запуск bash
в Docker.
Наконец, эта работа еще не завершена, поэтому есть много возможностей для улучшения. Вы можете иметь представление о том, о чем пользователи больше всего сообщают на этом сайте https://wpdev.uservoice.com/forums/266908-command-prompt-console-bash-on-ubuntu-on-windows
Также посмотрите FAQ: https://msdn.microsoft.com/en-us/commandline/wsl/faq
Обратите внимание, что первый пользовательский запрос "Давайте запустим процессы Windows из Bash" - это то, что вы не можете сделать ни с виртуальной машины Linux, работающей в Windows.