Home Research &
Strategy Consulting
Interop
Technology Center
Learning
Center
SUA Articles SUA Community
Forums
Tool
Warehouse
About
Interop Systems

SFU to SUA, IDMU, NFS & Others on Windows

by Rodney Ruddock

Whither Services for Unix (SFU)?

Way back in 1999 when Microsoft acquired Interix from Softway Systems many people predicted that Interix would get buried by the Windows people. After all, Interix is a Unix system to be run on the Window OS! Conspiracy theorists were having a heyday.

It took a few years before Services for Unix (SFU) version 3.0 was released with Interix, NFS client, NFS server, User Name Management (NIS) and NFS Gateway to provide a comprehensive Unix solution on the Windows OS. SFU 3.5 was the next release with even more functionality. For many people the 3.5 release was very exciting because SFU became freely available for everyone. Clearly Interix and SFU were not getting buried. Microsoft was not only keeping SFU going, but was improving and expanding it. The additional Unix functionality was also getting more and more popular with IT departments working in a mixed OS environment.

Then Microsoft announced that most of the components of SFU were being integrated into the Windows OS releases. Not only is it all free, but available as part of the base installation of Windows. This started with the release of Windows Server 2003/R2. Of course it meant that SFU would have no more releases; that would be redundant. Though SFU 3.5 is still available until 2009 and Microsoft is continuing to support SFU until the year 2011.

It's not so much that SFU has become end-of-line, but that it has been allowed to advance to the next level. By being part of the Windows OS release everything that was SFU has to be taken even more seriously. With the recent release of Vista the components can be found in the Ultimate and Enterprise versions. The upcoming Windows 2008 Server release will also have all of these components. Since these are all part of the OS now they become "features".

Being integrated into the Windows OS release meant some name changes for some the components (now features). NFS client and server are still NFS client and server. User Name Mapping has been renamed Identity Management. Interix now goes by the moniker SUA (Subsystem for Unix-based Applications) but the system will continue to identify itself as "Interix" for clear compatibility with programs, scripts and makefiles.

Installing SUA, NFS, etc. on Windows OS

To install any of the components/features on Windows 2003/R2, Vista or Longhorn is very simple. No extra CD's or DVD's required. From the Control Panel start the "Program and Features" application (formerly known as "Add/Remove Programs"). Then select from the left panel "Turn Windows features on or off". After a few seconds a popup window will list all of the currently active features. Scroll through the list make sure the features you are interested in having active are checkmarked. Some of the features are only available on the Server versions. Here's the list as it appears on Vista:

  • Services for NFS to install NFS client and matching administrative tools
  • Server for NFS (plus UNM, not available on workstations)
  • Subsystem for Unix-based Applications for SUA/Interix
  • Identity Management for Unix (IDMU)

Here'ss the list as it appears on Window 2003 R2. The selection is more awkward on R2 for most items. For SUA the selection is the same as with Vista. For the other components you need to select "File and Print Services" to get the next submenu:

  • Mapping Server (UNM)
  • NFS Admin
  • NFS Client
  • NFS Server
  • Server for NFS authentication
  • Identity Management for Unix (IDMU)

Once these features have installed you will need to reboot the machine. After the reboot you will have some configuration to do that will vary depending on which features you choose. If you have chosen SUA then you will need to download the Utilities & SDK package to get the shells, utilities, libraries and manual pages. This can easily be done with an entry in the Start Menu under All Programs, Subsystem for Unix-based Applications.

When you install NFS it is always recommended that you install Identity Management (formerly known as User Name Mapping; UNM) so that Windows ID's can be mapped to Unix ID and the reverse.

What is Interix/SUA (Subsystem for Unix-based Applications)?

Interix is the Unix-like system that runs on Windows OS. It runs as a peer system to the Win32 environment that most people simply call Windows. Interix has the same access to the NT kernel, the file systems, networking and security systems that Win32 does.

The development of Interix began in the early 1990's with Softway Systems under the product name OpenNT. Softway developed the Interix system and utilities with the goal of meeting Unix specifications in the standards and de facto. While Microsoft had originally developed a strictly POSIX compliant system for NT 3.0, it lacked utilities and many supporting features needed beyond POSIX to make a Unix system. Examples of de facto standards that most Unix systems simply cannot do without that are incorporated into Interix are Berkeley sockets and pseudo-terminals. Other standards included the X/Open standards (e.g. XCU) and matching test suites.

The resulting environment of functionality meant that when you logged into an Interix system by, for example, telnet, the shell and utilities gave the same feel as running on a BSD based system. With over 350 utilities plus SDK's for developers covering X-Windows, Motif, OpenGL, libc, etc. Interix became another Unix-like platform that Unix software could be ported to.

A big win is that it's on the same machine that's running Win32. This means that on one machine Win32 and Unix applications can run side-by-side. Cut and paste from an X-Window to a Word document with ease. Collect input from a Win32 program and analyze it with a set of Unix tools &em; or the reverse. One of the early example of inter-system communication used the Unix 'tides' program to generate information placed into an Excel spreadsheet.

For administrators this gives them the ability to have a common base of tools and functionality available across a heterogeneous computing environment. Connecting by telnet or ssh to and from all machines is good. Even better is being able to run the same scripts on Interix as on Solaris or Linux to complete a task. No more getting bogged down in a GUI or wasting time repeating tasks that can be automated in scripts.

What is NFS (Network File System)?

NFS is the Network File System developed by Sun Microsystems in the 1980's for sharing disk drives across a network. It was developed for use with Unix systems. It also became a standard at many sites for providing network disks to PC’s as well. NFS has an excellent track record for network drive access as well as management of these resources.

Meanwhile on Windows SMB evolved to be a standard it has some shortcomings that have never been addressed. The advent of SAMBA (SMB on Unix) was an attempt to bridge SMB shared disks to Unix machines. However, SAMBA cannot overcome the shortcomings of SMB. Couple of these shortcomings include the lack of case-sensitivity in file and directory names and inconsistent file information. These shortcomings make it difficult to use SMB in a mixed OS environment. On the other hand, NFS has shown itself to work better in this mixed OS environment.

Coupled with the use of NFS on Windows is the User Name Mapping (UNM) service. This allows the mapping of Windows Security ID's to Unix ID's both to and from Windows. By doing this the Windows system communicates with the Unix system in the same, common language for security access to the files. The mapping of the ID's can be done in a simple manner and also in more complex arrangements with multiple systems. Without UNM the access to the disks must be done in an anonymous mode that gives a reduced security for the shared disks.

Identity Management for Unix (IDMU)

Identity Management for Unix (IDMU) is also known as Server for NIS (Network Information System) and is integrated with Active Directory (AD). This allows for the control of NIS domains from a Windows machine. IDMU does not allow for a Windows machine or an AD domain to be placed under the control of a Unix NIS server though. Included with IDMU is Password Synchronization to allow AD and NIS to coordinate password updates allowing for more uniform user control in a heterogeneous environment.

Setting up a Working Environment with SUA/Interix

With SUA/Interix installed as one of the additional Windows OS components the next order of business is to install the commands and utilities for command line usage. At the same time, optionally, the Software Development Kit (SDK) can be installed if you will be doing software development. From the Start menu, under All Programs then under Subsystem for Unix-based Applications you can find the link that will automatically retrieve the commands and SDK from the Microsoft web site.

When doing the installation there is the option of working with the default installation or using a custom installation. The custom installation gives you the best selection for what to install or not install without a lot of complication. For strictly command line usage the installation of the "Base Utilities" and "GNU utilities" together gives the widest set of programs. The "SVR5 Utilities" are based on the Unix System V utilities and not as commonly used unless the site has a strong System V emphasis already. The Base and GNU utilities provide what programs with options that most Unix and Linux users will already be familiar with.

The SDK, similar to the utilities, has two selections: "Base SDK" and "GNU SDK". The Base SDK is a must for developers to install because this provides all of the needed include files, SDK manual pages, static libraries and utilities for building applications. The Base SDK includes wrapper scripts (c89 & cc) to work with Microsoft Visual Studio's C/C++ compiler (MSVC). It's recommended to have MSVC installed before installing the SDK so that the SDK sees MSVC and does some automatic configuration. The GNU SDK will install the gcc compiler suite (which includes g++) and shared libraries. With gcc you will be able to create Unix style shared libraries. Included are the X11 libraries used for creating Unix GUI applications.

For both users and developers additional programs and libraries from the F/OSS world are desired such as bash, OpenSSH and an X-server. These items don't normally ship with SUA/Interix. However, they can easily be obtained from third-parties at several different levels: free, low-cost and premium. One of the key sites for getting these third-party programs is the SUA Community website (www.suacommunity.com/).