Softpanorama
May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Microsoft Services For Unix
(Microsoft Linux for Windows)

News See also Recommended Links Recommended Articles Packages installation Community Toolbox FAQs X11 for SFU
SFU shell Usage of Symbolic Links with SFU Telnet Server NFS_Support Syslog NIS-Active directory bridge Apache PHP
  mc in SFU Running Perl Scripts in SFU Recommended profile and rc files Windows  Reskit History Humor Etc
Microsoft Windows Services for UNIX (SFU) 3.5 provides emulation of UNIX–based environments.  It is, a way, Microsoft "Linux for Windows": Interix, a key component of Services for UNIX version, is a complete Unix subsystem environment for a Windows machine.

It not an emulation; it is a subsystem that integrates with the Windows kernel, just as the Win32 subsystem does. As Simon Bisson wrote in his paper "Windows Services for UNIX "

Servers based on Intel’s x86 architecture are a commodity: cheap to buy and cheap to run, they have become the life-blood of the data centre. Once a few high-end UNIX systems sat and ran your business; now they’re surrounded by humming racks of cheap x86 systems, and they’re coming to the end of their lives. So how do you migrate your existing applications to new servers, and at the same time link your new applications to your legacy systems, without causing disruption to your business processes?

One option is to switch to an x86 variant of UNIX, such as Linux. However if you’ve already chosen Microsoft Windows as your main platform, that will mean bringing in new expertise, and another layer of system administration tools. Microsoft’s Services for UNIX (SFU) 3.5, which is available as a free download, is intended to give you the best of both worlds: a familiar set of UNIX tools so your existing UNIX staff can work with Windows servers with only minimal training; and tools to integrate Windows authentication and Windows file systems with your UNIX systems. Install SFU on a PC or x86-based server and you’ll find open source tools (including the Perl scripting language) and familiar UNIX utilities happily co-existing alongside Active Directory and the Windows interface.

A 223Mb download, SFU mixes several different tools. At the heart of SFU is the Interix subsystem, built on technology which Microsoft acquired in 1999 from Softway Systems and released as Microsoft Interix 2.2. This runs on top of the Windows kernel at the same level as the Win32 subsystem, and allows UNIX applications to run on Windows. An integral part of SFU since version 3.0, the Interix subsystem is now supported by more than 3,000 UNIX utilities and tools (including Windows services that behave like their UNIX equivalents).

... ... ...

SFU can help with complex migrations. The last 15 years have seen five or six different developers working on Star-Track, a vehicle tracking system for Group 4 Securitas. Never intended to be cross-platform, the application was developed for Solaris, though in 1996 Dr Adrian Bowen, the Systems Development Manager, ported it to RedHat Linux, a process he remembers as being “mostly painless”.

Scalability concerns forced a rethink of the system design, and in order to fit in with corporate IT policies the development team decided to port the application to Windows using SFU, rather than completely rewriting the application. Dr Bowen found that the source code for the Star-Track application ported and compiled to SFU without any major work. “It was the same amount of work as when I’d moved it from Solaris to Linux. It looks like a variant of Linux.” Dealing with the obsolete XView windows console used by the application was a little trickier, but it still took less than a week. The dynamic linking and loading support in SFU 3.5 meant the team could move the user interface to a Tk toolkit. Dr Bowen just downloaded it, ran the make files and then ran the code on SFU.

Overall performance gains for NFS implementation in SFU 3.5 are 50%. Among new features:

When you install Interix, you install a new extended subsystem that replaces the POSIX subsystem provided by Microsoft with Windows. A standard SFU 3.5 installation has the following directory structure in “/”:
Mapper/
admin/
common/    -- this is directory with many classic Unix utilties; should be in PATH
docs/
help/
log/
nfs/
proc/
usr/
TlntW2K/
bin/
dev/
etc/
lib -> usr/lib
net/
opt/
etc/
tmp/
usr/
	X11 -> X11R6
	X11R6/
	contrib/
	lib/
	sbin/
	X11R5/
	bin -> ../bin
	examples/
	local/
	share/  
var/
	mail/
	spool/
	adm/
	log/
It conforms to the POSIX.1 and POSIX.2 standards.  The Interix subsystem includes both Korn and C shells, more than 300 UNIX utilities, and Perl 5.6.1 compiled under Interix. These give UNIX developers and administrators a broad, familiar, and compatible scripting environment. The utilities include all classic Unix utilities awk, grep, sed, tr, cut, tar, cpio, and a host of others, all of which work as the UNIX administrator or programmer expects. Plus, with a single rooted file system, utilities and configuration files are in the standard UNIX locations.

SFU environment provides the most important Unix features including pipes, hard file links, symbolic file links, networking services, and X11 graphical support through the X Window System.

Also you can get  many popular open source packages (see   Community Toolbox; free registration required). Among command line utilities that are  provided in the community toolbox are bash, vim, expect,  screen, mc, and many others.

To install tools from the community toolbox  you need to use utilities pkg_update, pkg_info, pkg_delete.. Here is a relevant quote from  Package Install document:

With SFU 3.5 all "/Tools" applications are being packaged and we keep updating the versions too.  A package is used by the installer to correctly place all the binary and data files.  It also records version numbers, file locations and check sums for verification, uninstalls and does version updates.  By using the installer all other packages that a particular application depends on will be installed at the same time.  The installer is based on the BSD package system.  We have made several changes and updates to it over the years, but it has essentially the same "flavor" as installers with BSD or Sun.

The first thing to do to is "bootstrap" the installer to your system.
If you have a 32-bit system (most people do) then download the  Bootstrap installer (x86) file.
If you have a 64-bit system (AMD64, not IA64) then download the Bootstrap installer (AMD64) file.
If you have a 32-bit or 64-bit Vista system then download the Bootstrap installer (Vista) file.
The installer can be run by the Administrator or by a member of the Administrators group.
This file is a self-installing shell script. So run it as:

% sh pkg-current-bin35.sh
or
% sh pkg-current-bin52authenticamd.sh
or
% sh pkg-current-bin60.sh

(If you are using csh/tcsh remember to 'rehash' after this).

Now all of the installer components are installed.  This includes the utilities pkg_update, pkg_info, pkg_delete, pkg_add, pkg_create and pkg_sign.  You can learn more about each of these utilities by reading their man pages.

Doing an Installation

To install a package use the pkg_update utility.  For example, if you wish to install bash you will enter the following command:

pkg_update -L bash

This command will automatically download and install the most current bash package.  If the package needs to have another package installed with it, that package will be downloaded and installed too.  Pkg_update also takes care of which machine architecture you are using and what is the most current version of the software.

Among daemons it is interesting to note that SFU contains syslogd daemon that can forward messages to LOGHOST.

SFU provide the directory /dev/fs, that has all the drive letters "mounted" under it, including C, the usual installation in Windows. Cron is working under SFU and can run scheduled applications and scripts just like in Unix. The #! notation in Interix allows the script to name its own interpreter, and typically Unix shell scripts do NOT require any modification.

It is far from being perfect, but it is free and it does provide several useful features that are missing in Windows desktop: When you start using SFU the first thing that comes to your attention is that while you can invoke Korn shell, the behavior of the terminal (command line) window is different. First of all it does not understand the middle button of the mouse (copy in classic Unix terminal window).  It uses windows copy style (select, enter, rightclick).

The second thing is that to run scripts from within the environment you need to use the internal cron. Attempts to schedule anything from windows scheduler face several problems. One of them is connected with the fact that you need to invoke posix.exe not just ksh, for example:

C:\WINNT\system32\posix.exe /u /c /bin/ksh -c /bin/ls
Internal cron approach is smoother, but there are some pitfalls too. For example, an attempt to use crontab with the authentication configured via passwd leads to some problems: the default user is Administrator which is not a default Unix account and it is not automatically mapped to root.
Welcome to the Interix UNIX utilities.

DISPLAY=localhost:0.0
$ crontab
============================
WARNING: User SERVER+Administrator does not have a valid password registered.
The cron daemon cannot execute your at, batch or crontab requests
unless you first register your current valid password.
To register it, please use 'crontab -p'.
============================

crontab -p

After you register crontab this way you can add scheduled tasks like in Unix. SFU ksh tried to load .profile and .kshrc from the user directory and those need to be provided. It complain unless .profile has reasonable permissions (not 777 ;-). If you are a user then your home directory will be
/dev/fs/C/Documents and Settings/username
Among scripting languages SFU 3.5 provides Perl 5.6.1 (upgrade to Perl 5.8 can be downloaded for Interix Tools site):

$ perl -v

This is perl, v5.6.1 built for x86-interix-thread

The following dynamic modules have been included:

This version is pretty adequate for most applications but, of course, does not understand extensions introduced in version 5.8.  This is actually ActiveState Perl implementation, and you can get a newer version of Interix Perl  from  the Interopsystems tool warehouse.

Perl  Version 5.8.3 for SFU 3.5
binary: /pkgs/3.5/perl-current-bin.tgz
src: /src/perl
Added: 2004-06-18
This is the latest stable release of the most popular scripting language, complete with the DBI database interface module, DBD::ODBC for connecting via ODBC, and DBD::Sybase to connect to any Sybase or SQL Server using FreeTDS.

 I am wondering if direct replacement by a newer version from ActiveState will also work.

Remember, SFU is a collection of UNIX software components. Some of it is Win32 based software (like NFS client and ActiveState Perl).  Some of it is Interix based software. Interix is a UNIX subsystem that runs on top of Windows. It is a completely separate subsystem from Win32.  In the Interix environment you use UNIX conventions and you expect  UNIX behavior.  In the Win32 environment, you use Windows conventions and you expect  Windows behavior.

When SFU initialize, like any Unix it assign values to $PATH, $MANPATH and some other variables.  Here are the values for PATH and MANPATH:

PATH=/bin:/opt/gcc.3.3/bin:/usr/contrib/bin:/usr/X11R6/bin:/usr/local/bin:/usr/contrib:b/win32/bin:/dev/fs/C/WINNT/system32:/dev/fs/C/SFU/common

MANPATH=/usr/share/man:/usr/X11R6/man:/usr/X11R5/man

Default terminal in SFU is not that great but you can install Midnight Commander (version mc 4.6.0) using precompiled binaries from SFU (I did it in old fashined way using binary packages, but probably a better was to do this is is to use package install).  In case you plan to use binary packages you will need 3 additional packages to get the necessary libraries (also available from  UNIX Tools Community)

gettext-current-bin.tar
glib-current-bin.tar
libiconv-current-bin.tar

Also a libiconv.so  libintl.so needs to be linked to /usr/local/lib

ln libintl.so.7.0 /usr/local/lib/libintl.so
ln libiconv.so.4.0 /usr/local/lib/libiconv.so

Also LD_LIBRARY_PATH env. variable needs to be added to the .profile:

export LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/X11R6/lib

Again, I did it in old-fashioned way but probably a better was to do this is is to use package install.

Usage of Symbolic Links with SFU

SFU supports symbolic links. One typical usage is to make /usr/local/bin  a symbolic link to /opt:

ln -s /usr/local/bin /opt

Another good trick is to link important/often used  Windows directories into /home tree, for example

ln -s "/dev/fs/C/Documents and Settings" /home/doc

Another Important use of symbolic links is to provide a more Windows–centric access to various drive letters: you can access these drives with a simple "/c" or "/C" instead of "/dev/fs/C".

Important use of symbolic links is to provide a more Windows–centric access to various drive letters: you can access these drives with a simple "/c" or "/C" instead of "/dev/fs/C".

For example

ln -s /dev/fs/C /C

ln -s /dev/fs/F /F

ln -s /dev/fs/F/Public_html /S

Telnet Server

In SFU 3.5, Microsoft has enhanced both the Telnet client and server to support IPv6 and additional international character sets. In addition, Microsoft has addressed a number of security issues, including zone checking before the issuing of NTLM credentials to prevent the use of NTLM outside of the trusted zone.

There have also been significant scalability improvements to the Telnet server, enabling more simultaneous sessions and users than in previous versions. Two separate Telnet servers are provided—a Windows Telnet server that runs as a Windows service and the telnetd server which runs as part of the Interix subsystem.

The Windows–based Telnet server replaces the one included with Windows 2000 and uses the Windows command line shell CMD.EXE as the default shell. In Windows XP and Windows Server 2003, the included Telnet server is not replaced, but additional administrative capabilities are provided through the SFU Administration application.

When the Interix telnetd is enabled (through /etc/inetd.conf), an Interix shell is used instead of the Windows shell. And as both Telnet servers will, by default, listen on the same port, the Windows Telnet service must be disabled before the telnetd daemon is enabled.


Top updates

Bulletin Latest Past week Past month
Google Search


Old News ;-)

[Aug 7, 2007] Expect plays a crucial role in network management  by Cameron Laird

31 Jul 2007 | www.ibm.com/developerworks

If you manage systems and networks, you need Expect.

More precisely, why would you want to be without Expect? It saves hours common tasks otherwise demand. Even if you already depend on Expect, though, you might not be aware of the capabilities described below.

Expect automates command-line interactions

You don't have to understand all of Expect to begin profiting from the tool; let's start with a concrete example of how Expect can simplify your work on AIX® or other operating systems:

Suppose you have logins on several UNIX® or UNIX-like hosts and you need to change the passwords of these accounts, but the accounts are not synchronized by Network Information Service (NIS), Lightweight Directory Access Protocol (LDAP), or some other mechanism that recognizes you're the same person logging in on each machine. Logging in to a specific host and running the appropriate passwd command doesn't take long—probably only a minute, in most cases. And you must log in "by hand," right, because there's no way to script your password?

Wrong. In fact, the standard Expect distribution (full distribution) includes a command-line tool (and a manual page describing its use!) that precisely takes over this chore. passmass (see Resources) is a short script written in Expect that makes it as easy to change passwords on twenty machines as on one. Rather than retyping the same password over and over, you can launch passmass once and let your desktop computer take care of updating each individual host. You save yourself enough time to get a bit of fresh air, and multiple opportunities for the frustration of mistyping something you've already entered.

The limits of Expect

This passmass application is an excellent model—it illustrates many of Expect's general properties:

You probably know enough already to begin to write or modify your own Expect tools. As it turns out, the passmass distribution actually includes code to log in by means of ssh, but omits the command-line parsing to reach that code. Here's one way you might modify the distribution source to put ssh on the same footing as telnet and the other protocols:
Listing 1. Modified passmass fragment that accepts the -ssh argument                   

            ...
         } "-rlogin" {
            set login "rlogin"
            continue
        } "-slogin" {
            set login "slogin"
            continue
        } "-ssh" {
            set login "ssh"
            continue
        } "-telnet" {
            set login "telnet"
            continue
           ...
     

In my own code, I actually factor out more of this "boilerplate." For now, though, this cascade of tests, in the vicinity of line #100 of passmass, gives a good idea of Expect's readability. There's no deep programming here—no need for object-orientation, monadic application, co-routines, or other subtleties. You just ask the computer to take over typing you usually do for yourself. As it happens, this small step represents many minutes or hours of human effort saved. 

New Introp CD is due on July 1, 2007 but delayed.

Interop Secure Shell 2007 Edition for SFU 3.5 and SUA (Windows Server 2003 R2 and Vista)

Interop Secure Shell leverages the Interix / SUA technology by providing a much-needed SSH server and SSH clients for Windows. Details
$59

SFU 3.5 X server was licenced from Hummingbird

Hummingbird has chosen not to renew our OEM Agreement, so we are no longer offering Interop X Server.For more information, contact info@interopsystems.com.

[Mar 16, 2007] Package Install. (Updated March 16, 2007)

With SFU 3.5 all "/Tools" applications are being packaged and we keep updating the versions too.  A package is used by the installer to correctly place all the binary and data files.  It also records version numbers, file locations and check sums for verification, uninstalls and does version updates.  By using the installer all other packages that a particular application depends on will be installed at the same time.  The installer is based on the BSD package system.  We have made several changes and updates to it over the years, but it has essentially the t;bootstrap" the installer to your system.
If you have a 32-bit system (most people do) then download the  Bootstrap installer (x86) file.
If you have a 64-bit system (AMD64, not IA64) then download the Bootstrap installer (AMD64) file.
If you have a 32-bit or 64-bit Vista system then download the Bootstrap installer (Vista) file.
The installer can be run by the Administrator or by a member of the Administrators group.
This file is a self-installing shell script. So run it as:

% sh pkg-current-bin35.sh
or
% sh pkg-current-bin52authenticamd.sh
or
% sh pkg-current-bin60.sh

(If you are using csh/tcsh remember to 'rehash' after this).

Now all of the installer components are installed.  This includes the utilities pkg_update, pkg_info, pkg_delete, pkg_add, pkg_create and pkg_sign.  You can learn more about each of these utilities by reading their man pages.

Doing an Installation

To install a package use the pkg_update utility.  For example, if you wish to install bash you will enter the following command:

pkg_update -L bash

This command will automatically download and install the most current bash package.  If the package needs to have another package installed with it, that package will be downloaded and installed too.  Pkg_update also takes care of which machine architecture you are using and what is the most current version of the software.

What's Installed, Removing an Installation

To view all of the current packages installed use the pkg_info command.
To remove a package use the pkg_delete command.  You do not need to know the version to delete a package.  You can delete it easily as:

% pkg_delete -M bash

(The '-M' reduces your typing). Refer to the man pages for more information.

Available Packages

You can find a list of all of the available packages on the /Tools Warehouse web page: http://www.interopsystems.com/tools/warehouse.aspx. (Requires login.)  This list continues to have new packages added and current packages updated with newer versions.

When an updated release of a package is available we announce it through the /Tools Warehouse Updates Forum.  To install an updated package you give the same command as when you installed it originally (more information on this further down the page).  The installer will remove the older version for you before installing the newer version.  Any changes in package dependencies will be handled at the same time.  If you have already installed the most current version of a package the installer notices this and will leave things alone.

Package Licensing

The licensing terms for each package can be easily viewed from the /Tools Warehouse web page before you decide to download by selecting the src directory.  It is important for you to understand that there are many different licenses used. Our preference is to use Full Open License software such as BSD and MIT.  We do have many packages that are GPL or LGPL that may place restrictions on what you may do with a package's utilities and/or libraries.  There are other licenses with unusual but not onerous conditions such as the Beer-Ware License (you agree to buy the author a beer if you ever meet him).  We do release copies of the source code for most of the packages here.

Installation Recommendations

We recommend that you always install a package with the command

pkg_update -L {name}

because this will provide to you the most trouble-free installation since so many packages are dependent on other packages.  This also ensures you of getting the most current release of a package and avoiding an unnecessary download.  Regularly checking for updates is very important for bug and security fixes.  Several times people have reported that they are having a problem with a package that they downloaded 30 to 40 days ago.  During that time the problem has been fixed.

Checking for updates for all installed packages is easily done using the command:

pkg_update -La

These installations and updates are done over the Internet and packages are not stored on your system -- this helps keep more free disk space on your local system.

You can download packages and save them to a local disk.  Remember that this option can consume a significant amount of disk space as you download more packages.  If you do download packages it is best to keep them all in one location.  The tricky part with downloading packages to save them locally is that you need to download all of the depended-upon packages as well.

If you are the administrator of several machines that have packages installed on them from the /Tools Warehouse and you want to have some control over which packages are installed then we recommend that you maintain a common local repository of downloaded packages.  Then adjust local configurations so that package installations and updates are done from this repository. We recommend you read the pkg_update manual page for the '-C' option on cacheing packages.  See below for more information on this.

Doing an Install

There are two ways to do an installation now. Y ou can make your choice based on what type of installation you are going to do.  For the multiple versions of Interix and multiple hardware platforms we strongly recommend you stick with pkg_update for single or multiple packages.  Administrators will want to keep users using pkg_update.

pkg_add Install

The pkg_add utility is the "older" tool that we suggest you avoid using directly.  You can use it when you have a specific package you want to install (such as an older archived version for comparison).  You may always refer to the pkg_add manual page for more information.

We always recommend that you install a package as:

pkg_update -L {name}

where "{name}" is the package name.  No need for a version number.  The current version number will be discovered. This means you get the most recent/current version without having to worry about a numbering scheme.  The installer will handle the version numbers.  (The canonical version number for a package is internal to the package with any version number in the filename being taken as a hint. If the last sentence makes you confused, puzzled, worried, etc. this is why we encourage you to use the pkg_update command :-) )

To see what packages are available visit the /Tools Warehouse web page or visit the /Tools ftp site.

pkg_update Install

When you want to install a group of packages, you want to check that all currently installed packages are up-to-date.  To do an automated check for new packages then pkg_update is the tool for you to use.  You may always refer to the pkg_update manual page for more information.

New Interix users usually want to install a group of packages to match their profile.  Currently three profiles exist: user, developer and administrator.  ther profiles may be added in the future based on /Tools member feedback (i.e. you!). By using a profile, a large number of packages can be selected and installed at one time. You can do the installations easily as:

user: pkg_update -A
developer: pkg_update -D
administrator: pkg_update -G

You may add the "-i" option to the above commands if you want to verify (allow or deny) each package as it is selected to be installed.  Without the "-i" option the installations will proceed with little user input needed.

At regular intervals you may want to check if any new packages have been made available since the last time you checked. This can be done with the "-n" option to pkg_update. We recommend that you do use the "-n" option with the "-i" option to control new additions to your system: pkg_update -ni

You may also check that all of your currently installed packages are up-to-date using the "-a" option.  This will usually take longer than the "-n" option to perform, but is an easy way to validate that everything is up-to-date: pkg_update -a

[PPT] Introduction to Microsoft Windows Services for UNIX 3.5

[Feb 14, 2006] Script Repository Services for Unix Sample scripts for managing Microsoft Services for Unix.

UNIX Tools Community Expect 5.40 for Tcl 8.3 and Tk 8.3 is availbale

Expect  Version 5.40 for SFU 3.5
binary:/pkgs/3.5/expect-current-bin.tgz
src: /src/expect
Updated: 2004-03-10 This is Expect 5.40 for Tcl 8.3 and Tk 8.3 (below). Expect is a program that performs programmed dialogue with other interactive

[Jan 7, 2006] Inetd and Rutils in Services for Unix/Interix 3.0 In Services for Unix 3.0, the Interix inetd daemon is started by the init ... If the inetd daemon is running as local Administrator then all the daemons...

[Jun 10, 2005] Microsoft SFU 3.0 (Internix) Porting Issues

Name Service Migration Scripts

This section describes the shell and perl scripts that can migrate your name service data either from source files or NIS maps to your Active Directory. These scripts are found in /opt/ldapux/migrate/ads. The two shell scripts migrate_all_online.ads.sh  and migrate_all_nis_online.ads.sh  migrate all your source files or NIS maps, while the perl scripts migrate_passwd_ads.pl, migrate_hosts_ads.pl, migrate_networks_ads.pl, migrate_protocols_ads.pl, migrate_rpc_ads.pl, migrate_services_ads.pl, and migrate_group_ads.pl  and so forth migrate individual maps. The shell scripts call the perl scripts.

The migration scripts require perl, version 5 or later, which is installed with the NIS/LDAP Gateway in /opt/ldapux/contrib/bin/perl.

New and Enhanced SFU 3.5 Features

Feature

Description

NFS Client

Supports setuid, setgid and sticky bits

 

Support for symbolic links

 

Performance improvements

 

Internationalization: additional language options

NFS Server

Significant performance enhancements

 

Support for active-active clustering of NFS shares

 

Support for setuid, setgid, and sticky bits

 

Per-share handing of root and anonymous access

 

Improved model for mapping permissions between Windows and UNIX

 

Internationalization improvements

SFU 3.5

Support for Windows Server 2003 Volume Shadow Copy Service

SFU 3.5

Simplified and enhanced authentication in Windows Server 2003 Active Directory environments

NFS Gateway

Internationalization improvements

Mapping Server

Cluster-enabled mapping server

 

Performance, security, and scalability improvements

 

Support for redundant mapping servers

 

Internationalization improvements

Server for NIS

Support for MD5 encryption

 

Scalability and performance improvements

 

Numerous usability and administration improvements

Password Sync

New support for setting passwords using Pluggable Authentication Model on UNIX

Telnet Server

Security and scalability improvements

 

Internet Protocol version 6 (Ipv6) support

 

Dumb terminal support (handhelds)

Telnet Client

IPv6 support

 

Internationalization

Interix and the Interix SDK

All new to SFU 3

 

Improved throughput and stability

 

Single rooted file system

SFU 3.5

Utility updates for Internationalization

SFU 3.5

pthreads support in SDK

SFU 3.5

API support for Internationalization

[Jan. 15, 2004] SFU 3.5 was nominated as a finalist for the LinuxWorld Product Excellence Awards in the Best System Integration Solution category

 
 

REDMOND, Wash., Jan. 15, 2004 — Microsoft Corp. today made the latest version of its UNIX interoperability product, Windows® Services for UNIX Version 3.5 (SFU 3.5), available to customers free via Web download at http://www.microsoft.com/windows/sfu/ . SFU 3.5 enables customers to maximize their investment in UNIX-based systems while integrating the price-performance leadership of a Windows-based platform. SFU 3.5 offers customers enhanced performance of cross-platform tools and services, better UNIX command-line administration capabilities, and the ability to extend UNIX-based applications in a Microsoft® .NET Web Services environment. In addition, SFU 3.5 was nominated as a finalist for the LinuxWorld Product Excellence Awards in the Best System Integration Solution category.

 

Recommended Links

Softpanorama Top Visited

Softpanorama Recommended

Microsoft Windows Services for UNIX - Wikipedia, the free encyclopedia

Microsoft TechNet- Windows Services for UNIX

Services for UNIX- Blog

Services for UNIX website  Main page. Also contains free download link.

Interop Systems Tools Warehouse  The Tool Warehouse is a repository of contributed software from Interop Systems, Microsoft and SFU users.  These software tools run on the Interix subsystem of Microsoft Windows Service for UNIX.   Contains almost all top open source applications.

The Tool Warehouse is a repository of contributed software from Interop Systems, Microsoft and SFU users.  Your UNIX Tools Community login provides access to this page, as well as the UNIX Tools Forum.  

The download links (below) are to directories on the Interop Systems FTP site: "src" links to source code, license, and Readme files; "binary" links to the binaries within the pkgs directory for 3.5. 

We are continuing to add to the Tool Warehouse on a regular basis.  If you have a specific request or would like to contribute to the repository, you can contact us at tools@interopsystems.com.  If you would like to be notified about new additions, please subscribe to the Tool Warehouse Updates in the UNIX Tools Forum for automatic email notifications.

All Interix applications are now being packaged.  A package is used by the installer to correctly place all the binary and data files.  It also records version numbers, file locations and check sums for verification, uninstalls and does version updates.  By using the installer, all the other packages that a particular application depends on will be installed at the same time.  Using the /Tools installer for software packages is easy and quick.  All packages are binary releases.  This means installations are quick and pre-tested to work.  You do not need to do any source build option fiddling!  Just install and use immediately. Less pain, more gain!
-  The installer will cleanly install, update or remove a package.
-  Inter-package dependencies are tracked and updated automatically.
-  Package updates can be automatically retrieved, and checking for new packages can be done easily.
-  Support is available for all packages through the /Tools Forum and through e-mail.
-  Package versions are updated at regular intervals so the software is current for new features, bug-fixes and security fixes. Packages include updates and extensions to SFU/Interix shipped software.
-  Package installations can be controlled by command line and/or GUI and/or any personal administrative scripts you have.
-  The installer can be configured in large administrative settings by the administrator for selective package installations.

 

HOW TO Turn On the Interix Telnet Daemon

The Interix subsystem provides a fully POSIX compliant environment that runs as a native subsystem in the Windows kernel. It includes more than 350 UNIX utilities, and includes an inetd daemon to handle a variety of network protocols, including the Telnet protocol. Services for UNIX also includes a Win32-based telnet service. By default, the Win32-based telnet service is turned on, and the Interix one is turned off.

The Win32 telnet service uses a default shell of Cmd.exe, while the Interix telnet daemon uses user's default shell, either /bin/ksh or /bin/csh. Because only a single telnet server can listen on port 23, the telnet port, if you want to run the Interix telnetd, you must first turn off the Win32 based telnet server, and then turn on and start the Interix one.

Microsoft SFU newsgroup For support, suggestions, and general conversation with SFU users, enthusiasts and developers, see the  news://msnews.microsoft.com/microsoft.public.servicesforunix.general

Interop Systems, Inc. website   For developer resources for those migrating applications to Windows and an excellent tools warehouse of Open Source applications and tools compiled for SFU, see theat http://www.interopsystems.com/tools

Script to pragmatically set the UNIX attributes defined in the version 3.5 schema extensions

FAQs

UNIX Tools Community FAQs

Installation FAQs
1.01 – SFU 3.5 installation suggestions
1.02 – Cannot connect to Interix subsystem, Interix will not start
1.03 – Setuid at install or after?
1.04 – Installing /Tools packages
1.05 – I tried to install package XXXX and it failed
1.06 – Can't find package "env_XXX-bin.tgz" when installing another package
1.07 – I'm behind a firewall / I use an FTP Proxy
1.08 – Can I save the packages locally and install them?
1.09 – I'm not allowed to use FTP
1.10 – How can I avoid always typing "ftp://ftp.interopsystems.com/pkgs/3.5"
1.11 – Is there a GUI I can use to manage application packages instead of the shell command line?
1.12 – Don't use Windows Explorer (Win32 File Explore) for file permissions
1.13 – How do I turn filesystem Case Sensitivity ON after installation?'

User FAQs
2.01 – Pathnames with spaces 2.02 – Can I run a BSD/Linux/AIX/etc. binary using Interix?
2.03 – Xterm "-e" not working
2.04 – Running X11 programs
2.05 – What is the "interix" terminal?
2.06 – The "interix" terminal type is not recognized when I telnet.
2.07 – I'm running on a new machine and my program core dumps (segmentation violation), but it's fine on other machines.
2.08 – What is this file ".netrc" about?
2.09 – What are the application packages that have been updated most recently or are new?
2.10 – How do I set tab completion with 'ksh'?
2.11 – Can I access files greater than 2G?
2.12 – How can I get 'ftp' to do proxy?
2.13 – Cpio isn't handling symbolic links'
2.14 – On non-English systems csh/tcsh scripts are crashing'
2.15 – Need an update of utility/library'

Community Toolbox

UNIX Tools Community Toolbox 

Only selected packages shown:

admin_scripts  Version 1.0.1
binary: /pkgs/3.5/admin_scripts-current-bin.tgz
Contributed by Mark Funkenhauser
Updated: 2006-03-31
This is a collection of three administration tools for adding, removing and modifying user account information. These updated scripts are the ones to use because the scripts that ship with 3.5 don't work. Contributed by Mark Funkenhauser.
Apache  Version 1.3.29.1
binary: /pkgs/3.5/apache-current-bin.tgz
src: /src/apache/1.3/
Updated: 2004-02-25
This is version 1.3 of the Apache open source HTTP server.
Apache  Version 2.0.50
binary: /pkgs/3.5/httpd-current-bin.tgz
src: /src/apache/2.0/
Updated: 2004-07-22 per security notices CAN-2004-0488 and CAN-2004-0493
This is version 2.0 of the  Apache open source HTTP server.   This version is using the new SFU 3.5 pthreads library
autoconf  Version 2.60
binary: /pkgs/3.5/autoconf-current-bin.tgz
src:/src/autoconf
Updated: 2006-07-07
Autoconf is an extensible package of M4 macros that produce shell
scripts to automatically configure software source code packages.
automake  Version 1.9.5
binary: /pkgs/3.5/automake-current-bin.tgz
src: /src/automake
Updated: 2005-04-26
This is Automake, a Makefile generator.  It was inspired by the 4.4BSD 'make' and 'include' files, but aims to be portable and to conform to the GNU standards for Makefile variables and targets. 
awk  Version 5.4.24
binary: /pkgs/3.5/awk-current-bin.tgz
src: /src/awk
Updated: 2005-07-21
This is awk as described in "The AWK Programming Language", by Al Aho, Brian Kernighan, and Peter Weinberger (Addison-Wesley, 1988).  It contains fixes to the version of awk that ships with SFU 3.5.
bash  Version 3.0.0.8
binary: /pkgs/3.5/bash-current-bin.tgz
src: /src/bash
Updated: 2006-07-19
This is GNU Bash -- the GNU Project's Bourne Again SHell, a complete implementation of the POSIX.2 shell spec, plus many other features.  
bzip2  Version 2-1.0.3
binary: /pkgs/3.5/bzip2-current-bin.tgz
src: /src/bzip2
Updated: 2005-07-21
This is bzip2, a block-sorting file compressor.  
chmod Version 1.0
binary: /pkgs/3.5/chmod-current-bin.tgz
src: /src/chmod
Added: 2006-03-31

 
cmp Version 1.0
binary: /pkgs/3.5/cmp-current-bin.tgz
src: /src/cmp
Added: 2006-03-31
Cmp compares two files.
 
CVS  Version 1.12.9.2 
binary: /pkgs/3.5/cvs-current-bin.tgz
src: /src/cvs
Updated: 2005-04-27
CVS is the Concurrent Versions System, the dominant open source network-transparent version control system.
Cxref Version 1.6a
binary: /pkgs/3.5/cxref-current-bin.tgz
src: /src/cxref
Added: 2005-06-07
Cxref is a C cross referencing and documenting tool with output in LaTeX, HTML, RTF and SGML.
 
DDD  Version 3.3.8.2
binary: /pkgs/3.5/ddd-current-bin.tgz
src: /src/ddd
Updated: 2005-04-19
GNU DDD is a graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger, the bash debugger, or the Python debugger.
dialog Version 1.0.6.2
binary: /pkgs/3.5/dialog-current-bin.tgz
src: /src/dialog
Added: 2006-07-23
Dialog displays dialog boxes from shell scripts using curses.
 
diffutils Version 2.8.1
binary: /pkgs/3.5/diffutils-current-bin.tgz
src: /src/diffutils
Added: 2006-03-31
An update for the 'diff', 'diff3' and 'sdiff' utilities.
 
Electric Fence  Version 2.2.2.1 
binary:/pkgs/3.5/electricfence-current-bin.tgz
src: /src/electricfence
Updated: 2005-11-24
Electric Fence is a malloc() debugger / bounds checker. It uses the virtual memory hardware of your system to detect when software overruns the boundaries of a malloc() buffer. It will also detect any accesses of memory that has
been released by free().
Expect  Version 5.43 
binary:/pkgs/3.5/expect-current-bin.tgz
src: /src/expect
Updated: 2006-07-30
This is Expect 5.40 for Tcl 8.3 and Tk 8.3 (below). Expect is a program that performs programmed dialogue with other interactive programs.
fastCGI  Version 2.4.0
binary:
src: /src/fastcgi
Updated: 2004-02-25
FastCGI is a language independent, scalable, open extension to CGI that provides high performance without the limitations of server specific API's. 
find  Version 1.0
binary: /pkgs/3.5/find-current-bin.tgz
src: /src/find
Updated: 2005-09-24
 
Find is a Unix utility to walk a file hierarchy. This is an update to the version that ships with SFU 3.5 so several new primaries are available.
fortune  Version 1.0
binary: /pkgs/3.5/fortune-current-bin.tgz
src: /src/fortune
Added: 2004-06-06
This utility prints an interesting random epigram, quote or adage -- a traditional UNIX favorite.
ftp  Version 3.5h
binary: /pkgs/3.5/ftp-current-bin.tgz
src: /src/ftp
Updated: 2005-11-18
This is an update to the version shipping with SFU 3.5. The update is for the graphical transfer bar giving better output with larger files.
gettext  Version 0.14.1.5 
binary: /pkgs/3.5/gettext-current-bin.tgz
src: /src/gettext
Updated: 2004-04-06
This is the GNU gettext package.  This library gives a unique interface to message handling functions.  Users of other GNU packages should install gettext as it is often used to internationalize the messages given by shell scripts.  
Ghostscript  Version 8.15 
binary:/ghostscript-current-bin.tgz
src: /src/ghostscript
Updated: 2005-04-26
Ghostscript is an interpreter for the PostScript language.
grep Version 1.2
binary: /pkgs/3.5/grep-current-bin.tgz
src: /src/grep
Updated: 2006-03-31
This is an updated version of 'grep' that includes recursive directory traversal as well as all of the more recent new options.
gzip Version 1.3.3.10 
binary: /pkgs/3.5/gzip-current-bin.tgz
src: /src/gzip
Updated: 2005-06-21
 
This version of gzip contains no new features over the one released with SFU 3.5.  But it is linked against zlib 1.1.4b which contains a security fix.  This version also includes the utilities derived from gzip not included with SFU 3.0: gzexe, zcmp, zdiff, zforce, zgrep, zmore and znew.  Man pages for each are included.  
Indent  Version 1.0
binary: /pkgs/3.5/indent-current-bin.tgz
src: /src/indent
Added: 2004-09-05
Indent is a program to indent and format C source code. This can be a useful tool to help standardize the format of C code locally without the need to do so "by-hand."
install  Version 1.1
binary: /pkgs/3.5/install-current-bin.tgz
src: /src/install
Updated: 2006-03-31
This is an update to the 'install' utility that ships with SFU 3.5.  This version adds options that many software applications now expect.  
lc  Version 1.0.1 
binary: /pkgs/3.5/lc-current-bin.tgz
src: /src/lc
Updated: 2004-02-25
LC is much like the ls command except it separates the types of files into groups and then displays located file names to the user is a columnar fashion.  
links Version 2.1
binary: /pkgs/3.5/links-current-bin.tgz
src: /src/links
Added: 2005-05-23
A lynx-like alternative character mode WWW browser.
Also has a graphical (X11) version.
locate  Version 1.1.1
binary: /pkgs/3.5/locate-current-bin.tgz
src: /src/locate
Added: 2006-03-31
'Locate' finds filenames quickly.
logger Version 1.0
binary: /pkgs/3.5/logger-current-bin.tgz
src: update to SFU version
Added: 2005-01-05
A utility to add messages to the system logs (syslog).
This is a replacement for the Interix version and adds several new options.
ls  Version 1.2
binary: /pkgs/3.5/ls-current-bin.tgz
src: /src/ls
Updated: 2005-06-27
This is a utility to list directory contents. This BSD-based utility now has color support for file types -- an often requested enhancement.
Lynx  Version 2.8.5
binary: /pkgs/3.5/lynx-current-bin.tgz
src: /src/lynx
Added: 2004-05-22
Lynx is a general purpose distributed information browser for the World Wide Web for terminals. It will display HTML documents and links. It can connect with HTTP, GOPHER, FTP, WAIS and NNTP (news) servers.
man  Version 1.0
binary: /pkgs/3.5/man-current-bin.tgz
src: /src/man
Added: 2004-08-12
This is the utility to display the manual pages (documentation) on the system. This version is capable of displaying manual pages that have been already generated or from the original markup text (unlike what ships with the system).
m4-gnu  Version 1.4.3 
binary: /pkgs/3.5/m4_gnu-current-bin.tgz
src: /src/m4-gnu
Updated: 2005-04-24
GNU "m4" is an implementation of the traditional UNIX macro processor.  It is mostly SVR4 compatible.
md5  Version 1.2 
binary: /pkgs/3.5/md5-current-bin.tgz
src: /src/md5
Updated: 2006-03-31
The 'md5', 'sha1' and 'rmd160' utilities are for generating message-digest fingerprints using MD5, SHA1 and RMD160 respectively.  Message-digest fingerprints are used to help verify that a file is the same file as advertised.  
mesg  Version 1.0.1
binary: /pkgs/3.5/mesg-current-bin.tgz
src: /src/mesg
Updated: 2004-02-25
This is the standard UNIX mesg(1) utility.  
Midnight Commander (mc)  Version 3.3.8
binary: /pkgs/3.5/mc-current-bin.tgz
src: /src/mc
Added: 2004-06-23
Midnight Commander ('mc') is a "visual shell for Unix-like systems.
mtree  Version 1.0
binary: /pkgs/3.5/mtree-current-bin.tgz
src: /src/mtree
Added: 2004-07-07
The utility mtree compares the file hierarchy rooted in the current directory against a specification read from the standard input. This is a useful tool for detecting Trojan Horse files.
mutt  Version 1.4.2.1
binary: /pkgs/3.5/mutt-current-bin.tgz
src: /src/mutt
Updated: 2005-10-17
The Mutt Mail User Agent is a small but very powerful text based program for reading electronic mail under UNIX operating systems, including support for color terminals, MIME, and a threaded sorting mode. 
mv  Version 1.0
binary: /pkgs/3.5/mv-current-bin.tgz
src: /src/mv
Added: 2004-09-02
This is a replacement for the version of 'mv' that ships with SFU 3.5.  It has many more options including backup and clobber controls.
myconsole Version 1.0
binary: /pkgs/3.5/myconsole-current-bin.tgz
src not posted

Contributed by Mark Funkenhauser
Added: 2005-10-25

This utility attaches /dev/console to your current terminal.
 
NcFTP  Version 3.19
binary: /pkgs/3.5/ncftp-current-bin.tgz
src: /src/ncftp
Updated: 2005-05-24

Contributed by Brian Reiter: http://www.wolfereiter.com
NcFTPd is a high-performance FTP client software solution for UNIX systems, designed especially for high-traffic sites and internet service providers. It is also popular among students, home users, educational sites, and businesses.
NEdit  Version 5.4
binary: /pkgs/3.5/nedit-current-bin.tgz
src: /src/nedit
Added: 2004-05-15
NEdit is a multi-purpose text editor for the X Window System, which combines a standard, easy to use, graphical user interface with thorough functionality and stability.
OpenSSH  Version 4.6
Download Info
Updated: 2007-03-30
OpenSSH is based on OpenBSD's excellent OpenSSH port.  It depends on Zlib and OpenSSL.  

(aka OpenSSH 4.6p1)

passwd  Version 1.0
binary: /pkgs/3.5/passwd-current-bin.tgz
src: /src/passwd
Added: 2005-02-10
This is a replacement for the password changing utility that ships with SFU.
Perl  Version 5.8.8
binary: /pkgs/3.5/perl-current-bin.tgz
src: /src/perl
Updated: 2006-03-31
This is the latest stable release of the most popular scripting language, complete with the DBI database interface module, DBD::ODBC for connecting via ODBC, and DBD::Sybase to connect to any Sybase or SQL Server using FreeTDS.
PHP  Version 4.3.6
binary: /pkgs/3.5/php-current-bin.tgz
src: /src/php
Added: 2004-04-29
PHP is a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML.
plotutils  Version 2.5  
binary: /pkgs/3.5/plotutils-current-bin.tgz
src: /src/plotutils
Updated: 2006-07-06
GNU's plotutils package contains software for both programmers and technically oriented users.  It includes the utilities plot, ode, double, spline tek2plot, graph, plotfont and the libplot library.  Its centerpiece is the libplot/libplotter, a C/C++ function library for exporting 2-D vector graphics in many file formats.  
PostgreSQL  Version 7.2.2
binary: Not yet updated .  Version for SFU 3.0 is in the src directory.
src: /src/posgresql
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions.  It includes drivers for ODBC and JDBC. 
Python  Version 2.4.3.1
binary: /pkgs/3.5/python-current-bin.tgz
src: /src/python
Added: 2006-08-01
Python is an interpreted, interactive, object-oriented programming language that combines remarkable power with very clear syntax.
 
rsync  Version 2.6.8
binary: /pkgs/3.5/rsync-current-bin.tgz
src: /src/rsync
Updated: 2006-03-31
Rsync is a utility that provides fast incremental file transfer.  It is considered an 'rcp' replacement.
Ruby  Version 1.8.2
binary: /pkgs/3.5/ruby-current-bin.tgz
src: /src/ruby
Added: 2004-07-21
 
Ruby is the interpreted scripting language for quick and easy object-oriented programming. It has many features to process text files and to do system management tasks (as in Perl). It is simple, straight-forward, extensible, and portable. 
screen Version 4.0.2
binary: /pkgs/3.5/screen-current-bin.tgz
src: /src/screen
Added: 2005-06-13
Screen is a full-screen windows manager that can multiplex several virtual terminals through pseudo-terminals to one terminal.
 
sort Version 1.1
binary: /pkgs/3.5/sort-current-bin.tgz
src: /src/sort
Updated: 2005-10-17
Sort or merge text files. This is an update to the 'sort' that ships with SFU 3.5.  It includes updates and additional extensions/options.
sqid Version 2.5.10
binary: /pkgs/3.5/squid-current-bin.tgz
src: /src/squid
Added: 2005-05-30
Squid is a proxy cacheing server that supports FTP, HTTP and gopher objects. It can be configured to use the 'clamav' package for anti-virus scanning of connections.
stat  Version 1.0.3
binary: /pkgs/3.5/stat-current-bin.tgz
src: /src/stat
Updated: 2006-07-10
This is a utility to the stat, fstat and lstat API's.  It is a useful tool for administrators, developers and support.  
su  Version 1.2
binary: /pkgs/3.5/su-current-bin.tgz
src: /src/su
Updated: 2005-07-22
Su is substitute user identity. This allows you to temporarily assume the identity of another user. This is an enhancement to the SFU 3.5 CD version.  
subversion Version 1.3.2
binary: /pkgs/3.5/subversion-current-bin.tgz
src: /src/subversion
Added: 2006-03-31
Subversion is a version control system, which allows you to keep old versions of files and directories (usually source code), keep a log of who, when, and why changes occurred, etc., like CVS, RCS or SCCS.
 
sudo  Version 1.6.8.9.2
binary: /pkgs/3.5/sudo-current-bin.tgz
src: /src/sudo
Updated: 2006-07-19
Sudo is a program designed to allow a sys admin to give limited root privileges to users and log root activity.  The basic philosophy is to give as few privileges as possible but still allow people to get their work done.  Sudo is distributed under a BSD-style license.  
Syslogd Version 1.2
binary: /pkgs/3.5/syslogd-current-bin.tgz
src: update to SFU version
Updated: 2006-03-31
Syslogd is a daemon that centralizes the collection and storage of system messages from daemons and utilities.
This is a replacement for the SFU 3.5 version.  It is updated for intra-machine syslog message passing.
tar-gnu  Version 1.13
binary:
src: /src/tar-gnu
Updated: 2006-03-31
GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.  It includes
multivolume support, the ability to archive sparse files, automatic archive compression/decompression, remote archives and special features that allow `tar' to be used for incremental and full backups.   
Tcl  Version 8.4.13
binary: /pkgs/3.5/tcl-current-bin.tgz
src: /src/Tcl
Updated: 2006-07-29
Tcl provides a powerful platform for creating integration applications that tie together diverse applications. protocols, devices and frameworks.
Tk  Version 8.4.13
binary: /pkgs/3.5/tk-current-bin.tgz
src: /src/Tk
Updated: 2006-07-29
Tk is a cross-platform UI toolkit implemented with the Tcl scripting language.
TkMan Version 2.2.1
binary: /pkgs/3.5/tkman-current-bin.tgz
src: /src/tkman
Added: 2005-04-05
TkMan is a graphical, hypertext manual page and Texinfo browser for UNIX.
tcp_wrappers Version 7.6
binary: /pkgs/3.5/tcp_wrappers-current-bin.tgz
src: /src/tcp_wrappers
Added: 2006-03-31
Monitor incoming requests for network services.
 
tcsh  Version 6.14.0.0
binary: /pkgs/3.5/tcsh-current-bin.tgz
src: /src/tcsh
Updated: 2005-06-20
Tcsh is a version of the Berkeley C-Shell, with the addition of: a command line editor, command and file name completion, listing, etc. and some small additions to the shell itself.  It is more current than the C-Shell that ships with SFU 3.5.  This version has Kanji display/editing capabilities.
units  Version 1.80.1
binary: pkgs/3.5/units-current-bin.tgz
src: /src/units
Updated: 2004-02-25
GNU 'units' converts between different systems of units.  It can
handle multiplicative scale changes.  It can also handle nonlinear
conversions such as Celsius to Fahrenheit.  
unixODBC  Version 2.2.8
binary: /pkgs/3.5/unixodbc-current-bin.tgz
src: /src/unixodbc
Updated: 2004-07-09

For more info, see our database connectivity page.

unixODBC is a popular Open Source ODBC driver manager.  This also serves as the ODBC-ODBC bridge client from Easysoft, allowing access to any ODBC driver in Windows. See Easysoft ODBC-ODBC Bridge.   
unixpath2win Version 1.1
binary: /pkgs/3.5/unixpath2win-current-bin.tgz
src: /src/unixpath2win
Updated: 2006-03-31
Converts unix pathnames to Win32 pathnames. Updated to handle multiple paths.
 
unrtf  Version 0.19.9
binary: /pkgs/3.5/unrtf-current-bin.tgz
src: /src/unrtf
Updated: 2006-02-15
 
Unrtf converts document in RTF format to other formats.
This is an update to the previous release and fixes the
install location.
unzip  Version 5.52
binary: /pkgs/3.5/unzip-current-bin.tgz
src: /src/unzip
Updated: 2005-07-22
A program for listing, testing and extracting archives (compressing files) created by the zip programs. This is an update to the unzip that ships with SFU 3.5. (See also zip.)
vim  Version 6.3.78
binary: /pkgs/3.5/vim-current-bin.tgz
src: /src/vim
Updated: 2005-06-21
 
Vim is an almost compatible version of the UNIX editor Vi.  Many new features
have been added: multi-level undo, syntax highlighting, command line history,
on-line help, filename completion, block operations, etc.  
wget  Version 1.10.2
binary: /pkgs/3.5/wget-current-bin.tgz
src: /src/wget
Updated: 2005-11-03
Wget is a network utility to retrieve files from the Web using http and ftp.  It works non-interactively, so it will work in the background after having logged off.  
whatis  Version 1.0
binary: /pkgs/3.5/whatis-current-bin.tgz
src: /src/whatis
Added: 2004-08-11
Whatis describes what a command is. Being much more specific than 'man -k'
makes it useful. It gives the header line from the manual page.
whois  Version 1.0
binary: /pkgs/3.5/whois-current-bin.tgz
src: /src/whois
Added: 2005-07-22
Whois is the Internet domain name and network number directory service.  This allows you to lookup records on Internet domains around the world; not just .COM, .ORG, etc. but also .AU, .CA, .RU, .SE, etc.
write  Version 1.0.1
binary: /pkgs/3.5/write-current-bin.tgz
src: /src/write
Updated: 2004-02-25
This is the standard UNIX write(1) utility.  
Xargs Version 1.1
binary: /pkgs/3.5/xargs-current-bin.tgz
src: /src/xargs
Updated: 2006-03-31
Xargs is a utility to take input and construct it as an argument list to other utilities and execute the utilities. This is a new version of 'xargs' to replace the SFU version.  It has some additional options while being SUS compliant.
xstr  Version 1.0
binary: /pkgs/3.5/xstr-current-bin.tgz
src: /src/xstr
Added: 2004-09-15
This is the utility to extract strings from C programs to implement shared strings.
xterm  Version 11.6.8.2.2
binary: /pkgs/3.5/xterm-current-bin.tgz
src: /src/xterm
Updated: 2006-03-31
This color version of xterm is built against the X11R6.8.2 libraries and is an update to the xterms that ship with SFU.
zip  Version 2.32
binary: /pkgs/3.5/zip-current-bin.tgz
src: /src/zip
Updated: 2006-03-31
A package of programs for compressing files. Includes zip, zipcloak, zipnote and zipsplit. This is an update to the zip that ships with SFU 3.5. (See also unzip.)

Packages install instrcutions

Package Install. (Updated March 16, 2007)

With SFU 3.5 all "/Tools" applications are being packaged and we keep updating the versions too.  A package is used by the installer to correctly place all the binary and data files.  It also records version numbers, file locations and check sums for verification, uninstalls and does version updates.  By using the installer all other packages that a particular application depends on will be installed at the same time.  The installer is based on the BSD package system.  We have made several changes and updates to it over the years, but it has essentially the same "flavor" as installers with BSD or Sun.

The first thing to do to is "bootstrap" the installer to your system.
If you have a 32-bit system (most people do) then download the  Bootstrap installer (x86) file.
If you have a 64-bit system (AMD64, not IA64) then download the Bootstrap installer (AMD64) file.
If you have a 32-bit or 64-bit Vista system then download the Bootstrap installer (Vista) file.
The installer can be run by the Administrator or by a member of the Administrators group.
This file is a self-installing shell script. So run it as:

% sh pkg-current-bin35.sh
or
% sh pkg-current-bin52authenticamd.sh
or
% sh pkg-current-bin60.sh

(If you are using csh/tcsh remember to 'rehash' after this).

Now all of the installer components are installed.  This includes the utilities pkg_update, pkg_info, pkg_delete, pkg_add, pkg_create and pkg_sign.  You can learn more about each of these utilities by reading their man pages.

Doing an Installation

To install a package use the pkg_update utility.  For example, if you wish to install bash you will enter the following command:

pkg_update -L bash

This command will automatically download and install the most current bash package.  If the package needs to have another package installed with it, that package will be downloaded and installed too.  Pkg_update also takes care of which machine architecture you are using and what is the most current version of the software.

What's Installed, Removing an Installation

To view all of the current packages installed use the pkg_info command.
To remove a package use the pkg_delete command.  You do not need to know the version to delete a package.  You can delete it easily as:

% pkg_delete -M bash

(The '-M' reduces your typing). Refer to the man pages for more information.

Available Packages

You can find a list of all of the available packages on the /Tools Warehouse web page: http://www.interopsystems.com/tools/warehouse.aspx. (Requires login.)  This list continues to have new packages added and current packages updated with newer versions.

When an updated release of a package is available we announce it through the /Tools Warehouse Updates Forum.  To install an updated package you give the same command as when you installed it originally (more information on this further down the page).  The installer will remove the older version for you before installing the newer version.  Any changes in package dependencies will be handled at the same time.  If you have already installed the most current version of a package the installer notices this and will leave things alone.

Package Licensing

The licensing terms for each package can be easily viewed from the /Tools Warehouse web page before you decide to download by selecting the src directory.  It is important for you to understand that there are many different licenses used. Our preference is to use Full Open License software such as BSD and MIT.  We do have many packages that are GPL or LGPL that may place restrictions on what you may do with a package's utilities and/or libraries.  There are other licenses with unusual but not onerous conditions such as the Beer-Ware License (you agree to buy the author a beer if you ever meet him).  We do release copies of the source code for most of the packages here.

Installation Recommendations

We recommend that you always install a package with the command

pkg_update -L {name}

because this will provide to you the most trouble-free installation since so many packages are dependent on other packages.  This also ensures you of getting the most current release of a package and avoiding an unnecessary download.  Regularly checking for updates is very important for bug and security fixes.  Several times people have reported that they are having a problem with a package that they downloaded 30 to 40 days ago.  During that time the problem has been fixed.

Checking for updates for all installed packages is easily done using the command:

pkg_update -La

These installations and updates are done over the Internet and packages are not stored on your system -- this helps keep more free disk space on your local system.

You can download packages and save them to a local disk.  Remember that this option can consume a significant amount of disk space as you download more packages.  If you do download packages it is best to keep them all in one location.  The tricky part with downloading packages to save them locally is that you need to download all of the depended-upon packages as well.

If you are the administrator of several machines that have packages installed on them from the /Tools Warehouse and you want to have some control over which packages are installed then we recommend that you maintain a common local repository of downloaded packages.  Then adjust local configurations so that package installations and updates are done from this repository. We recommend you read the pkg_update manual page for the '-C' option on cacheing packages.  See below for more information on this.

Doing an Install

There are two ways to do an installation now. Y ou can make your choice based on what type of installation you are going to do.  For the multiple versions of Interix and multiple hardware platforms we strongly recommend you stick with pkg_update for single or multiple packages.  Administrators will want to keep users using pkg_update.

pkg_add Install

The pkg_add utility is the "older" tool that we suggest you avoid using directly.  You can use it when you have a specific package you want to install (such as an older archived version for comparison).  You may always refer to the pkg_add manual page for more information.

We always recommend that you install a package as:

pkg_update -L {name}

where "{name}" is the package name.  No need for a version number.  The current version number will be discovered. This means you get the most recent/current version without having to worry about a numbering scheme.  The installer will handle the version numbers.  (The canonical version number for a package is internal to the package with any version number in the filename being taken as a hint. If the last sentence makes you confused, puzzled, worried, etc. this is why we encourage you to use the pkg_update command :-) )

To see what packages are available visit the /Tools Warehouse web page or visit the /Tools ftp site.

pkg_update Install

When you want to install a group of packages, you want to check that all currently installed packages are up-to-date.  To do an automated check for new packages then pkg_update is the tool for you to use.  You may always refer to the pkg_update manual page for more information.

New Interix users usually want to install a group of packages to match their profile.  Currently three profiles exist: user, developer and administrator.  ther profiles may be added in the future based on /Tools member feedback (i.e. you!). By using a profile, a large number of packages can be selected and installed at one time. You can do the installations easily as:

user: pkg_update -A
developer: pkg_update -D
administrator: pkg_update -G

You may add the "-i" option to the above commands if you want to verify (allow or deny) each package as it is selected to be installed.  Without the "-i" option the installations will proceed with little user input needed.

At regular intervals you may want to check if any new packages have been made available since the last time you checked. This can be done with the "-n" option to pkg_update. We recommend that you do use the "-n" option with the "-i" option to control new additions to your system: pkg_update -ni

You may also check that all of your currently installed packages are up-to-date using the "-a" option.  This will usually take longer than the "-n" option to perform, but is an easy way to validate that everything is up-to-date: pkg_update -a

 

 

Recommended Articles

[PPT] Services for UNIX 3.0 -- nice presentation

Overview of Services for UNIX 3.0 with Interix

>SFU Overview
SFU Lab Objectives
Lab 1: Services for UNIX (SFU) Installation
Lab 2: Telnet Client and Server
User Name Mapping
Lab 3: User Name Mapping
Understanding Client for NFS
Lab 4: Client for NFS
Understanding Server for NFS
Lab 5: Server for NFS
2-Way Windows/UNIX Password Synchronization
Lab 6: 2-Way Windows/UNIX Password Synchronization
Interix 2.2 Overview
Interix 3 Lab Objectives
Lab 9: Product Walk-through

Lab 10: Interix 3 Porting Examples

InterOp Windows Services For UNIX -- TechNet Magazine, Spring 2005

If you're an  administrator working in a mixed environment, Microsoft® Windows® Services for UNIX (SFU) 3.5 can make your life a lot easier. SFU provides a full-featured interoperability solution that includes a Network File Server (NFS) client, server and gateway for file system interoperability, and a Network Information Service (NIS). SFU also gives you User Name Mapping and password synchronization for identity management, along with the Interix subsystem.

Simon Bisson wrote in his paper "Windows Services for UNIX "

Servers based on Intel’s x86 architecture are a commodity: cheap to buy and cheap to run, they have become the life-blood of the data centre. Once a few high-end UNIX systems sat and ran your business; now they’re surrounded by humming racks of cheap x86 systems, and they’re coming to the end of their lives. So how do you migrate your existing applications to new servers, and at the same time link your new applications to your legacy systems, without causing disruption to your business processes?
      One option is to switch to an x86 variant of UNIX, such as Linux. However if you’ve already chosen Microsoft Windows as your main platform, that will mean bringing in new expertise, and another layer of system administration tools. Microsoft’s Services for UNIX (SFU) 3.5, which is available as a free download, is intended to give you the best of both worlds: a familiar set of UNIX tools so your existing UNIX staff can work with Windows servers with only minimal training; and tools to integrate Windows authentication and Windows file systems with your UNIX systems. Install SFU on a PC or x86-based server and you’ll find open source tools (including the Perl scripting language) and familiar UNIX utilities happily co-existing alongside Active Directory and the Windows interface.
      A 223Mb download, SFU mixes several different tools. At the heart of SFU is the Interix subsystem, built on technology which Microsoft acquired in 1999 from Softway Systems and released as Microsoft Interix 2.2. This runs on top of the Windows kernel at the same level as the Win32 subsystem, and allows UNIX applications to run on Windows. An integral part of SFU since version 3.0, the Interix subsystem is now supported by more than 3,000 UNIX utilities and tools (including Windows services that behave like their UNIX equivalents).

... ... ...

SFU can help with complex migrations. The last 15 years have seen five or six different developers working on Star-Track, a vehicle tracking system for Group 4 Securitas. Never intended to be cross-platform, the application was developed for Solaris, though in 1996 Dr Adrian Bowen, the Systems Development Manager, ported it to RedHat Linux, a process he remembers as being “mostly painless”.
      Scalability concerns forced a rethink of the system design, and in order to fit in with corporate IT policies the development team decided to port the application to Windows using SFU, rather than completely rewriting the application. Dr Bowen found that the source code for the Star-Track application ported and compiled to SFU without any major work. “It was the same amount of work as when I’d moved it from Solaris to Linux. It looks like a variant of Linux.” Dealing with the obsolete XView windows console used by the application was a little trickier, but it still took less than a week. The dynamic linking and loading support in SFU 3.5 meant the team could move the user interface to a Tk toolkit. Dr Bowen just downloaded it, ran the make files and then ran the code on SFU
.

Introduction:

TechNet/Windows Services for UNIX -- many useful articles. among them:

Scripting

Version 3.5

Version 3.0

Version 2.0

Random Findings

SFU is a Full Subsystem, Not an Emulation

SFU not only provides a full set of APIs, compilers, and utilities for creating and migrating UNIX applications, but it also provides a complete environment that behaves as UNIX applications expect. This feature makes it not only possible but also relatively easy to port an existing UNIX application to run under Interix.

In SFU 3.5, more than a hundred new APIs are introduced to support pthread applications and wide character strings.

The single biggest change in SFU since version 2.0 is the replacement of the MKS-derived KornShell and utilities with the Interix environment, which includes a full suite of UNIX utilities and the Interix SDK. The earlier shell and utilities were simply emulation layers running on top of the Windows shell (similar to Cygwin). With the integration of the Interix technology, SFU gives UNIX developers and administrators a high-performance, high-throughput, and stable application execution environment to run UNIX applications and scripts.

In SFU 3.5 the SDK has been enhanced to support multi-threaded applications with the addition of a full set of pthread APIs. Pthreads are POSIX-compliant threads, a standards-based mechanism for providing concurrent code execution in a single program. The SDK includes nearly 100 new APIs—those beginning with “pthread” and “sem” in the /usr/include/pthread.h header file—that support pthreads and semaphores.

New support for multi-byte characters has been added to many utilities as well as new APIs to support multi-byte characters in the SDK. Multi-byte character support, originally added for the Japanese version of SFU 3.0, is now integrated into a single, world-ready version 3.5 that supports additional locales, the use of localdef  to create user-defined locales, and double-byte character strings. Also, the X Window System libraries have been updated to X11R6.6.

The emulation layer subsystem performance has been tuned in SFU 3.5 to substantially improve overall throughput and performance, with substantial improvements in all areas of the subsystem. These include:

File I/O is now within 10 percent of the Win32 subsystem. Additional improvements in multiprocessor scalability have also been realized, resulting in a roughly 50 percent improvement in Interix’s Apache performance against high numbers of concurrent connections on an 8-way system.




Etc

Society

Groupthink : Understanding Micromanagers and Control Freaks : Toxic Managers : BureaucraciesHarvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Two Party System as Polyarchy : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

Skeptical Finance : John Kenneth Galbraith : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotes : Oscar Wilde : Talleyrand : Somerset Maugham : War and Peace : Marcus Aurelius : Eric Hoffer : Kurt Vonnegut : Otto Von Bismarck : Winston Churchill : Napoleon Bonaparte : Ambrose Bierce : Oscar Wilde : Bernard Shaw : Mark Twain Quotes

Bulletin:

Vol 26, No.1 (January, 2013) Object-Oriented Cult : Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks: The efficient markets hypothesis : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Vol 23, No.10 (October, 2011) An observation about corporate security departments : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

 

The Last but not Least


Copyright © 1996-2014 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine. This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting hosting of this site with different providers to distribute and speed up access. Currently there are two functional mirrors: softpanorama.info (the fastest) and softpanorama.net.

Disclaimer:

The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Last modified: August 05, 2013