Обе Interix и Cygwin похоже, что обеспечивает Unix-подобную пользовательскую среду в Windows. Каковы практические различия между ними, например, с точки зрения:
Одно отличие, о котором я знаю, заключается в том, что Interix требует выпуска Windows 7 Enterprise или Ultimate; Cygwin будет работать на чем угодно.
Раньше я использовал Windows SFU только в Windows 2008, но считаю, что это основано на Interix. Иногда я играл с cygwin, но не очень много, так что кто-нибудь поправьте меня, если я скажу что-то явно не так.
ps
и df
работают нормально.Если у вас есть копия ОС Windows, которая будет поддерживать Interix (как вы сказали, выпуск Enterprise, выпуск Ultimate или выпуск Server), это не повредит. Это очень полная среда ощущений. Cygwin, как вы сказали, работает на всем, он более известен и лучше поддерживается, но для меня это немного грязный хакер. Однако некоторые люди используют его регулярно.
/ * мета-заметка - ненавижу такие короткие комментарии * /
Я в основном согласен с ответом Эндрюса с парой комментариев. Я заменил многие системы unix на SUA / SFU (нет, они не такие, но близкие) под окнами.
Наше путешествие начинается в непонятная страница для Windows Server 2008.
Здесь вы обнаружите, что это больше не называется Interix, а Подсистема для Unix-приложений или SUA. Далее вы заметите только из комментария пользователя, что SUA доступен только для Windows 7 Ultimate или Enterprise. Об этом нигде в статье не упоминается. После установки «подсистемы» вы поймете, что в вашем стартовом меню не более двух ярлыков.
Теперь вы подошли к настоящему злу. Нажмите ярлык для загрузки, и вы попадете на страницу загрузки.
Здесь у нас есть 3 доступных файла для загрузки. Эти файлы имеют размер более 400 МБ, и на момент написания старше 4 лет. Кроме того, у нас нет никаких вариантов загрузки пользовательских пакетов, определенных частей и прочего. Затем вы поймете, что эта ссылка на самом деле предназначена для Vista, а не для Windows 7, и вам придется поискать в Интернете, чтобы найти страница Windows 7. На этом я сдался.
Перейти к cygwin.com. Скачать cygwin.com/setup-x86.exe. Этот файл 714 КБ. Запустите базовую установку, и вы увидите, что она занимает около 2 минуты.
После этого вы можете повторно использовать установщик для многих других пакетов по своему усмотрению. Мораль истории в том, что Cygwin заботится о пользователе.
Не могу прокомментировать ответ JimB, поэтому рассмотрим его здесь, в частности, об интеграции с Windows. Cygwin основан на Win32, а не работает в собственной подсистеме, хотя и работает медленнее, но обеспечивает гораздо большую интеграцию с Windows. Он даже позволяет использовать API-интерфейсы Windows и UNIX в одной программе, что позволяет использовать такие вещи, как X-сервер Cygwin или терминал mintty.
Cygwin 'ps' действительно перечисляет процессы Windows, если вы укажете ему параметр -W, а 'kill -f' убьет их. Программы Windows можно вызывать из Cygwin и подключать вместе с программами Cygwin, используя все обычные механизмы, такие как каналы. (Я не знаю, возможно ли это в Interix.)
Поддерживаются пути в стиле Windows с прямой и обратной косой чертой. Cygwin 1.7 сделал UTF-8 набором символов по умолчанию, а имена файлов Windows UTF-16 переводятся автоматически, поэтому имена файлов на любом языке отображаются в Cygwin правильно. Я не знаю, что здесь делает Interix, но не смог найти никаких доказательств того, что он поддерживает Unicode.
Другие функции интеграции включают утилиту cygstart для открытия файла, как если бы вы дважды щелкнули его в проводнике, и устройство / dev / clipboard для доступа к буферу обмена Windows.
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, от которого позже отказались. Переименование из SFU в SUA может выглядеть хорошо в глазах маркетинговой команды, но сбивает с толку неопытных пользователей.
Производительностьиначе можно утверждать, что Interix ближе к ядру и, следовательно, имеет более короткий путь выполнения кода. Настоящий вопрос в том, насколько это важно и насколько это важно? Для большинства программ разница составляет несколько процентов и незначительна. Конечно, можно привести искусственный пример с тяжелым вводом-выводом. Я бы предпочел поместить такую нагрузку в собственный UNIX, поскольку это будет быстрее, чем как собственные надстройки Windows, так и надстройки UNIX поверх Windows. Многие перешли с Windows на UNIX с увеличением нагрузки, а я не знаю примеров перехода с CygWin на Interix (или наоборот). Требуется совместимость с UNIX, а не производительность с UNIX, поэтому я поставил это в конец списка.