Заметил вещь под названием « Подсистема для приложений на основе UNIX» в диалоговом окне « Включение и выключение функций Windows » в Windows 7. Никогда раньше не видел, и это кажется интересным. Что именно это на самом деле? Для чего он нужен и для чего я могу его использовать?
2 ответа
Ранее известный как SFU или Сервисы для UNIX. Это подсистема среды в Windows, обеспечивающая полное соответствие POSIX и большое количество инструментов, которые обычно поставляются с системами UNIX.
Как подсистема среды это означает, что она работает вместе с Windows API, прямо над ядром. Таким образом, он не более эмулируется, чем сам Windows API, и, следовательно, работает намного лучше, чем Cygwin, например. 1
Он в основном предназначен для сборки и запуска приложений UNIX непосредственно в Windows, поэтому, если ваша любимая программа UNIX не поставляется с портом Windows, вы можете попробовать создать ее в SUA:
Службы Windows для Unix и подсистема для приложений на основе Unix предоставляют заголовочные файлы и библиотеки, которые упрощают перекомпиляцию или перенос приложений Unix для использования в Windows; они не делают двоичные файлы Unix совместимыми с двоичными файлами Windows. Лучше всего думать, что это отдельная Unix-подобная платформа.
Текущая версия СФУ содержит:
- Более 350 утилит Unix, таких как vi, ksh, csh, ls, cat, awk, grep, kill и т.д.
- Компилятор GCC 3.3, включает в себя и библиотеки (через MS libc)
- Cc-подобная оболочка для компилятора C/C++ командной строки Microsoft Visual Studio
- Отладчик GDB
- NFS сервер и клиент
- Демон pcnfsd
- Инструменты и библиотеки X11
- Инструменты для создания точек монтирования NFS отображаются в виде общих ресурсов Windows и наоборот (службы шлюза)
- Возможность сервера NIS, связанная с Active Directory (AD)
- Некоторые средства синхронизации информации аутентификации Windows/Unix
SFU не содержит следующее (но двоичные файлы доступны для отдельной установки):
- bash, OpenSSH, sudo, CVS, ClamAV, bzip2, gmake, curl, emacs, Apache, XView, Ruby, Tcl, Python
Так как SUA не пытается быть Linux или BSD, а представляет собой просто POSIX, это также может означать, что многие программы, которые зависят от платформы, могут не скомпилироваться или работать. Вспоминаются сценарии оболочки, которые предполагают использование bash вместо sh или системных вызовов Linux. В настоящее время написано очень мало программ, которые могут работать непосредственно в любой POSIX-совместимой системе. Также версия gcc, которая включена, является несколько старой, что означает, что она может не поддерживать вашу последнюю версию C99+.
1 На него по-прежнему распространяются специфические для Windows ограничения, такие как медленное время запуска процесса, поэтому экстремальное разветвление будет по-прежнему очень медленным, поэтому вам придется долго ждать выполнения многих скриптов ./configure
или некоторых make-файлов.
Вы можете использовать пакеты в стиле BSD для установки / удаления программного обеспечения. Вы можете получить доступ к SUA через SSH, если у вас установлен OpenSSH.