Sous-système pour les applications UNIX dans Windows 7

13

J'ai remarqué une chose appelée Sous-système pour les applications UNIX dans la boîte de dialogue Activer et désactiver les fonctionnalités Windows sous Windows 7. Jamais vu auparavant, et cela semble intéressant. Qu'est-ce que c'est vraiment? À quoi sert-il et à quoi pourrais-je l'utiliser?

Svish
la source
1
existe-t-il un hack pour l'utiliser dans Windows 7 Professionnel?
iceman
@iceman: installez Enterprise ou Ultimate, alors.
Joey
Une bonne lecture de ce qui aurait pu être: «La triste histoire du sous-système Microsoft POSIX» brianreiter.org/2010/08/24/…
Daniel Sokolowski

Réponses:

18

Auparavant connu sous le nom de SFU ou Services for UNIX . Il s'agit d'un sous-système d'environnement sous Windows, offrant une conformité POSIX complète et une grande quantité d'outils qui sont normalement fournis avec les systèmes UNIX.

En tant que sous - système d'environnement, cela signifie qu'il s'exécute aux côtés de l'API Windows, directement au-dessus du noyau. Il n'est donc pas plus émulé que l'API Windows native elle-même et fonctionne donc beaucoup mieux que cygwin, par exemple. 1

Il est principalement destiné à créer et exécuter des applications UNIX directement sur Windows, donc si votre programme UNIX préféré n'est pas livré avec un port Windows, vous pouvez essayer de le construire dans SUA:

Les services Windows pour Unix et le sous-système pour les applications basées sur Unix fournissent des fichiers d'en-tête et des bibliothèques qui facilitent la recompilation ou le portage des applications Unix pour une utilisation sur Windows; ils ne rendent pas les binaires Unix compatibles avec les binaires Windows. Il est préférable de la considérer comme une plate-forme distincte de type Unix.

La version actuelle de SFU contient:

  • Plus de 350 utilitaires Unix tels que vi, ksh, csh, ls, cat, awk, grep, kill, etc.
  • Compilateur GCC 3.3, inclut et bibliothèques (via une libc MS)
  • Un wrapper de type cc pour le compilateur C / C ++ en ligne de commande Microsoft Visual Studio
  • Débogueur GDB
  • Serveur et client NFS
  • Un démon pcnfsd
  • Outils et bibliothèques X11
  • Outils pour faire apparaître les points de montage NFS en tant que partages Windows et vice-versa (services de passerelle)
  • Une capacité de serveur NIS liée à Active Directory (AD)
  • Certains outils de synchronisation des informations d'authentification Windows / Unix

SFU ne contient pas les éléments suivants (mais des fichiers binaires sont disponibles pour une installation distincte):

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

(Wikipédia)

Étant donné que SUA n'essaie pas d'être Linux ou BSD, mais simplement POSIX, cela peut également signifier que de nombreux programmes qui s'appuient sur des éléments spécifiques à la plate-forme peuvent échouer à générer ou à exécuter. Les scripts shell qui supposent bash au lieu d'appels système spécifiques à sh ou Linux viennent à l'esprit. De nos jours, très peu de programmes sont écrits qui peuvent s'exécuter directement sur n'importe quel système compatible POSIX. De plus, la version de gcc incluse est un peu ancienne, ce qui signifie qu'elle peut ne pas prendre en charge votre version la plus récente de C99 +.


1 Il est toujours soumis à des limitations spécifiques à Windows, telles que le temps de démarrage lent du processus, donc le forking extrême sera toujours très lent, c'est pourquoi vous attendez longtemps que de nombreux ./configurescripts ou certains makefiles s'exécutent.

Joey
la source
Cool. Donc, cela signifie-t-il que vous pouvez obtenir un shell de type Unix et utiliser ssh par exemple?
Svish
Aucun serveur ou client SSH, mais csh et ksh sont inclus (beaucoup plus n'est pas mandaté par POSIX de toute façon). Vous pouvez créer à partir de la source ce dont vous avez besoin, en espérant que cela fonctionnera (pour les logiciels plus complexes, ce n'est généralement pas le cas car les makefiles et les logiciels ne sont pas écrits avec POSIX en tête, ou avec gcc et une bibliothèque Microsoft. Les outils Linux sont également connus pour nécessitant bash sans raison particulière. Apparemment, vous pouvez configurer pkgsrc, cependant. Je n'ai pas réussi à le faire jusqu'à présent, mais mon expérience remonte à SFU 3.5 sur Windows 2000. Peut-être que les choses ont changé maintenant.
Joey
S'il est vrai que le sous-système POSIX d'origine dans NT s'exécutait directement sur le noyau aux côtés des sous-systèmes Win32 et OS / 2, SUA s'exécute au-dessus de l'API Windows.
ス ー パ ー フ ァ ミ コ ン
2
matthews: Les exécutables pour SUA sont toujours des applications du sous-système POSIX (oui, j'ai en fait pris un éditeur hexadécimal et j'ai regardé à l'intérieur). Ainsi, le noyau n'aura même pas l'idée d'exécuter quelque chose à partir de l'API Windows.
Joey
4
@Svish: Vous pouvez télécharger les binaires OpenSSH SUA (et bien plus) sur suacommunity.com
bk1e
1

Vous pouvez utiliser des packages de type BSD pour installer / désinstaller des logiciels. Vous pouvez accéder à SUA via SSH si vous avez installé OpenSSH.

Budhi Hamdani
la source