Які практичні відмінності між Interix та Cygwin?


14

І Interix, і Cygwin, як видається, забезпечують середовище користувача Unix у Windows. Які практичні відмінності між ними, наприклад, з точки зору:

  • Unix-подібне "відчуття"
  • Продуктивність
  • Доступність / легкість пакету при складанні випадкових програм, завантажених з Інтернету
  • Інтеграція з додатками та інструментами Windows
  • Інтеграція / сумісність з віртуальними машинами (наприклад, чи можливо для Interix та віртуальної машини Ubuntu спільно використовувати той самий "домашній каталог")
  • Розмір бази користувачів / рівень підтримки громади

Мені відомо, що для Interix потрібна версія Windows 7 Enterprise або Ultimate; Cygwin буде працювати на що завгодно.

Відповіді:


7

Раніше я використовував тільки Windows SFU в Windows 2008, але я вважаю, що це засновано на Interix. Я грав з cygwin при нагоді, але це не величезна кількість, тому хтось, будь ласка, виправте мене, якщо я скажу тут щось явно не так.

  • Як у Unix, відчуваю: Interix виграє цей. Навколишнє середовище відчуває себе набагато "повнішим". Я не впевнений, як це поставити. Interix працює поруч із підсистемою win32, де цигвін працює над нею. Отже, interix - це "громадянин першого класу" в землі ядра Windows. Такі речі люблять psі dfпрацюють добре.
  • Продуктивність: Не зробивши жодного серйозного тестування продуктивності, я б припустив, що Interix теж виграє це. Знову ж, це біг на нижчому рівні. Ви не просто запускаєте програми Win32 із підключеною DLL сумісністю POSIX.
  • Пакети / випадкове програмне забезпечення: Cygwin виграє це з двох причин. По-перше, цигуін набагато краще відомий. Багато програмного забезпечення Unixy матимуть підтримку своїх диваків. Ви також можете легко встановити речі з інсталятора GUI. У Interix немає (я вважаю) такого вбудованого. Звичайно, ви можете завантажити щось, скомпілювати його за допомогою gcc (що, на мою думку, ви можете придбати заздалегідь), і моліться, щоб воно працювало, але це трохи схоже на перенесення програмного забезпечення до будь-якого іншого випадкового варіанту Unix (наприклад, Solaris або AIX) - деяких справи будуть працювати, інші речі намагатимуться відкусити ногу і вбити ваших дітей.
  • Інтеграція з додатками та інструментами Windows: Якщо чесно, обидва смоктають це. Якщо у вас, скажімо, є сервер Apache, який працює всередині cygwin або Interix, тоді впевнений, він зможе спілкуватися через TCP з програмами Win32, але це приблизно настільки далеко. Зсередини interix, я вважаю, що ви можете вбити програми Win32 і перерахувати їх за допомогою ps, не впевнений, чи можете ви це зробити з cygwin. З обома ви можете використовувати диспетчер завдань Windows для вбивства речей.
  • Інтеграція з віртуальними машинами: зверніться до вашого прикладу спільного використання домашнього каталогу, тоді так. Ви можете використовувати самбу для цього, і я вважаю, що NFS також працює на Interix для чогось більш унікального. Ви не знайдете жодних приємних графічних інтерфейсів чи нічого, щоб зробити для вас роботу. І cygwin, і Interix дозволяють отримати доступ до звичайних файлових систем.
  • Розмір бази користувачів: Cygwin виграє тут, я б сказав. Було дуже важко знайти речі, які були протестовані та розроблені для запуску в Interix, де, як здається, більшість матеріалів з відкритим кодом підтримують cygwin як платформу компіляції.

Якщо у вас є копія ОС Windows, яка підтримуватиме Interix (як ви вже говорили, видання Enterprise, Ultimate Edition або серверне видання), це не принесуть шкоди. Це дуже повне оточення почуттів. Cygwin, як ви вже говорили, працює на всьому, і його краще знають і краще підтримують, але трохи відчувають себе брудним злом. Деякі люди користуються ним регулярно, хоча.


Щодо пакетів, Gentoo-префікс для Interix може бути вартим
зняття

1
Швидко вперед до 2015 року, тепер відповідь стає просто "cygwin все ще доступний і підтримується, тоді як Interix (він же Служби для Unix aka підсистема для додатків на базі Unix) припинено",
квітня

3

/ * мета-примітка - я ненавиджу, що коментарі такі короткі * /

Я в основному погоджуюся з відповіддю Андреуса з парою коментарів. Я замінив багато систем Unix на SUA / SFU (ні, вони не однакові, але близькі) під Windows.

  • продуктивність - SUA набагато швидше, ніж послуги для Unix, але SFU також не був хитрим, обидва зазвичай швидші, ніж cygwin (але не завжди)
  • інтеграція - інтеграція - це суть SFU / SUA, і на сайті Technet є багато документів про те, що можна, а що не можна робити. Cygwin розроблений для запуску * nix команди у Windows - не для того, щоб два співробітничати. Див. Компоненти інтероперабельності Unix / Linux у Windows (SUA, IdMU, NFS тощо)
  • користувальницька база - Я думаю, що на стороні interix більше працюючих, підтримуваних рішень, ніж на стороні cygwin, і набагато менше проблем із сумісністю, ніж зі стороною cygwin, див. http://www.suacommunity.com/ (склад інструментів). Cygwin, ймовірно, має більше загальних встановлень, оскільки це добре для рішення "мені потрібна оболонка unix". Cygwin виконує команди, SUA - це середовище unix, яке є рівним для Windows.

1

Не можу коментувати відповідь JimB, тому вирішуючи його тут, зокрема питання про інтеграцію Windows. Cygwin, заснований на Win32, замість того, щоб працювати у власній підсистемі, хоча повільніше, забезпечує набагато більшу інтеграцію Windows. Він навіть дозволяє використовувати API API Windows і UNIX в одній програмі, що дозволяє такі речі, як сервер Cygwin X або монетний термінал.

"PS" Cygwin містить список процесів Windows, якщо ви надаєте йому опцію -W, а "kill -f" вбиває їх. Програми Windows можна викликати всередині Cygwin та підключити разом із програмами Cygwin за допомогою всіх звичних механізмів, таких як труби. (Я не знаю, чи можливо це в Interix.)

Підтримуються шляхи в стилі Windows, як з косою нахилом вперед, так і назад. Cygwin 1.7 зробив UTF-8 набором символів за замовчуванням, а назви файлів UTF-16 Windows автоматично перекладаються, таким чином, назви Cygwin будь-якою мовою відображаються правильно в Cygwin. Я не знаю, що Interix робить тут, але не зміг знайти жодних доказів того, що б підтримувало Unicode.

Інші функції інтеграції включають утиліту "cygstart" для відкриття файлу, як якщо б ви двічі клацнули його в Провіднику, та / dev / буфер обміну для доступу до буфера обміну Windows.


3
Як це забезпечує "набагато більшу інтеграцію Windows"? "Він навіть дозволяє використовувати API API для Windows і UNIX в одній програмі" - це теж стосується Interix; дивіться це для першого джерельного джерела; слайд 37, "Процеси в змішаному режимі", на якому розміщена куля "Результат змішаного режиму може робити виклики SUA та Windows в одному і тому ж процесі"
user314104

1

Дозвольте поділитися своїм досвідом встановлення Interix для Windows 7.

Наша Подорож починається з неясної сторінки для Windows Server 2008.

Тут ви виявите, що його вже навіть не називають Interix, а підсистему для Unix-додатків або SUA . Далі ви помітите лише з коментаря користувача, що SUA доступний лише для Windows 7 Ultimate або Enterprise. Про це ніде в статті не йдеться. Встановивши "підсистему", ви зрозумієте, що у вашому меню запуску це не більше 2 ярликів.

суа

Тепер ви переходите до справжнього зла. Клацніть ярлик для завантаження, і ви перейдете на сторінку завантаження.

старий

Тут у нас є 3 доступні файли для завантаження. Ці файли мають понад 400 Мб, а станом на цей час - понад 4 роки . Крім того, ми не маємо жодних варіантів завантаження спеціальних пакетів, певних частин, чогось іншого. Потім ви зрозумієте, що це посилання насправді для Vista, а не для Windows 7, і вам доведеться шукати Інтернет, щоб знайти сторінку Windows 7 . У цей момент я здався.

Сігвін

Перейдіть на cygwin.com . Завантажте cygwin.com/setup-x86.exe . Цей файл - 714 Кб . Запустіть основну установку, і ви побачите, що це займає близько 2 хвилин .

час

Після цього ви можете повторно використовувати інсталятор для багатьох інших пакетів за вашим уподобанням. Мораль історії полягає в тому, що Cygwin піклується про користувача .


Дозвольте мені зрозуміти, що ви правильно - тому що не було потреби змінювати інсталятор, щоб запустити версію unix, яка постачається з win 7 якось, що означає не турботу - і той факт, що Cygwin насправді дозволяє завантажувати шматки (що ви можете потім доведеться повертатися і отримувати більше) це якось плюс? Безумовно, нещодавнє рішення про видалення компонентів Unix з Windows - це ознака того, що користувачі або не запускають unix під Windows (швидше за все, IMHO), або що якимось чином їх просто не хвилює, але я цього не бачу.
Джим Б

@JimB Це не "приходить" з Windows 7. Я б подумав, що моя публікація це зрозуміла. Він доступний лише для Win7 ultimate, і вам доведеться його завантажити. Плюс завантаження - 4 роки. У програмному співтоваристві це все життя і демонструє явну відсутність напряму / ініціативи від Microsoft.
Стівен Пенні

3
У комплекті з Windows, що ви завантажуєте, це команда Unix, яка використовує підсистему. Оскільки деяким командам в Linux старше 40 років, я не дивуюсь, що їх не потрібно було переписувати (і за вашим стандартом, я вважаю, ніхто не використовує Linux або Unix з моменту свого десятиліття). Нові інструменти та команди додаються до спільноти SU на веб-
Jim B

2
Як не дивно, мені довелося пройти якийсь код і так - його той самий код від 40 років тому - здогадуйтесь, що люди в GNU роблять щось жахливо неправильно - а може бути - просто, можливо, - немає необхідності міняти щось, що не є ' t розбитий
Джим Б

0

UNIX-подібне "відчуття" є досить суб'єктивним. Моє голосування проходить за CygWin, оскільки він має CygWin / X Xwindows сервер з усіма необхідними функціями. SFU отримав основні інструменти X11, але це було занадто мало і занадто пізно. Багато (в тому числі мене) були представлені CygWin необхідністю мати сервер X11. Щодо повноти CygWin також краще позиціонується, оскільки він є відкритим кодом, і до нього переносять багато програмного забезпечення, що має ліцензії GNU або GPL. Я бачив декілька комерційних продуктів для CygWin, тоді як я бачив лише один продукт, що вимагає послуги UNIX для Windows NT, і жоден з них. YMMV.

Наявність пакетуце явна вигода для CygWin, просякнутого кількома факторами: - нижча вартість входу: "будь-яка Windows" з CygWin проти ліцензії серверного класу на SFU / SUA. Деякий функціонал доступний для настільних ароматів Windows, але більш дорогих сортів і без серверних компонентів; - з відкритим кодом порівняно із закритим джерелом та, що важливіше, відкрито доступною документацією. У минулому навіть список команд та наданих API був доступний лише для абонентів MSDN, і на веб-сайті Microsoft було мало інформації про них. На відміну від цього, набір інструментів GNU був добре задокументований та доступний як в Інтернеті, так і як довідкові сторінки; - зміни імен та імплементації є заплутаними. У ранніх версіях використовувався інструментарій MKS, який згодом був відмовлений.

Продуктивність - також можна стверджувати, що Interix знаходиться ближче до ядра і, таким чином, має коротший шлях запуску коду. Справжнє питання полягає в тому, наскільки і чи це має значення? Для більшості програм різниця становить кілька відсотків і є незначною. Звичайно, можна піднести штучний приклад із важким введенням-виведенням. Я вважаю за краще ставити такі навантаження на рідний UNIX, оскільки це було б швидше, ніж як рідні Windows, так і UNIX надбудови поверх Windows. Багато людей перейшли з Windows в UNIX зі збільшенням навантаження, хоча я не знаю прикладу перетворення з CygWin в Interix (або навпаки). Саме сумісність UNIX шукається, а не продуктивність UNIX, тому я ставлю це в кінці списку.


2
Interix насправді перемагає тут; багато речей, що традиційно реалізовуються як * nix syscalls (як fork ()), є хитами, що реалізуються поверх Win32 в Cygwin. Win32 не має поняття fork (), але Interix (і NT). У Cygwin проблеми з цим - отримати адресний простір точно під fork () - і це призводить до серйозних проблем з продуктивністю. Хтось обов'язково засмучується за посилання, що містить більше, ніж цей коментар, але ось воно, прямо з-під крана .
користувач314104
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.