Каковы различия между Windows Bash и Cygwin?

65

Каковы различия между Windows Bash и Cygwin?

Новое обновление для Windows с «Linux» Bash является новым, но какие есть отличия от Cygwin, которые могут заставить вас выбрать одно из другого?

Мартейн ван Визель
источник
1
Я полагаю, Windows bash лучше интегрирована и лучше поддерживается Microsoft.
Пантера
2
Я думаю, что этот вопрос актуален, поскольку Windows Bash является продуктом, поддерживаемым компанией Canonical. Это может быть не по теме, возможно, мнение, а не поддержка.
Пантера

Ответы:

65

Cygwin - отличный инструмент, если вы хотите жить полностью в Windows и хотите управлять / автоматизировать задачи Windows с помощью скриптов bash. Однако Cygwin не может запускать неизмененные двоичные файлы Linux.

Вот где вступает WSL:

Подсистема Windows для Linux (WSL) - это новый уровень ядра Windows, целью которого является обеспечение высокой степени совместимости с ядром Linux ABI. Это позволяет собственным немодифицированным двоичным файлам Linux ELF64 работать на WSL.

Вот как WSL может запускать подлинный пользовательский дистрибутив Ubuntu и любые пакеты, которые вы загружаете из apt-get или .deb из других источников, без каких-либо изменений.

Суть WSL заключается в том, чтобы позволить разработчикам, работающим на Windows, иметь возможность запускать многие инструменты и работать над многими проектами, которые зависят от двоичных файлов Linux, функций, поведения, структуры файловой системы, модели процесса и т. Д.

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


Обновление: 2017-09-07

С момента написания вышеизложенного мы выпустили обновление для Windows 10 Creators, которое в массовом порядке улучшает совместимость WSL с МНОГИМИ инструментами, которые вы хотите / должны запустить.

Разработка также не прекращалась, и в течение последних нескольких месяцев мы выпускаем сборки Win10 Insiders на пути к выпуску Fall Creators Update (FCU) в октябре 2017 года.

В FCU мы добавляем возможность устанавливать и запускать несколько дистрибутивов одновременно: в настоящее время доступны Ubuntu, openSUSE и SLES, а Fedora и другие находятся в стадии разработки. WSL теперь также поддерживает последовательную связь USB, а также подключение USB-накопителей и сетевых ресурсов, а также дальнейшие улучшения наших системных вызовов, что улучшает совместимость с большим количеством инструментов.


Обновление: 2019-08-22

Прошло очень много лет с тех пор, как сначала объявили и выпустили WSL, затем добавили поддержку нескольких дистрибутивов через магазин и объявили WSL v1.0 HTH.

На Build 2019 мы объявили о новом терминале Windows ( видео о сеансе терминала ) и WSL 2 ( здесь о сеансе WSL 2 ), который представляет совершенно новый подход к запуску Linux в Windows.

Для получения дополнительной информации и будущих обновлений обязательно посещайте блог командной строки Windows каждые две недели, где мы публикуем множество связанных новостей

Рич Тернер
источник
9
Я был пользователем Cygwin в течение многих лет. WSL - фантастическая идея, которая в основном работает хорошо ... однако на данном этапе скорость доступа к файлам очень мала. Я скажу непомерно медленно. Выполнение даже средних операций с чем-то вроде GIT занимает порядка 30+ секунд по сравнению с подсекундами в Cygwin. Надеюсь, что они исправят это.
Дэмиен Сойер
9
Поведение диска - известная проблема: мы работаем над некоторыми улучшениями для Win10 CU, а более существенные улучшения появятся позже в 2017 году.
Rich Turner
3
Фантастика. Не могу дождаться Это будет отличный продукт :-)
Дэмиен Сойер
2
@DamienSawyer Прошло более 6 месяцев. Ваши жалобы на скорость были уменьшены или остались прежними?
WinEunuuchs2Unix
3
@RichTurner, тогда я буду запускать обновление: D
Мартейн ван
15

Подсистема Windows для Linux

Я использую WSL под Windows 10 в течение нескольких месяцев. Наконец, я могу загрузить Windows для игр и получить доступ к приглашению bash и запустить CLI и многие программы с графическим интерфейсом. Есть ограничения, такие как ни один из знакомых виртуальных каталогов ядра Linux. Планирование требует совместного использования одного и того же сценария Bash между Ubuntu и WSL на машине с двойной загрузкой.

Есть много вещей, которые я хотел бы видеть улучшенными, но я могу жить с этим в течение года или около того.

Закрытый источник

Следует помнить, что Microsoft - это закрытая система, и третьи лица не могут создавать такие обновления, которые вам нравятся в Linux. Но, учитывая все обстоятельства, вы покупаете новый ноутбук, и он все равно поставляется с Windows 10, так что вы можете сказать, что он «бесплатный», по крайней мере :)

Cygwin контролируется Red Hat Linux, которая точно не известна тем, что раздает вещи бесплатно. Некоторым их «бесплатный» дистрибутив Linux Fedora кажется «полигоном» .

Циклы обслуживания

Cygwin имеет 15 лет обновлений. Следует отметить тот же менеджер проекта, который работает с 2003 года. Есть много постоянных сопровождающих и гораздо больше добровольцев.

WSL предоставляет крупные обновления два раза в год каждую весну и осень. Еженедельные второстепенные обновления доступны для тех, кто находится в списке подписчиков для разработчиков. Несмотря на то, что у Microsoft есть ресурсы, позволяющие тысячам людей заняться разработкой WSL, похоже, что вы можете считать членов команды пальцами.

Проблемы со скоростью

Вы увидите много жалоб на скорость WSL. Например, рисование экрана в Windows 10 занимает намного больше времени по сравнению с Ubuntu 16.04, то есть вы действительно можете видеть движение курсора в Windows 10:

WSL bash startup.gif

Для раскраски заставки WSL Bash требуется около 5 секунд. Для сравнения: для того же самого заставка в Ubuntu 16.04 составляет около 1 1/2 секунды:

Ubuntu терминал splash.gif

У Cygwin есть своя доля жалоб на скорость с Bash .


Исходное размещение ниже для исторической справки.

Ответ здесь один год, поэтому я думаю, что небольшое обновление в порядке. В Windows 10 Home, если это 32-битная Windows, это означает, что она не будет работать с 64-битной подсистемой Ubuntu / Windows, как Microsoft говорит нам здесь: ( подсистема Windows Linux в win10 HOME BASIC ).

Это похоже на воплощение мечты об использовании Ubuntu на Windows с превосходной поддержкой игр для Nvidia, но прежде чем вы выберете и купите новый (или подержанный) ноутбук, убедитесь, что у него установлена ​​64-битная версия Windows 10, а не 32-битная домашняя версия, если Вы хотите запускать Ubuntu / Linux изначально под Windows. На веб-сайтах Microsoft они фактически ссылаются на выпуск Windows Anniversary как обязательное условие для запуска подсистемы Windows для Linux.


Однако, если вы не хотите выделять 200 долларов США для Windows 10 и у вас более старый ноутбук под управлением Windows 8.1 64-битный, как у меня, и у вас есть еще более старый ноутбук с Windows Vista 64 бит, как у меня, тогда Cygwin ответ.

Cygwin поддерживает больше версий Windows в виде списков своих веб-сайтов :

Можно ожидать, что Cygwin будет работать на всех современных выпущенных версиях Windows. Штат Январь 2016 г. включает Windows Vista, Windows Server 2008 и все более поздние версии Windows до Windows 10 и Windows Server 2016. 32-разрядная версия Cygwin также работает в 32-разрядной среде WOW64 на выпущенных 64-разрядных версиях Windows, 64 битная версия конечно только на 64 битной винде.

Имейте в виду, что Cygwin может делать только столько, сколько поддерживает соответствующая ОС. Из-за этого Cygwin будет вести себя по-разному и иметь разные ограничения в разных версиях Windows.

WinEunuuchs2Unix
источник
2
Вопрос в том, каковы различия между Cygwin и Bash для Windows. Cygwin даже не упоминается в вашем ответе. Пожалуйста, уточните, как это отвечает на вопрос.
Сет
@Seth Я указал, как WSL зависит от версии, тогда как Cygwin работает на всех поддерживаемых версиях Windows. Спасибо за указание на мой недосмотр.
WinEunuuchs2Unix
1
Нам совершенно ясно, что для WSL требуется 64-разрядная версия Windows, и она доступна в каждом SKU Windows 10, за исключением текущего LTSB - WSL будет добавлен в следующую версию LTSB. WSL также будет включен в Windows Server, выпущенный осенью 2017 года.
Rich Turner
@RichTurner Ваш сайт четко прописан. Что мне непонятно (и не ваша вина), так это то, что продавец продает четырехъядерный процессор i7 7700 с графическим процессором Nvidia 1050 и 12 ГБ системной оперативной памяти с Windows 10 home. Кто-то удалил исходную ссылку, но здесь она есть . Они не прописывают это 32-битный. Вы говорите, что каждая Windows 10 является 64-битной?
WinEunuuchs2Unix
1
Он продается как игровой компьютер. Поскольку большинству геймеров не нужны дополнительные функции в Win10 Pro, они выбрали Home, чтобы избавить клиента от необходимости платить за то, что ему, скорее всего, не понадобится. Windows 10 также поставляется в 32-разрядных вариантах для тех, кто этого хочет, но я был бы УДЕЖДЕН, если бы кто-нибудь продал машину с> 4 ГБ ОЗУ и установил 32-разрядную ОС, поскольку ОС и приложения, которые она запускает, не смогут чтобы получить доступ к чему-либо> 4 ГБ.
Рич Тернер