Cygwin é uma coleção de ferramentas de software livre originalmente desenvolvidas por Cygnus Solutions de maneira a permitir que várias versões do Microsoft Windows possam, de certa forma, agir como um sistema Unix. Sua principal intenção é portar softwares que rodam em sistemas POSIX (como sistemas Linux, sistemas BSD, e sistemas Unix) para que rodem em Windows com pouco mais do que uma recompilação. Programas portados com Cygwin funcionam melhor em Windows NT, Windows 2000, Windows XP, e Windows Server 2003, mas alguns podem rodar aceitavelmente bem em Windows 95 e Windows 98. O Cygwin é atualmente mantido por funcionários da Red Hat e outras pessoas.

Cygwin

Rodando em Windows XP
Desenvolvedor Red Hat e outros
Lançamento 1995
Versão estável 1.7.9-1 (29 de março de 2011)
Sistema operacional Windows
Gênero(s) Emulador
Licença GNU GPL
Página oficial www.cygwin.com


O Cygwin foi originalmente desenvolvido pela Cygnus Solutions, que mais tarde foi adquirida pela Red Hat, para portar o GNU / Linux toolchain para o Win32, incluindo o GNU Compiler Suite. Em vez de reescrever todas as ferramentas para usar os tempos de execução do Win32, o Cygwin implementou um tempo de execução compatível com o POSIX como uma DLL.[1] É software livre e de código aberto, lançado sob a GNU Lesser General Public License versão 3.[2]


Descrição

editar

O Cygwin consiste de uma biblioteca que implementa a API de chamadas de sistemas POSIX em termos de chamadas de sistemas Win32, uma toolchain de desenvolvimento GNU (como o GCC e o GDB) para permitir tarefas básicas de desenvolvimento de software, e algumas aplicações equivalentes a programas comuns em sistemas Unix. O X Window System foi adicionado ao Cygwin em 2001.

O pacote também inclui uma biblioteca chamada MinGW que trabalha com a biblioteca nativa MSVCRT (Windows API) inclusa no Windows; MinGW tem menos overhead de RAM e disco, opera sob uma licença permitiva e (non-copyleft), e pode linkar para qualquer software, mas não implementa muitas das especificações POSIX como o Cygwin.

O Cygwin não tem suporte direto para Unicode, tampouco ele suporta qualquer conjunto de caracteres a não ser os códigos de páginas (codepages) do Windows e OEM atualmente disponíveis em seu sistema (ex.:, para um usuário russo, as únicos códigos de páginas disponíveis serão os CP1251 e CP866, mas não KOI8-R, ISO 8859-5, UTF-8 ou qualquer outra coisa). O iconv é provido, para que seja possível trabalhar com arquivos em outras encodificações, mas conversões devem ser feitas manualmente.

A Red Hat normalmete licencia a biblioteca Cygwin sob a licença GNU General Public License com a exceção de permitir a linkagem de qualquer Software Livre cuja licença conforme com a Definição Open Source. (A Red Hat também vende licenças comerciais aos que quiserem redistribuir programas que usam a biblioteca Cygwin sob termos software proprietário.)[3]

Uma pessoa pode se afiliar a uma das muitas listas de email (mailing lists) relacionadas ao Cygwin na página de Mailing List do Cygwin.

História

editar

O Cygwin começou em 1995 como um projeto de Steve Chamberlain, um engenheiro da Cygnus que notou que o Windows NT e 95 usavam COFF como seu formato de arquivo objeto, e que o GNU já havia incluído suporte para x86 e COFF, e a biblioteca C newlib; então pelo menos teoricamente não deveria ser difícil de redirecionar o alvo do GCC e com isso conseguir um compilador cruzado capaz de produzir executáveis que rodariam em Windows. Isto provou ser verdade na prática, e um protótipo foi lançado rapidamente.

O passo seguinte foi tentar fazer o bootstrap do compilador no sistema Windows, mas isto requeria emulação suficiente de Unix para permitir que o shell script GNU configure rodasse, script este que requer um shell como bash, que por sua vez requer Fork e I/O padrão. O Windows inclui uma funcionalidade similar, então a biblioteca Cygwin propriamente dita necessita apenas traduzir chamadas e gerenciar versões privadas de dados, tais como descritores de arquivos.

Por volta de 1996, outros engenheiros haviam se juntado ao projeto, como era claro que o Cygwin seria uma maneira muito útil de prover as ferramentas embutidas (embedded) Cygnus hospedadas em sistemas Windows (a estratégia anterior foi usar DJGPP). Foi especialmente atrativo porque era possível fazer uma compilação cruzada de três vias, por exemplo usar uma Sun Workstation para montar, digamos, um compilador cruzado Windows-x-MIPS, que era mais rápido do que usar o PC da época. A partir de 1998, a Cygnus começou a oferecer o pacote Cygwin como um produto de interesse por seus próprios méritos.

Ver também

editar
  • Cygwin/X é uma implementação livre do X11 rodando em cima do Cygwin.
  • MinGW é um porte livre das ferramentas de desenvolvimento GNU para Windows.
  • DJGPP é uma suite similar para DOS/Windows.
  • Services for UNIX é um produto Microsoft com capacidades similares ao Cygwin; ele tem a vantagem da velocidade, apesar de não estar disponível para Windows XP Home, ou versões mais velhas não baseadas na plataforma NT do Windows.
  • O pacote UWIN permite aplicações UNIX serem feitas e rodarem em Windows XP/2000/NT/ME/98/95.
  • coLinux usa uma abordagem diferente para rodar programas Linux em Windows: ele roda o Linux em si para hospedá-los.

Referências

  1. «(Solved) Linux Subsystem vs Cygwin vs MobaXterm». Tech Help Forum by How-To Geek (em inglês). 24 de janeiro de 2017. Consultado em 15 de março de 2019 
  2. «Cygwin library now available under GNU Lesser General Public License». redhat.com 
  3. «Cygwin Licensing Terms». cygwin.com (em inglês). Consultado em 3 de março de 2018 

Ligações externas

editar