Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Microsoft Windows Services for UNIX
Разработчики: | [Microsoft Corporation]] |
---|---|
Выпущена: | 1999 год |
Веб-сайт | technet .microsoft .com /en-us /library /bb463212 .aspx |
Microsoft Windows Services for UNIX — программный пакет, разработанный компанией Microsoft, обеспечивающий подсистему UNIX и другие части среды UNIX на системах семейства Windows NT и более поздних. Расширена из ограниченной подсистемы POSIX Windows NT, и в дальнейшем заменила её.
Начиная с версии 3.0 (Windows XP, 1999 год) использует подсистему Interix, которая была получена компанией Microsoft в 1999 году как часть имущества Softway Systems. В Windows Server 2003 R2 было переименовано в Подсистему для приложений на базе UNIX.
Подобно подсистеме POSIX в Windows NT, Interix не эмулирует ядро UNIX, а реализует подсистему пользовательского режима, работающую напрямую на ядре Windows NT. [Источник 1]
Содержание
Состав
Как и подсистема POSIX в Windows NT, Interix не эмулирует работу ядра UNIX, это лишь реализация на уровне пользователя, запущенная поверх ядра Windows NT.
Важно, что и Cygwin (свободная альтернатива Interix), и Windows Services for Unix предлагают заголовочные файлы и библиотеки, что упрощает перекомпиляцию приложений UNIX для их использования в Windows. Естественно, форматы исполняемых файлов Windows и UNIX по-прежнему остаются несовместимыми. [Источник 2]
Текущая версия включает:
- Более 350 утилит Unix, таких, как vi, ksh, csh, ls, cat, awk, grep, kill, и т. п.
- компилятор GCC 3.3, в том числе заголовочные файлы и библиотеки (через Microsoft libc)
- cc-подобный упаковщик для C/C++ компилятора командной строки Microsoft Visual Studio
- отладчик GDB
- сервер и клиент NFS
- Демоны pcnfsd
- Утилиты и библиотеки X11
- Утилиты для монтирования ресурсов NFS как разделяемые каталоги Windows, и наоборот (гейтвеи)
- Сервер Network Information Service, сопряжённый с Active Directory
- Некоторые утилиты синхронизации токенов аутентификации Windows и Unix
SFU не включает в себя (однако возможно установить отдельно):
SFU не содержит встроенного X-сервера (только утилиты и библиотеки, как упоминалось выше), но может быть использован практически любой из имеющихся, например, Cygwin/X, Xming, WeirdMind или WeirdX.
Версии
Последний релиз — 3.5 от ноября 2007 года.
Windows Server 2003 R2 содержит довольно много предустановленных компонентов SFU, в том числе сервисы Microsoft для сетевой файловой системы (NFS), подсистема для приложений UNIX (Interix) и управление аутентификацией для UNIX.
Windows Vista Enterprise и Ultimate Editions также содержат элементы SFU, переименованную в подсистему для приложений UNIX (англ. Subsystem for UNIX-based applications, SUA).
Microsoft не планирует далее выпускать отдельные версии данного пакета. Возможность скачать последнюю версию с официального сайта будет доступна, по крайней мере, до 2009 года, официальная общая поддержка оканчивается в 2011, расширенная поддержка — в 2014. [Источник 3]
Поддерживаемые операционные системы (для версии 3.5)
Microsoft Windows Services for UNIX предназначен для Windows редакций Server и Professional. Потребительскими версиями Windows не поддерживается.
Установка
Стандартные консольные утилиты, например из пакета GNU Coreutils, давно спортированы на Windows. Есть как довольно старые наборы GNUWin II и UnxUtils, так и постоянно обновляющиеся UWIN (не рекомендуется к использованию) и Gnuwin32. Для последнего по завершении установки базового инсталлятора надо последовательно запустить файлы download.bat и install.bat, а затем скопировать по желанию папку gnuwin32 в любое удобное место и запустить из неё файл update-links.bat. После отработки последнего скрипта в подкаталоге StartMenu будут ссылки на запуск командной строки с окружением GNU и документацию к утилитам.
Обладатели Windows Vista/7 в максимальной и корпоративной версиях, а также серверных версий ОС Microsoft могут вообще не заморачиваться. Для них доступна подсистема для приложений на базе UNIX (Subsystem for UNIX-based Applications, SUA) или сервисы Microsoft Windows для UNIX (Microsoft Windows Services for UNIX, SFU). Этот набор базовых утилит наличествует прямо в компонентах системы. Дополнительные наборы программ можно скачать здесь. Наконец, последнее в списке и первое по популярности решение для запуска UNIX-программ — это Cygwin. Этот пакет прост в установке и содержит далеко не маленький набор приложений, портированных под Windows. Рекомендуется использовать именно его.
Теперь можно поговорить о странном — запуске неродной для Windows системы KDE. Вообще-то проект KDE on Windows существует не первый год, и поначалу пользоваться им было просто невозможно из-за регулярных падений, которые разве что не загоняли несчастную систему в BSOD. Однако разработчики не сидели сложа руки, и в нынешней реинкарнации проекта его можно смело инсталлировать — ошибки довольно редки, да и те — некритичные. Всё сразу ставить смысла, наверное, нет, а вот некоторые приложения могут приглянуться.
К сожалению, портированные приложения далеко не всегда ведут себя так, как в родном окружении, или могут конфликтовать с другими программами. Поэтому единственным выходом, помимо установки «пингвиньей» ОС на голое железо, является эмулирование Linux. Для разового использования можно применить оболочку для QEMU под названием MobaLiveCD, которая без лишних телодвижений поможет запустить LiveCD/USB с различными дистрибутивами. Для постоянного использования лучше инсталлировать Linux в виртуальную машину: в VirtualBox или VMWare Player. Только не забудьте установить гостевые дополнения для более комфортной работы. Альтернативный вариант — применение VDI-решений с возможностью бесшовной интеграции в Windows Linux-приложений, запущенных на отдельном хосте, который также может быть виртуализирован.
Оптимальным вариантом для запуска Linux-приложений является использование среды coLinux. Она, условно говоря, запускает ядро Linux на уровне ядра Windows и имеет доступ ко всем аппаратным ресурсам машины, за счёт чего потерь производительности практически нет. При этом она сохраняет полную совместимость с Linux-приложениями, позволяя напрямую запускать их. На базе coLinux имеются готовые системы для быстрого запуска Portable Ubuntu Remix, Topologilinux (Slackware), SpeedLinux (различные дистрибутивы) и andLinux (Ubuntu). Единственным неприятным ограничением coLinux и всех пакетов на его основе является необходимость использования 32-битной версии Windows 2k/XP/2k3/Vista/7. В качестве примера разберём минимальную настройку Debian Squeeze. Первым делом установим свежую версию coLinux, отказавшись от загрузки готовых образов и попутно инсталлировав WinPcap.
Теперь необходимо скачать архив образа диска с Debian и распаковать его в ту папку, в которую был установлен coLinux. Размер диска rootfs_2gb.img при желании можно увеличить. Файл squeeze.conf придётся немного отредактировать. Изменений минимум — увеличить объём выделяемой RAM (mem), разрешить доступ к диску C: посредством COFS и добавить сетевой интерфейс TAP. Обратите внимание, что при использовании COFS лучше не обращаться одновременно к одним и тем же файлам с папками из Linux и Windows.
После запуска squeeze.bat вы попадёте в консоль Debian. Логин по умолчанию root, а пароля нет. С помощью nano отредактируем параметры сетевых интерфейсов в файле /etc/network/interfaces. Добавим секцию для eth1. В качестве IP-адреса используем любой, лишь бы не было пересечения с другими локальными подсетями. В Windows в настройках IPv4 сетевого адаптера TAP-Win32 Adapter V8 (coLinux) надо указать адрес из той же подсети.
Релизы
Microsoft выпустила хотя бы одну бета-версию исходной версии SFU до ее окончательной версии в феврале 1999 года. Этот выпуск на английском языке был поддержан на платформах Windows NT 4.0 SP3 + для x86 и Alpha. Это единственный известный релиз для поддержки Alpha. Он включал демонстрационную версию MKS Toolkit наряду со следующими компонентами:
- Telnet server
- Telnet client
- UNIX Utilities (from MKS)
- Client for NFS
- Server for NFS
- Server for NFS Authentication
- Windows NT to UNIX password-synchronization
- Help files and documentation
Эта вторая партия SFU была выпущена в апреле 2000 года и также была написана на английском языке; однако выпуск на японском языке появился всего два месяца спустя в июне 2000 года. Оба они работали на Windows NT 4.0 SP4 + и Windows 2000 на платформах x86 с Internet Explorer 4.01+. SFU 2.0 поддерживал следующие версии UNIX: Solaris 2.6+, HP-UX 10.2+, AIX 4.2+, Tru64 UNIX 5.0+ и Red Hat Linux 5.1+. Он включал следующие компоненты:
- Server for NFS (NFSServer)
- Client for NFS (NFSClient)
- Gateway for NFS (NFSGateway)
- Server for PCNFS (Pcnfsd)
- User Name Mapping (Mapsvc)
- Server for NFS Authentication (NFSServerAuth)
- Server for NIS (NIS)
- Telnet Client (TelnetClient)
- Telnet server (TelnetServer)
- Password synchronization (PasswdSync)
- ActiveState ActivePerl (Perl)
- UNIX utilities (UnixUtilities)
- Cron service (CronSvc)
- Rsh service (RshSvc)
Появились последующие обновленные версии OEM SFU 2.1, SFU 2.2 и SFU 2.3.
Эта версия, выпущенная в мае 2002 года, была первой версией, включающей подсистему Interix. Ранее Microsoft выпустила Interix 2.2 (фактически версия 2.2.5) в качестве отдельного продукта примерно в тот же период времени, что и SFU 2.0. Этот выпуск SFU включал версию Interix 3.0 (обычно называемую «версией», о которой сообщает uname -r) с внутренней версией Microsoft версии 7.0, которая относится к внутренним строкам сборки. Этот релиз Interix содержал значительные технические расширения из выпуска Interix 2.2, такие как корневая файловая система и функции setuid, которые были полностью основаны на разработке Interix Softway Systems под кодовым названием «Firebrand». Это также было выпущено на английском языке, а затем в октябре 2002 года появилось позднее японское издание, в котором была добавлена поддержка интернационализации. Оба поддерживаются Windows NT 4.0 SP6a +, Windows 2000 и Windows XP Professional на платформах x86 с Internet Explorer 5.0+. Инструмент MKS Toolkit больше не включался. Он включал следующие компоненты:
- Base Utilities for Interix (BaseUtils; including X11R5 utilities)
- UNIX Perl for Interix (UNIXPerl)
- Interix SDK (InterixSDK; including headers and libraries for development and a wrapper for Visual Studio compiler)
- GNU Utilities for Interix (GNUUtils, about 9 utilities in total)
- GNU SDK for Interix (GNUSDK; including gcc and g++)
- NFS Client for Windows (NFSClient)
- NFS Gateway for Windows (NFSGateway)
- NFS Server for Windows (NFSServer)
- NIS Server for Windows (NIS)
- Password Synchronization (PasswdSync)
- Windows Remote Shell Service (RshSvc)
- Telnet Server for Windows (TelnetServer)
- NFS User Name Mapping (Mapsvc)
- NFS Authentication Server (NFSServerAuth)
- PCNFS Server (Pcnfsd)
- ActiveState Perl (Perl)
Это был окончательный выпуск SFU и единственный выпуск, который будет распространяться бесплатно. Он был выпущен в январе 2004 года и включал как английскую, так и японскую версии для Windows 2000, Windows XP Professional и Windows Server 2003 (только оригинальная версия [a]) на платформах x86 с Internet Explorer 5.0+. Он включал в себя подсистему Interix release 3.5 (build version 8.0), добавляющую поддержку интернационализации (по крайней мере, для английской версии, которая до сих пор не была такой) и потоковой POSIX. Этот выпуск можно было установить только в файловую систему NTFS (более ранние версии поддерживали FAT, это было для улучшения требований безопасности файлов в Interix 3.5). Следующие версии UNIX поддерживались для компонентов NFS: Solaris 7 и 8, Red Hat Linux 8.0, AIX 5L 5.2 и HP-UX 11i. Он включал следующие компоненты:
- Base Utilities for Interix (BaseUtils; including X11R6 and X11R5 utilities)
- UNIX Perl for Interix (UNIXPerl)
- Interix SDK (InterixSDK; including headers and libraries for development and a wrapper for Visual Studio compiler)
- GNU Utilities for Interix (GNUUtils, again about 9 utilities)
- GNU SDK for Interix (GNUSDK; including gcc and g++)
- NFS Client for Windows (NFSClient)
- NFS Gateway for Windows (NFSGateway)
- NFS Server for Windows (NFSServer)
- NIS Server for Windows (NIS)
- Password synchronization (PasswdSync)
- Windows Remote Shell Service (RshSvc)
- Telnet Server for Windows (TelnetServer)
- NFS User Name Mapping (Mapsvc)
- NFS Authentication Server (NFSServerAuth)
- PCNFS server (Pcnfsd)
- ActiveState Perl (Perl)
Microsoft не намерена выпускать дополнительные автономные версии SFU, вместо этого, вместо интегрированного SUA. По состоянию на 18 августа 2016 года v3.5 недоступен из предоставленного Microsoft Link. Общая поддержка будет продолжаться до 2011 года; расширенная поддержка до 2014 года.
Известные проблемы
Перевод символов должен использоваться для размещения имен файлов, которые включают двоеточие (:) или другие символы, которые не соответствуют соглашениям об именах файловых систем Windows. Файлы с таким же именем, но разные случаи также не разрешены по умолчанию, но могут быть включены при установке с побочным эффектом создания файловой системы базового раздела с учетом регистра, даже для подсистемы Win32.
Сетевая аутентификация для систем UNIX основана на небезопасном протоколе NIS (для аутентификации на основе LDAP и Kerberos требуется стороннее решение). Корпорация Майкрософт выпустила несколько исправлений для служб Windows для UNIX и по крайней мере одно обновление безопасности (KB939778). Утилиты GNU Project находятся на нескольких версиях старше последних. Отдельный порт современных утилит Debian был запущен в 2007 году, но, по-видимому, оставлен в 2009 году. Некоторые из утилит обработки текста в SUA (например, awk) несовместимы с Unicode или текстовыми файлами с широким символом.
Нет версии Windows Services для UNIX для Windows XP Professional x64 Edition.