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 ./configure
skryptów lub niektórych plików makefile.