Windows Services for UNIX
Windows Services for UNIX is a discontinued software package produced by Microsoft which provided a Unix environment on Windows NT and some of its immediate successor operating-systems.
SFU 1.0 and 2.0 used the MKS Toolkit; starting with SFU 3.0, SFU included the Interix subsystem, which was acquired by Microsoft in 1999 from US-based Softway Systems as part of an asset acquisition. SFU 3.5 was the last release and was available as a free download from Microsoft. Windows Server 2003 R2 included most of the former SFU components, naming the Interix subsystem component Subsystem for UNIX-based Applications. In Windows Server 2008 and high-end versions of both Windows Vista and Windows 7, a minimal Interix SUA was included, but most of the other SFU utilities had to be downloaded separately from Microsoft's web site.
The Interix subsystem included in SFU 3.0 and 3.5 and later released as SUA Windows components provided header files and libraries that made it easier to recompile or port Unix applications for use on Windows; they did not make Linux or other Unix binaries compatible with Windows binaries. Like the Microsoft POSIX subsystem that Interix replaced, it is best thought of as a distinct Unix-like platform.
Components
As of SFU 3.5, it contained:- Over 350 Unix utilities such as vi, ksh, csh, ls, cat, awk, grep, kill, etc.
- GCC 3.3 compiler, includes and libraries
- A cc-like wrapper for Microsoft Visual Studio command-line C/C++ compiler
- GDB debugger
- Perl
- NFS server and client
- A pcnfsd daemon
- X11 tools and libraries
- Tools for making NFS mount-points appear as Windows shares, and vice versa
- A NIS server capability linked with Active Directory
- Some Windows/Unix authentication information-synchronization tools
Although SFU includes X Window System client libraries and applications, it does not contain a native X server. Administrators may configure any of the numerous third-party Windows X servers. Fully featured free options include Cygwin/X, Xming and WeirdX.
Releases
1.0
Microsoft produced at least one beta release of the initial version of SFU before its final release in February 1999. This release, in English only, was supported on the Windows NT 4.0 SP3+ for x86 and Alpha platforms. This is the only known release to support Alpha. It included a demonstration version of the MKS Toolkit along with the following components:- Telnet server
- Telnet client
- UNIX Utilities
- Client for NFS
- Server for NFS
- Server for NFS Authentication
- Windows NT to UNIX password-synchronization
- Help files and documentation
2.0
- Server for NFS
- Client for NFS
- Gateway for NFS
- Server for PCNFS
- User Name Mapping
- Server for NFS Authentication
- Server for NIS
- Telnet Client
- Telnet server
- Password synchronization
- ActiveState ActivePerl
- UNIX utilities
- Cron service
- Rsh service
3.0
This version, released in May 2002, was the first release to include the Interix subsystem. Previously Microsoft had released Interix 2.2 as a separate product around the same time frame as SFU 2.0. This SFU release included Interix release 3.0 with an internal Microsoft version of 7.0 that relates to internal build sequences. This Interix release contained significant technical extensions from the Interix 2.2 release such as a rooted file system and setuid functionality that were entirely based on the Softway Systems' Interix development codenamed "Firebrand". This was also released in English and followed by a later release in Japanese in October 2002, adding internationalization support. Both supported Windows NT 4.0 SP6a+, Windows 2000, and Windows XP Professional on x86 platforms with Internet Explorer 5.0+. The MKS Toolkit was no longer included. It included the following components:- Base Utilities for Interix
- UNIX Perl for Interix
- Interix SDK
- GNU Utilities for Interix
- GNU SDK for Interix
- NFS Client for Windows
- NFS Gateway for Windows
- NFS Server for Windows
- NIS Server for Windows
- Password Synchronization
- Windows Remote Shell Service
- Telnet Server for Windows
- NFS User Name Mapping
- NFS Authentication Server
- PCNFS Server
- ActiveState Perl
3.5
- Base Utilities for Interix
- UNIX Perl for Interix
- Interix SDK
- GNU Utilities for Interix
- GNU SDK for Interix
- NFS Client for Windows
- NFS Gateway for Windows
- NFS Server for Windows
- NIS Server for Windows
- Password synchronization
- Windows Remote Shell Service
- Telnet Server for Windows
- NFS User Name Mapping
- NFS Authentication Server
- PCNFS server
- ActiveState Perl
Known problems
Character translation must be used to accommodate filenames which include a colon or other characters that do not comply with the naming conventions of Windows file-systems. Files with the same name but different cases are also not allowed by default, but can be enabled on installation with the side-effect of making the underlying partition's filesystem case-sensitive, even for the Win32 subsystem.Network authentication for UNIX systems relies on the insecure NIS protocol. Microsoft has released several hotfixes for Windows Services for UNIX, and at least one Security Update. The GNU Project utilities are several versions older than the latest ones. A separate port of the up-to-date Debian utilities was started in 2007, but apparently abandoned in 2009. Several of the text processing utilities in SUA are not compatible with Unicode or wide character text files.
No version of Windows Services for UNIX is available for Windows XP Professional x64 Edition.
Legacy
contains most SFU components, namely Microsoft Services for Network File System, Subsystem for UNIX-based Applications, and Identity Management for UNIX. The July 2007 SFU 3.5 Security Update updated posix.exe and related files to match the SUA version.Unlike the SFU, the SUA version included in Windows Server 2003 R2 has 64-bit support and allows linking of Win32 libraries to SUA applications.
Windows Vista and Windows 7 Enterprise and Ultimate Editions also contain the Services for Unix components, now called the Subsystem for UNIX-based applications, and Client for NFS v3. Users must download the utilities and SDK separately. However, the server components from the SFU product line are not included–these are included in Server editions of Windows.
The NFS client feature and server features are separate from the SUA in Windows 7 and 2008, respectively. In the desktop version, NFS is only available in the Enterprise and Ultimate editions. The free reference implementation of NFS 4.1 for Windows, the development of which was sponsored by Microsoft, does work on lower-end versions of Windows 7, but requires more involved installation.
In Windows 8, the NFS client gained krb5p support. In Windows 7, Kerberos 5 was supported for authentication, but only packet integrity checking was available for data. The maximum block/buffer size was also increased from 32 KB to 1 MB in Windows 8.
Windows Server 2012 added support for NFS 4.1 server. The new implementation is kernel-based but many optional features from NFS4 are not implemented, including ACLs, pNFS etc. There is however support in PowerShell for mapping user identities.
SUA was deprecated after the release of Windows 8 Developer Preview. It was included in Windows 8 Enterprise and completely removed in Windows 8.1, including the Enterprise edition. It was also deprecated but still available in Windows Server 2012, but removed from Windows Server 2012 R2. The NFS server is still supported in Windows Server 2012 R2.