Review: Windows Services for Unix 3.0

109

– by Russell Pavlicek
Microsoft may not be ready to announce its own Linux distribution, but it does sell a product with appeal for POSIX fans: Windows Services for Unix 3.0. Designed as a migration tool to assist organizations moving from Unix to Windows, SFU is also useful for organizations that need to live with both Unix and Windows.

SFU runs under Windows to emulate a Unix environment. It provides more than 300 utilities, including a software development kit said to support nearly 2,000 Unix APIs, a few GNU tools (including the gcc, g++, and g77 compilers), many POSIX-2-compliant utilities, some scripting tools (including awk, sed, perl, and Tcl/Tk) and two shells (C shell and Korn shell; sorry, bash is not included). ActiveState‘s version of Perl is also included as an option.

On top of this, SFU piles a few Unix-like services implemented using
Microsoft technologies. NFS is supported as a client, server, and a
gateway. NIS passwords support MD5 encryption and are synchronized with
Microsoft passwords. SFU also includes IPv6 telnet client and server
support and sendmail support.

Going for a test drive

I found some clear value in SFU. For example, the option of running NFS in gateway mode can be helpful in a heterogeneous commputing environment. The gateway allows SMB clients to access directories served up by NFS. If for some reason it is impractical to use Samba to serve these resources on the Unix machine, an SFU gateway could be a simple way to make NFS shares accessible to Windows machines.

Likewise, the ability to run an actual NFS client or server on the machine allows Windows to better interoperate with Unix machines. Note that you have a choice of installing either the NFS server or the NFS gateway, but not both on the same machine.

SFU provides a version of NIS that relies on Active Directory. As such,
the authentication for all network services can be controlled through one
service. It also provides user name mapping; a particular Windows domain
login can be equated with a particular Unix username. This is a handy
capability for situations where this relationship needs to be handled by a
Windows machine.

Another key element of SFU is the shell capability. A menu entry
simplifies the task of starting a Korn shell window. Clicking on the
entry starts up an environment quite similar to a Unix-based xterm.

If you are a Linux techie rather than a Unix one, you may become
frustrated that many of the arguments for command line utilities do not
map exactly to their Linux equivalent. For example, if you are used to
using df -h to see a more human-readable output of disk space, you won’t
find that here. The product claims to conform to the IEEE 1003.2-1992
standard for command line utilities. The GNU version of utilities on most
Linux distributions includes additional enhancements not found in this
product. The SFU utilities feel like those I used to use in
Digital Unix many years ago.

I found the lack of the bash shell personally frustrating. Bash comes
preconfigured for command line editing using the arrow keys and command
completion using the Tab key. The Korn shell feels old-fashioned to me
without these attributes, but I expect some Korn shell devotees will
feel at home.

For remote access, SFU includes telnet, rsh, and ftp commands. This strikes me as ironic, since most Linux distributions seem to be discouraging the use of telnet and rsh and pushing ssh instead. The SFU solution may not be exactly state of the art, but it does work.

Installation considerations

Before you try to install SFU on some Windows PC you have lying around, take note: this is a server offering. Linux users are used to “server” being a matter of configuration; you can easily make a first-generation Pentium with 48MB of memory into a Linux server. But in the Microsoft world, “server” is a product line with a non-trivial price tag.

If you want to install Windows Services for Unix, you need to have a
machine running a suitable Windows server operating system: Windows NT
Workstation or Server 4.0 (with Service Pack 6a), Windows 2000
Professional or Server, Windows XP Professional, or Windows
Server 2003. Note that Windows XP Home and the legacy DOS-based Windows
9x/ME products need not apply. We used a Windows Server 2003 box.

Software installation was simple and
uneventful. Click a few boxes, sign your life away with a EULA, and
things install. Of course, you need to make sure that everything you need
is being installed. Starting with a default installation, I quickly
realized that the GNU gcc, g++, and g77 compilers were not installed. I
added them afterwards, but I found it interesting that the company that
mastered the art of the click-through software license did not elect
to do so with the relevant GNU licenses. Instead of a typical
click-through license (as Microsoft has for its own license and the
one for ActiveState’s ActivePerl), you get a slash screen saying
that the libraries are covered by the LGPL and you should review the copy
of the license on the CD before you use the software.

Adding the forgotten software from SFU requires a system reboot afterwards for it to take effect. This is not exactly the situation you want if you need to add software to a running server, so try to make sure that you have everything you need before bringing the server into service.

Though I had a training CD which was provided in an SFU evaluation kit, it refused to
work correctly on the Windows 2003 machine. It played the first lesson
properly, but absolutely refused to advance to any subsequent lesson. I
finally had to load the CD on a Windows ME machine to watch the
training videos, which proved moderately useful.

One thing that most Unix and Linux folks may miss is the presence of an X
Window System server. A client is provided, but no server. You can find third-party
products
that provide this functionality.

Even though SFU contains more than 300 utilities, I kept finding myself
reaching for commands that did not exist. Personal favorites like w,
free, and ifconfig are nowhere to be found.

Is it worthwhile?

While SFU may work as a migration tool for Unix users, organizations that want to migrate from Linux to
Windows will probably feel shortchanged by SFU’s POSIX-style utilities, which are shallow compared to the richer GNU and BSD utilities found in most Linux distributions. However, experienced Unix
administrators may find the presence of Unix shells and scripting tools a major upgrade to Windows.

If the issue is not migration but coexistance in a heterogeneous environment, SFU’s NFS capabilities have value, as does its cross-platform authentication of NIS with a single point of management in Active Directory. If your organization needs to work with feet in both puddles — Linux/Unix and Windows — these facilities may reduce your burden of administration.

Russell Pavlicek is a consultant and author dealing with Linux in business. He is a panelist on The Linux Show weekly webcast, and is a contributor to a number of Linux Web sites. He formerly wrote the Open Source column for InfoWorld magazine.