Подсистема для UNIX-приложений в Windows 7

13

Заметил вещь под названием « Подсистема для приложений на основе UNIX» в диалоговом окне « Включение и выключение функций Windows » в Windows 7. Никогда раньше не видел, и это кажется интересным. Что именно это на самом деле? Для чего он нужен и для чего я могу его использовать?

Svish
источник
1
Есть ли взломать, чтобы использовать это в Windows 7 Professional?
Iceman
@iceman: затем установите Enterprise или Ultimate.
Джои
Хорошее чтение того, что могло бы быть: «Печальная история подсистемы Microsoft POSIX» brianreiter.org/2010/08/24/…
Даниэль Соколовский

Ответы:

18

Ранее известный как 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-файлов.

детеныш
источник
Здорово. Значит ли это, что вы можете получить Unix-подобную оболочку и использовать ssh, например?
Свиш
Нет SSH-сервера или клиента, но включены csh и ksh (POSIX все равно не требует). Вы можете собрать из исходного кода то, что вам нужно, надеясь, что оно будет работать (для более сложного программного обеспечения обычно это не так, поскольку make-файлы и программное обеспечение написаны не для POSIX, а для gcc и Microsoft libc. Инструменты для Linux также известны своей популярностью. требующий Баш без особой причины Видимо , вы. можете настроить Pkgsrc, хотя мне не удалось сделать это до сих пор, хотя , но мои даты опыта вернуться к СФУ 3.5 на Windows 2000. может быть , что все изменилось теперь..
Джои
Хотя это правда, что исходная подсистема POSIX в NT работала непосредственно в ядре вместе с подсистемами Win32 и OS / 2, SUA работает поверх Windows API.
ン ー パ ー フ ァ ミ コ ン
2
Matthews: Исполняемые файлы для SUA по-прежнему являются приложениями подсистемы POSIX (да, я на самом деле взял шестнадцатеричный редактор и заглянул внутрь). Таким образом, ядро ​​даже не получит идею запустить что-то из Windows API.
Джои
4
@Svish: Вы можете загрузить двоичные файлы OpenSSH SUA (и многое другое) с сайта suacommunity.com
bk1e
1

Вы можете использовать пакеты в стиле BSD для установки / удаления программного обеспечения. Вы можете получить доступ к SUA через SSH, если у вас установлен OpenSSH.

Будхи Хамдани
источник