Subsistema para aplicativos baseados em UNIX no Windows 7

12

Notou uma coisa chamada Subsistema para aplicativos baseados em UNIX na caixa de diálogo Ativar e desativar recursos do Windows no Windows 7. Nunca vi isso antes e parece interessante. O que exatamente é realmente? Para que serve e para que posso usá-lo?

Svish
fonte
1
existe algum truque para usar isso no Windows 7 Professional?
iceman
@iceman: Instale Enterprise ou Ultimate, então.
Joey
Uma boa leitura do que poderia ter sido: 'A triste história do subsistema Microsoft POSIX' brianreiter.org/2010/08/24/…
Daniel Sokolowski

Respostas:

17

Anteriormente conhecido como SFU ou Services for UNIX . É um subsistema de ambiente no Windows, fornecendo total conformidade com POSIX e uma grande carga de ferramentas que normalmente acompanham os sistemas UNIX.

Como um subsistema de ambiente, isso significa que ele é executado junto com a API do Windows, diretamente no topo do kernel. Portanto, não é mais emulado do que a própria API nativa do Windows e, portanto, tem um desempenho muito melhor que o cygwin, por exemplo. 1

Ele se destina principalmente à criação e execução de aplicativos UNIX diretamente no Windows; portanto, se o seu programa UNIX favorito não for fornecido com uma porta do Windows, você poderá tentar construí-lo no SUA:

Os Serviços do Windows para Unix e o Subsistema para aplicativos baseados em Unix fornecem arquivos de cabeçalho e bibliotecas que facilitam a recompilação ou porta de aplicativos Unix para uso no Windows; eles não tornam os binários Unix compatíveis com os binários do Windows. É melhor pensado como uma plataforma distinta semelhante ao Unix.

A versão atual do SFU contém:

  • Mais de 350 utilitários Unix, como vi, ksh, csh, ls, cat, awk, grep, kill, etc.
  • Compilador GCC 3.3, inclui e bibliotecas (por meio de um MS libc)
  • Um wrapper tipo cc para o compilador de linha de comando C / C ++ do Microsoft Visual Studio
  • Depurador GDB
  • Servidor e cliente NFS
  • Um daemon pcnfsd
  • Ferramentas e bibliotecas X11
  • As ferramentas para criar pontos de montagem NFS aparecem como compartilhamentos do Windows e vice-versa (serviços de gateway)
  • Um recurso de servidor NIS vinculado ao Active Directory (AD)
  • Algumas ferramentas de sincronização de informações de autenticação do Windows / Unix

O SFU não contém o seguinte (mas os binários estão disponíveis para uma instalação separada):

  • bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, Ruby, Tcl, Python

(Wikipedia)

Como o SUA não tenta ser Linux ou BSD, mas simplesmente POSIX, isso também pode significar que muitos programas que dependem de coisas específicas da plataforma podem falhar na criação ou execução. Scripts de shell que assumem bash em vez de chamadas de sistema sh ou específicas do Linux vêm à mente. Atualmente, são criados muito poucos programas que podem ser executados diretamente em qualquer sistema compatível com POSIX. Além disso, a versão do gcc incluída é um tanto antiga, o que significa que pode não oferecer suporte à sua mais recente qualidade C99 +.


1 Ele ainda está sujeito a limitações específicas do Windows, como o tempo de inicialização do processo lento, de modo que o bifurcação extrema ainda será muito lento, e é por isso que você esperará muito tempo para que muitos ./configurescripts ou alguns makefiles sejam executados.

Joey
fonte
Legal. Então, isso significa que você pode obter um unix como o shell e usar o ssh, por exemplo?
Svish
Nenhum servidor ou cliente SSH, mas csh e ksh estão incluídos (muito mais não é obrigatório pelo POSIX). Você pode criar a partir da fonte o que precisa, esperando que funcione (para softwares mais complexos, normalmente não funciona, já que makefiles e softwares não são escritos com o POSIX em mente, ou com o gcc e o Microsoft libc. As ferramentas Linux também são conhecidas por exigindo o bash para nenhuma razão particular Aparentemente você. pode configurar pkgsrc, apesar de eu não conseguir fazer isso até agora, embora, mas minhas datas experience voltar para SFU 3.5 no Windows 2000. pode ser que as coisas mudaram agora..
Joey
Embora seja verdade que o subsistema POSIX original no NT foi executado diretamente no kernel, juntamente com os subsistemas Win32 e OS / 2, o SUA roda sobre a API do Windows.
8249
2
matthews: Os executáveis ​​do SUA ainda são aplicativos do subsistema POSIX (sim, peguei um editor hexadecimal e olhei para dentro). Portanto, o kernel nem sequer terá a idéia de executar algo da API do Windows.
9139 Joey
4
@Svish: Você pode baixar os binários OpenSSH SUA (e muito mais) a partir suacommunity.com
bk1e
1

Você pode usar pacotes no estilo BSD para instalar / desinstalar o software. Você pode acessar o SUA via SSH se tiver o OpenSSH instalado.

Budhi Hamdani
fonte