Podsystem aplikacji opartych na systemie UNIX w systemie Windows 7


13

Zauważyłem coś o nazwie Podsystem dla aplikacji opartych na systemie UNIX w oknie dialogowym Włączanie i wyłączanie funkcji systemu Windows w systemie Windows 7. Nigdy wcześniej go nie widziałem i wydaje się interesujące. Co to tak naprawdę jest? Do czego to służy i do czego mogę go używać?


1
czy jest hack, aby użyć tego w Windows 7 Professional?
iceman

@iceman: W takim razie zainstaluj Enterprise lub Ultimate.
Joey

Dobra lektura tego, co mogło być: „Smutna historia podsystemu Microsoft POSIX” brianreiter.org/2010/08/24/…
Daniel Sokolowski,

Odpowiedzi:


18

Wcześniej znany jako SFU lub Services dla UNIX . Jest to podsystem środowiskowy w systemie Windows, zapewniający pełną zgodność z POSIX i mnóstwo narzędzi, które zwykle są dostarczane z systemami UNIX.

Jako podsystem środowiska oznacza to, że działa on równolegle z interfejsem API systemu Windows bezpośrednio na jądrze. Nie jest więc bardziej emulowany niż sam natywny interfejs API systemu Windows i dlatego działa znacznie lepiej niż na przykład cygwin. 1

Jest przeznaczony głównie do budowania i uruchamiania aplikacji UNIX bezpośrednio w systemie Windows, więc jeśli twój ulubiony program UNIX nie ma portu Windows, możesz spróbować zbudować go w SUA:

Usługi Windows dla Uniksa i Podsystem dla aplikacji opartych na Uniksie zapewniają pliki nagłówkowe i biblioteki, które ułatwiają rekompilację lub przenoszenie aplikacji Unix do użytku w systemie Windows; nie sprawiają, że pliki binarne systemu Unix są zgodne z plikami binarnymi systemu Windows. Najlepiej jest traktować go jako odrębną platformę podobną do Uniksa.

Obecna wersja SFU zawiera:

  • Ponad 350 narzędzi uniksowych, takich jak vi, ksh, csh, ls, cat, awk, grep, kill itp.
  • Kompilator GCC 3.3, zawiera i biblioteki (poprzez MS libc)
  • Opakowanie przypominające CC dla kompilatora C / C ++ wiersza polecenia Microsoft Visual Studio
  • Debuger GDB
  • Serwer i klient NFS
  • Demon pcnfsd
  • Narzędzia i biblioteki X11
  • Narzędzia służące do wyświetlania punktów podłączenia NFS jako udziałów Windows i odwrotnie (usługi bramy)
  • Możliwości serwera NIS połączone z Active Directory (AD)
  • Niektóre narzędzia do synchronizacji informacji uwierzytelniających Windows / Unix

SFU nie zawiera następujących elementów (ale pliki binarne są dostępne dla osobnej instalacji):

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

(Wikipedia)

Ponieważ SUA nie próbuje być Linuksem ani BSD, ale zwykłym POSIX-em, może to również oznaczać, że wiele programów opartych na specyficznych platformach może się nie zbudować lub uruchomić. Przychodzą mi na myśl skrypty powłoki, które przyjmują bash zamiast sh lub wywołania systemowe specyficzne dla systemu Linux. Obecnie napisanych jest bardzo niewiele programów, które można uruchomić bezpośrednio na dowolnym systemie zgodnym z POSIX. Również dołączona wersja gcc jest nieco stara, co oznacza, że ​​może nie obsługiwać najnowszej dobroci C99 +.


1 Wciąż podlega ograniczeniom specyficznym dla systemu Windows, takim jak powolny czas uruchamiania procesu, więc ekstremalne rozwidlanie będzie nadal bardzo powolne, dlatego czekasz wiele lat na wykonanie wielu ./configureskryptów lub niektórych plików makefile.


Chłodny. Czy to oznacza, że ​​możesz uzyskać powłokę uniksową i na przykład użyć ssh?
Svish,

Nie ma serwera ani klienta SSH, ale csh i ksh są uwzględnione (i tak wiele więcej nie jest wymagane przez POSIX). Możesz budować ze źródła to, czego potrzebujesz, mając nadzieję, że zadziała (w przypadku bardziej złożonego oprogramowania zwykle nie działa, ponieważ pliki makefile i oprogramowanie nie są pisane z myślą o POSIX lub z gcc i Microsoft libc. Narzędzia Linux są również znane z wymagając bash bez powodu Widocznie ty. można skonfigurować pkgsrc, choć nie udało się tego zrobić do tej pory, choć ale moje doświadczenie z powrotem do daty SFU 3.5 w systemie Windows 2000 może być, że wiele się zmieniło teraz..
Joey,

Chociaż prawdą jest, że oryginalny podsystem POSIX w NT działał bezpośrednio w jądrze wraz z podsystemami Win32 i OS / 2, SUA działa na interfejsie API Windows.
ス ー パ ー フ ァ ミ コ ン

2
matthews: Pliki wykonywalne dla SUA są nadal aplikacjami podsystemu POSIX (tak, wziąłem edytor szesnastkowy i zajrzałem do środka). Jądro nawet nie wpadnie na pomysł, aby uruchomić coś z Windows API.
Joey,

4
@Svish: Możesz pobrać pliki binarne SUSS OpenSSH (i wiele więcej) z suacommunity.com
bk1e

1

Możesz używać pakietów w stylu BSD do instalowania / odinstalowywania oprogramowania. Możesz uzyskać dostęp do SUA przez SSH, jeśli masz zainstalowany OpenSSH.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.