Sottosistema per applicazioni basate su UNIX in Windows 7


12

Ho notato una cosa chiamata Sottosistema per applicazioni basate su UNIX nella finestra di dialogo Attiva e disattiva funzionalità di Windows in Windows 7. Non l'ho mai visto prima e sembra interessante. Che cos'è esattamente? A cosa serve e per cosa potrei usarlo?


1
c'è un trucco per usarlo in Windows 7 Professional?
iceman,

@iceman: installa Enterprise o Ultimate, quindi.
Joey,

Una buona lettura di ciò che avrebbe potuto essere: "La triste storia del sottosistema POSIX Microsoft" brianreiter.org/2010/08/24/…
Daniel Sokolowski,

Risposte:


17

Precedentemente noto come SFU o Servizi per UNIX . È un sottosistema di ambiente in Windows, che offre la piena conformità POSIX e un grande carico di strumenti normalmente forniti con i sistemi UNIX.

Come sottosistema di ambiente, ciò significa che funziona insieme all'API di Windows, direttamente sul kernel. Quindi non è più emulato dell'API Windows nativa stessa e quindi offre prestazioni molto migliori di cygwin, ad esempio. 1

È principalmente destinato alla creazione e all'esecuzione di applicazioni UNIX direttamente su Windows, quindi se il tuo programma UNIX preferito non è dotato di una porta Windows, puoi provare a costruirlo in SUA:

I servizi Windows per Unix e il sottosistema per applicazioni basate su Unix forniscono file di intestazione e librerie che semplificano la ricompilazione o il porting delle applicazioni Unix per l'uso su Windows; non rendono i binari Unix compatibili con i binari di Windows. È meglio pensata come una piattaforma distinta simile a Unix.

La versione corrente di SFU contiene:

  • Oltre 350 utility Unix come vi, ksh, csh, ls, cat, awk, grep, kill, ecc.
  • Compilatore GCC 3.3, include e librerie (tramite MS libc)
  • Un wrapper di tipo cc per il compilatore C / C ++ della riga di comando di Microsoft Visual Studio
  • Debugger GDB
  • Server e client NFS
  • Un demone pcnfsd
  • Strumenti e librerie X11
  • Strumenti per far apparire i mount point NFS come condivisioni Windows e viceversa (servizi gateway)
  • Una funzionalità del server NIS collegata con Active Directory (AD)
  • Alcuni strumenti di sincronizzazione delle informazioni di autenticazione Windows / Unix

SFU non contiene quanto segue (ma i binari sono disponibili per un'installazione separata):

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

(Wikipedia)

Dal momento che SUA non tenta di essere Linux o BSD, ma semplicemente POSIX, ciò può anche significare che molti programmi che si basano su cose specifiche della piattaforma potrebbero non essere compilati o eseguiti. Mi vengono in mente gli script di shell che assumono bash anziché chiamate di sistema specifiche per sh o Linux. Oggi sono scritti pochissimi programmi che possono essere eseguiti direttamente su qualsiasi sistema compatibile con POSIX. Anche la versione di gcc inclusa è piuttosto vecchia, il che significa che potrebbe non supportare la tua più recente bontà C99 +.


1 È ancora soggetto a limitazioni specifiche di Windows, come i tempi di avvio del processo lenti, quindi il fork estremo sarà ancora molto lento, motivo per cui attenderete secoli per l' ./configureesecuzione di molti script o alcuni makefile.


Freddo. Quindi, ciò significa che puoi ottenere un unix come shell e usare ssh per esempio?
Svish

Nessun server o client SSH, ma sono inclusi csh e ksh (molto di più non è richiesto da POSIX). Puoi creare dalla fonte ciò di cui hai bisogno, sperando che funzioni (per i software più complessi di solito non lo è poiché makefile e software non sono scritti pensando a POSIX, o con gcc e una libc di Microsoft. Gli strumenti di Linux sono noti anche per che richiede bash senza un motivo particolare. Apparentemente è possibile configurare pkgsrc, tuttavia. Non sono riuscito a farlo finora, però, ma la mia esperienza risale a SFU 3.5 su Windows 2000. Potrebbe essere che le cose siano cambiate ormai
Joey,

Mentre è vero che il sottosistema POSIX originale in NT è stato eseguito direttamente sul kernel insieme ai sottosistemi Win32 e OS / 2, SUA viene eseguito sull'API di Windows.
ス ー パ ー フ ァ ミ コ ン

2
matthews: I file eseguibili per SUA sono ancora applicazioni del sottosistema POSIX (sì, in realtà ho preso un editor esadecimale e ho guardato dentro). Quindi il kernel non avrà nemmeno l'idea di eseguire qualcosa dall'API di Windows.
Joey,

4
@Svish: puoi scaricare i binari SUA OpenSSH (e molto altro) da suacommunity.com
bk1e

1

È possibile utilizzare pacchetti in stile BSD per l'installazione / disinstallazione di software. Puoi accedere a SUA tramite SSH se hai installato OpenSSH.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.