Do-more-with-less IT environments are increasingly characterized by a hodgepodge of UNIX/Linux servers and Windows desktops. To enable multiplatform success, the typical administrator runs many computers, each running a different platform to provide full control over the separate environments. These extra computers are probably expensive and bulky, and they require multiple monitors and keyboard-video-mouse (KVM) equipment. More recently, administrators have been turning to virtual machines to accomplish similar functionality, minus the extra computers. However, virtual machines don't directly solve all interoperability concerns, such as single sign-on (SSO) via Windows-to-UNIX user-account mapping, file sharing, and efficiently managing multiple platforms from one computer.
Microsoft released the first version of Services for UNIX (SFU) in 1999 to help address such interoperability concerns. SFU helps ease UNIX developers' transition to Windows platforms andthrough a myriad of toolsprovides help to Windows administrators who need to concurrently support UNIX platforms. The most recent versionSFU 3.5gives Windows users a toolkit of applications with which to create a true UNIX environment that blends impressively with the Windows OS. SFU also lets you run UNIX shell scripts and programs alongside your Windows applications. And its networking features provide Network Information Service (NIS) functionality and NFS tools, which let you use your Windows workstations to access UNIX systems. Let's take a look at this valuable free tool and explore its potential benefits in your environment.
SFU Overview
SFU's corea POSIX-compliant and fully integrated Interix subsystemlets you compile and natively run UNIX applications from your Windows platform. SFU 3.5 boasts dramatic performance improvements over earlier SFU versions because it's a true subsystem and not just a UNIX emulator. Therefore, your UNIX programs will run faster, use your hardware more efficiently, and avoid the requirement of a separate (and slower) software layer to emulate the UNIX environment.
By default, SFU installs its files into C:\SFU. However, when you invoke a UNIX shell, the file system is single rootedthat is, all the files appear to UNIX programs in their traditional locations (e.g., /etc, /bin, /usr)thereby simplifying the porting of UNIX programs to SFU because file locations might not need to change. You can still access your Windows files from the UNIX shell by changing directories to, for example, /dev/fs/C. Also, from the SFU UNIX shells, you can launch your native Win32 programs.
SFU provides an NFS client that lets you mount NFS exports. (Think of an NFS export as a Windows share.) Users of older versions of SFU will be happy to know that SFU 3.5 supports such common UNIX features as setuid, setgid, sticky bits, and symbolic links. Overall, Interix includes more than 300 UNIX utilities. You can add to this number by downloading other popular UNIX tools compiled for SFU 3.5such as Apache, bind, bison, bzip2, GIMP, NEdit, OpenSSH, and OpenSSLfrom the Interop Systems Tools Warehouse (http://www.interop
systems.com/tools/warehouse.htm). Linux users comfortable with the BASH shell will appreciate the ability to download and install a BASH shell compiled for SFU 3.5.
For developers, the Interix software development kit (SDK) supports more than 2000 UNIX APIs and includes C and Korn shells, as well as a Perl 5.6.1 interpreter. Programming languages include C, C++, Fortran 77, and Perl. SFU 3.5 also includes support for threading applications (pthreads).
SFU Networking Services
SFU 3.5 includes multifaceted support for NFS, including Gateway for NFS, NFS Server, and NFS Client applications thattogether with the User Name Mapping servicelet you use local or Active Directory (AD) user accounts to share files with UNIX systems. With these tools, you can access NFS exports from Windows workstations and even create actual NFS exports in Windows. These implementations leverage the Windows security model by using access control entries (ACEs) on a per-user basis through the User Name Mapping service. Therefore, through the User Name Mapping service, you can use a UNIX account name to access a Windows resource or a Windows account name to access a UNIX resource. The User Name Mapping service maps UNIX user ID (UID) or group ID (GID) entities to Windows local or AD user or group objects.
NIS provides a centralized network-logon database for UNIX that's similar to the Windows domain model. SFU provides an AD-integrated NIS server, so you can use your domain username and password to authenticate to a UNIX client configured to use NIS. SFU also includes tools for one-way or two-way password synchronization between Windows and UNIX systems, as well as a Windows Telnet server replacement.
Installing SFU 3.5
SFU 3.5 runs on Windows Server 2003, Windows XP, and Windows 2000. (Microsoft tested SFU 3.5 UNIX interoperability against Solaris 7 and Solaris 8 HP-UX 11i, AIX 5L 5.2, and Red Hat Linux 8.0.) To begin installation, download SFU 3.5 from Microsoft (http://www.microsoft.com/windows/sfu/downloads/default.asp) and extract the 220MB installation files.
SFU includes several client and server features, so before you run the setup program you need to decide which components you want to install and where you want to install them. For example, you can install the SFU 3.5 Interix subsystem and NFS Client application on a Windows workstation to take advantage of the Interix environment and tools to mount UNIX NFS exports. For broader functionality, install the Gateway for NFS or NIS Server applications to provide SFU interoperability services to a larger number of cross-platform systems. In the next few sections, I walk you through the configuration of some of these services on both servers and workstations.
First, we'll install and configure the NFS and NIS services on a Windows 2003 domain controller (DC). Then, we'll look at installing and using the Interix environment on a Windows XP workstation. All the components require an NTFS file system.