Subsistema para aplicaciones basadas en UNIX en Windows 7

12

Noté una cosa llamada Subsistema para aplicaciones basadas en UNIX en el cuadro de diálogo Activar y desactivar características de Windows en Windows 7. Nunca lo había visto antes, y parece interesante. ¿Qué es exactamente en realidad? ¿Para qué sirve y para qué podría usarlo?

Svish
fuente
1
¿Hay algún truco para usar esto en Windows 7 Professional?
Iceman
@iceman: Instale Enterprise o Ultimate, entonces.
Joey
Una buena lectura de lo que podría haber sido: 'La triste historia del subsistema POSIX de Microsoft' brianreiter.org/2010/08/24/…
Daniel Sokolowski

Respuestas:

17

Anteriormente conocido como SFU o Servicios para UNIX . Es un subsistema de entorno en Windows, que proporciona compatibilidad total con POSIX y una gran carga de herramientas que normalmente vienen con los sistemas UNIX.

Como subsistema de entorno, esto significa que se ejecuta junto con la API de Windows, directamente encima del núcleo. Por lo tanto, no es más emulado que la API nativa de Windows y, por lo tanto, funciona mucho mejor que Cygwin, por ejemplo. 1

Está destinado principalmente a compilar y ejecutar aplicaciones UNIX directamente en Windows, por lo que si su programa UNIX favorito no viene con un puerto de Windows, puede intentar compilarlo en SUA:

Los servicios de Windows para Unix y el subsistema para aplicaciones basadas en Unix proporcionan archivos de encabezado y bibliotecas que facilitan la recompilación o el puerto de aplicaciones de Unix para su uso en Windows; no hacen que los binarios de Unix sean compatibles con los binarios de Windows. Es mejor pensarlo como una plataforma distinta de Unix.

La versión actual de SFU contiene:

  • Más de 350 utilidades de Unix como vi, ksh, csh, ls, cat, awk, grep, kill, etc.
  • Compilador GCC 3.3, incluye y bibliotecas (a través de una biblioteca MS)
  • Un contenedor similar a cc para el compilador C / C ++ de línea de comandos de Microsoft Visual Studio
  • Depurador GDB
  • Servidor NFS y cliente
  • Un demonio pcnfsd
  • Herramientas y bibliotecas X11
  • Herramientas para hacer que los puntos de montaje NFS aparezcan como recursos compartidos de Windows y viceversa (servicios de puerta de enlace)
  • Una capacidad de servidor NIS vinculada con Active Directory (AD)
  • Algunas herramientas de sincronización de información de autenticación de Windows / Unix

SFU no contiene lo siguiente (pero los binarios están disponibles para una instalación por separado):

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

(Wikipedia)

Dado que SUA no intenta ser Linux o BSD, sino simplemente POSIX, esto también puede significar que muchos programas que dependen de cosas específicas de la plataforma pueden fallar al construir o ejecutar. Se me ocurren guiones de shell que suponen bash en lugar de sh o llamadas a sistemas específicos de Linux. En la actualidad, se escriben muy pocos programas que puedan ejecutarse directamente en cualquier sistema compatible con POSIX. Además, la versión de gcc que se incluye es algo antigua, lo que significa que puede no ser compatible con su bondad C99 + más reciente.


1 Todavía está sujeto a limitaciones específicas de Windows, como el lento tiempo de inicio del proceso, por lo que la bifurcación extrema seguirá siendo muy lenta, por lo que esperará años para ./configureque se ejecuten muchos scripts o algunos archivos MAKE.

Joey
fuente
Frio. Entonces, ¿eso significa que puedes obtener un Unix como shell y usar ssh por ejemplo?
Svish
No hay servidor o cliente SSH, pero se incluyen csh y ksh (de todos modos POSIX no exige mucho más). Puede construir desde la fuente lo que necesita, con la esperanza de que funcione (para el software más complejo generalmente no funciona, ya que los archivos MAKE y el software no están escritos teniendo en cuenta POSIX, o con gcc y una libc de Microsoft. Las herramientas de Linux también son conocidas por requiriendo fiesta por ninguna razón particular Aparentemente usted. puede configurar pkgsrc, aunque no he podido hacer que hasta el momento, sin embargo, pero mi experiencia se remonta a SFU 3.5 en Windows 2000. puede ser que las cosas han cambiado ahora..
Joey
Si bien es cierto que el subsistema POSIX original en NT se ejecutó directamente en el kernel junto con los subsistemas Win32 y OS / 2, SUA se ejecuta sobre la API de Windows.
ス ー パ ー フ ァ ミ コ ン
2
matthews: Los ejecutables para SUA siguen siendo aplicaciones del subsistema POSIX (sí, en realidad tomé un editor hexadecimal y miré dentro). Por lo tanto, el núcleo ni siquiera tendrá la idea de ejecutar algo desde la API de Windows.
Joey
44
@Svish: puede descargar los binarios OpenSSH SUA (y mucho más) de suacommunity.com
bk1e
1

Puede usar paquetes de estilo BSD para instalar / desinstalar software. Puede acceder a SUA a través de SSH si tiene instalado OpenSSH.

Budhi Hamdani
fuente