Quais são as diferenças práticas entre Interix e Cygwin?

14

Ambos Interix e O Cygwin parece fornecer um ambiente de usuário semelhante ao Unix no Windows. Quais são as diferenças práticas entre os dois, em termos de, por exemplo:

  • "sente" como Unix
  • Desempenho
  • Disponibilidade / facilidade do pacote na compilação de software aleatório baixado da internet
  • Integração com aplicativos e ferramentas do Windows
  • Integração / compatibilidade com máquinas virtuais (por exemplo, é possível que o Interix e uma máquina virtual do Ubuntu compartilhem o mesmo "diretório inicial")
  • Tamanho da base de usuários / nível de suporte da comunidade

Uma diferença que eu conheço é que o Interix requer o Windows 7 Enterprise ou Ultimate Edition; O Cygwin funcionará em qualquer coisa.

    
por ithinkihaveacat 15.07.2010 / 15:43

5 respostas

7

Eu só usei o Windows SFU no Windows 2008 antes, mas acredito que seja baseado no Interix. Eu joguei com cygwin de vez em quando, mas não uma quantia enorme, então alguém, por favor, me corrija se eu disser algo obviamente errado aqui.

  • Senso semelhante ao Unix: Interix ganha este. O ambiente parece muito mais "completo". Não sei como colocar isso. Interix corre ao lado do subsistema win32, onde o cygwin é executado em cima dele. Então, interix é um "cidadão de primeira classe" no kernel do Windows. Coisas como ps e df funcionam bem.
  • Desempenho: não tendo feito nenhum teste importante de desempenho, eu acho que a Interix também ganha isso. Novamente, ele está sendo executado em um nível mais baixo. Você não está apenas executando aplicativos Win32 com uma DLL de compatibilidade POSIX vinculada.
  • Pacotes / software aleatório: Cygwin vence este por dois motivos. Em primeiro lugar, cygwin é muito mais conhecido. Um monte de software Unixy terá suporte para suas peculiaridades. Você também pode instalar coisas muito facilmente a partir do instalador da GUI. A Interix não (acredito) tem algo parecido com isso. Claro, você pode baixar algo, compilá-lo usando gcc (que eu acho que você pode obter pré-construído), e rezar para que ele funcione, mas é um pouco como portar software para qualquer outra variante do Unix (como Solaris ou AIX) - alguns as coisas vão funcionar, outras coisas vão tentar morder sua perna e matar seus filhos.
  • Integração com aplicativos e ferramentas do Windows: Para ser honesto, ambos são um pouco chato nisso. Se você tem, digamos, um servidor Apache rodando dentro do cygwin ou do Interix, então, com certeza, ele será capaz de se comunicar através de TCP com programas Win32, mas isso é o máximo possível. De dentro de interix, eu acredito que você pode matar programas Win32 e listá-los usando ps, não tenho certeza se você pode fazer isso com o cygwin. Com ambos, você pode usar o gerenciador de tarefas do Windows para matar coisas.
  • Integração com VMs: abordando seu exemplo de compartilhamento de um diretório inicial, então sim. Você pode usar o samba para isso, e eu acredito que o NFS também funciona no Interix para algo mais unixy. Você não encontrará nenhum GUI legal ou qualquer coisa para fazer o trabalho para você. Tanto o cygwin quanto o Interix permitem que você acesse seus sistemas de arquivos regulares.
  • Tamanho da base de usuários: Cygwin vence aqui, eu diria. Foi muito difícil encontrar coisas que foram testadas e desenvolvidas para serem executadas no Interix, onde a maioria das fontes de código aberto parecia apoiar o cygwin como uma plataforma de compilação.

Se você tiver uma cópia de um sistema operacional Windows que ofereça suporte ao Interix (como você disse, uma edição Enterprise, uma edição Ultimate ou uma edição Server), não há problema em dar uma chance. É um ambiente de sentimento muito completo. O Cygwin, como você disse, roda em tudo, e é mais conhecido e melhor suportado, mas parece um pouco sujo para mim. Algumas pessoas usam isso regularmente.

    
por 15.07.2010 / 16:50
3

/ * meta note- Eu odeio comentários tão curtos * /

Concordo principalmente com a resposta de Andrew com alguns comentários. Eu substituí muitos sistemas unix pelo SUA / SFU (não, eles não são os mesmos, mas estão próximos) sob as janelas.

  • performance-SUA é muito mais rápido que serviços para unix mas SFU também não é desleixado, ambos são geralmente mais rápidos que cygwin (mas nem sempre)
  • Integração-Integração é o ponto principal do SFU / SUA e há muitos documentos sobre o que você pode e não pode fazer no site do Technet. O Cygwin é projetado para executar o comando * nix no Windows - não para fazer os dois cooperarem. Consulte Componentes de interoperabilidade do Unix / Linux no Windows (SUA, IdMU, NFS, etc.)
  • base de usuários - Eu acho que existem mais soluções suportadas, trabalhando no lado interix do que no lado do cygwin e muito menos problemas de compatibilidade do que com o lado do cygwin, veja link (armazém de ferramentas). O Cygwin provavelmente tem mais instalações gerais, já que é bom para a solução "Eu preciso de um shell unix" O Cygwin executa comandos, o SUA é um ambiente unix que é um peer to windows.
por 15.07.2010 / 18:01
1

Não posso comentar a resposta de JimB, portanto, abordá-la aqui, em particular o ponto sobre a integração do Windows. O Cygwin sendo baseado em Win32 em vez de rodar em seu próprio subsistema, enquanto mais lento, fornece uma integração muito maior do Windows. Ele permite até que APIs do Windows e do UNIX sejam usadas no mesmo programa, o que permite coisas como o servidor Cygwin X ou o terminal do mintty.

O 'ps' do Cygwin lista os processos do Windows se você der a opção -W, e 'kill -f' irá matá-los. Os programas do Windows podem ser chamados de dentro do Cygwin e conectados em conjunto com os programas do Cygwin usando todos os mecanismos usuais, como os pipes. (Eu não sei se isso é possível no Interix.)

Caminhos no estilo do Windows, ambos com barras para frente e para trás, são suportados. O Cygwin 1.7 tornou o UTF-8 o conjunto de caracteres padrão, e os nomes de arquivos UTF-16 do Windows são traduzidos automaticamente, assim os nomes de arquivos em qualquer idioma aparecem corretamente no Cygwin. Não sei o que a Interix faz aqui, mas não encontrei nenhuma evidência de que ela fosse compatível com o Unicode.

Outros recursos de integração incluem o utilitário 'cygstart' para abrir um arquivo como se você tivesse clicado duas vezes no Explorer, e o dispositivo / dev / clipboard para acessar a área de transferência do Windows.

    
por 16.07.2010 / 12:26
1

Deixe-me compartilhar minha experiência na instalação do Interix for Windows 7.

Nossa jornada começa em uma página obscura para o Windows Server 2008.

Aqui você vai descobrir que nem é chamado Interix anymore, mas Subsistema para aplicativos baseados em Unix ou SUA . Em seguida, você notará apenas a partir de um comentário do usuário que o SUA é apenas disponível para o Windows 7 Ultimate ou Enterprise. Isso não é mencionado no artigo em qualquer lugar. Depois de instalar o "subsistema" você vai perceber que é não mais do que dois atalhos no menu inicial.

Agoravocêchegaaomalreal.CliquenoatalhoparaDownloadevocêserálevadopara a página de download.

Aquitemos3arquivosdisponíveisparadownload.Essesarquivossãotodosde400MBeatéomomentodaredaçãoacimade4anosdeidade.Alémdisso,nãotemosopçõesQualquerquesejaodownloaddepacotespersonalizados,certaspartes,eassimpordiante.VocêentãoperceberqueestelinkérealmenteparaoVistaenãooWindows7,eteráqueirprocurarnainternetparaencontrar a página do Windows 7 . Neste momento eu desisti.

Cygwin

Vá para cygwin.com . Baixar cygwin.com/setup-x86.exe . Este arquivo é 714 KB . Execute uma instalação básica e você verá que é preciso 2 minutos .

Depois disso, você pode reutilizar o instalador de muitos outros pacotes para o seu preferência. A moral da história é que Cygwin se importa com o usuário .

    
por 19.07.2012 / 04:52
0

A "sensação" de UNIX é muito subjetiva. Meu voto vai com o CygWin, pois tem o servidor CygWin / X Xwindows com todos os recursos necessários. O SFU recebeu as ferramentas básicas do X11, mas era muito pouco e muito tarde. Muitos (inclusive eu) foram apresentados ao CygWin pela necessidade de ter um servidor X11. Em termos de completude, o CygWin também está melhor posicionado, pois é open source e muitos softwares GNU ou GPL licenciados são portados para ele. Eu tenho visto alguns produtos comerciais para o CygWin enquanto vi apenas um produto que requer o UNIX Services for Windows NT e nenhum desde então. YMMV.

A disponibilidade do pacote é uma vitória clara para o CygWin, influenciada por vários fatores: - menor custo de entrada: a licença "qualquer Windows" com CygWin vs. classe de servidor para SFU / SUA. Algumas funcionalidades estão disponíveis para os tipos de ambiente de trabalho do Windows, mas das variedades mais caras e sem os componentes do servidor; - código aberto versus código fechado e, mais importante, documentação abertamente disponível. No passado, até mesmo a lista de comandos e as APIs fornecidas estavam disponíveis apenas para assinantes do MSDN e pouca ou nenhuma informação estava disponível no site da Microsoft. Em contraste, o conjunto de ferramentas GNU estava bem documentado e disponível online e como man pages; - as mudanças de nomenclatura e implementação são confusas. As primeiras versões estavam usando o kit de ferramentas MKS, que foi posteriormente abandonado. A renomeação de SFU para SUA pode parecer boa aos olhos de uma equipe de marketing, mas está confundindo os usuários inexperientes.

Performance -wise pode-se argumentar que o Interix está mais próximo do kernel e, portanto, desfruta de um caminho de execução de código mais curto. A verdadeira questão é por quanto e isso importa? Para a maioria dos programas, a diferença é de poucos por cento e é insignificante. Um exemplo artificial com E / S pesada pode ser trazido, é claro. Eu preferiria colocar essas cargas no UNIX nativo, pois seria mais rápido do que os complementos nativos do Windows e do UNIX sobre o Windows. Muitos migraram do Windows para o UNIX com o aumento da carga, enquanto não conheço nenhum exemplo de conversão do CygWin para o Interix (ou vice-versa). É a compatibilidade do UNIX que é procurada e não o desempenho do UNIX, então eu coloco isso no final da lista.

    
por 11.11.2013 / 20:29