Які відмінності між 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
Дискові парфюмери - це відома проблема: ми працюємо над деякими вдосконаленнями для Perf для Win10 CU, більш значні вдосконалення надійдуть пізніше в 2017 році.
Річ Тернер

3
Фантастичний. Не можу чекати. Це буде чудовий продукт :-)
Дамієн Сойєр

2
@DamienSawyer минуло 6 місяців. Чи зменшились ваші скарги на швидкість чи вони все ще однакові?
WinEunuuchs2Unix

3
@RichTurner тоді я запускаю оновлення: D
Martijn van Wezel

15

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

Я використовую WSL під Windows 10 близько декількох місяців. Нарешті я можу завантажитися в Windows для ігор і все ще отримати доступ до підказок bash та запустити CLI та багато програм GUI. Існують такі обмеження, як жоден з звичних віртуальних каталогів ядра 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 секунд. Для порівняння це приблизно 1 1/2 секунди для того ж екрану сплеску в Ubuntu 16.04:

Термінал Ubuntu splash.gif

Cygwin має власну частку скарг на швидкість з Bash .


Оригінальна публікація нижче для історичного ознайомлення.

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

Це як реалізація мрії під керуванням Ubuntu в Windows з її чудовою ігровою підтримкою для Nvidia, але перш ніж вичерпатись та придбати новий (або використаний) ноутбук, переконайтеся, що він має Windows 10 64 біт, а не 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-бітних Windows.

Майте на увазі, що Cygwin може робити лише стільки, скільки підтримує основна ОС. Через це Cygwin буде поводитися по-різному та матимуть різні обмеження для різних версій Windows.


2
Питання в тому, чим відрізняються cygwin від bash для windows. У Вашій відповіді Цігвін навіть не згадується. Поясніть, будь ласка, як це відповідає на питання.
Сет

@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. Хтось видалив оригінальне посилання, але ось воно є . Вони не вимовляють, що це 32-розрядні. Ви говорите, що WIndows 10 є 64-розрядною?
WinEunuuchs2Unix

1
Він продається як ігровий ПК. Оскільки більшості геймерів не потрібні додаткові представники в програмі Win10 Pro, компанія Home вирішила врятувати клієнта від оплати того, що їм, швидше за все, не знадобиться. Windows 10 є в 32-бітних варіантах і для тих, хто цього хоче, але я був би ВДІСЛЕНО, якщо хтось продав машину з> 4 Гб оперативної пам’яті та встановив 32-бітну ОС, оскільки ОС і додатки, які вона працює, не зможуть. для доступу до чого-небудь> 4 Гб.
Багатий Тернер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.