Evaluating MKS Toolkit 7.0
My first exposure with the MKS Toolkit was with version 4.2. About seven years ago, I worked with a company that needed a way to add the awk and grep functions they were accustomed to using on their UNIX platform to their DOS platform. The toolkit from MKS (an acronym for Mortice Kern Systems Inc.) had a set of executable utilities that ran on the DOS platform and mirrored the functionality of their UNIX counterparts. The product performed spectacularly and allowed us to find information in DOS reports that generated in minutes, instead of hours.
Since then, the product has expanded and version numbers have incremented, but the core intention behind it has not: to enable you to run UNIX commands on a non-UNIX platform. DOS is no longer the platform for which the toolkit is written, having been replaced in the marketplace by the Intel Windows 32-bit environment. With this in mind, the latest version is written for Windows 2000, Windows NT 4.0, Windows 95, and Windows 98. For the most part, the product performs as well on the new platforms as it did seven years ago.
MKS now has not one, but numerous products for purchase that go by the name MKS Toolkit. In order from fewest to most features, they include:
MKS Toolkit for Power Users
MKS Toolkit for System Administrators
MKS Toolkit for Developers
MKS Toolkit for Interoperability
MKS Toolkit for Professional Developers
MKS Toolkit for Enterprise Developers
With one exception, each successive version contains all the tools and functions of the preceding one. For example, the MKS Toolkit for System Administrators contains everything found in the MKS Toolkit for Power Users, and more; MKS Toolkit for Developers contains everything found in the MKS Toolkit for System Administrators, and more, etc.
For this review, I used the MKS Toolkit for Interoperability. It contains two shells (Korn and C), as well as 300+ commands that can be given from the command-line, some scripting capabilities (Perl, sed, awk, etc.), and the MKS NuTCRACKER platform (for API interaction).
I chose to install the software on three of the four platforms for which it was written: Windows 95, Windows NT 4.0, and Windows 2000 Professional. I found a handful of problems, or peculiarities, with all the installations (which utilize the InstallShield wizard), but nothing that could not be overcome. During every installation, after accepting the license agreement, a dialog box offers four radio buttons from which you can choose which type of installation you prefer. The four choices, shown in Figure 1, are:
Typical (the default)
Compact (when hard drive space is at a premium)
Custom (pick and choose what components you want to install)
NuTCRACKER Workstation only (purely for testing purposes)
A Disk Space command button is available, and you are instructed to choose a role, then press this button to see how much space will be needed. In all cases, the numbers presented for required and available failed to change from initial values when I chose other roles. Certainly not a show stopper, but it would be helpful to know how much free space is needed for each option before continuing. The accompanying documentation states that typical disk requirements are 100 MB.
The Custom selection allows you to choose among the following components:
NuTCRACKER workstation (required for the run-time environment)
XServer (a version of Xvision)
Documentation (written in Windows Help and text formats, as well as Adobe .PDF files)
Internet Server Support (to install command-line tools to interact with your Web server)
Evaluation Guides (scripts and programs)
Chalk it up to a peculiarity, but a command button labeled Change appears on the dialog box but is never enabled, no matter what option or component you highlight. I assume its intent is either to let you change the path in which the installation will occur or choose only a subset of the component.
After installation is complete, a reboot is required on all platforms to read the new files. With Windows NT, there were no errors after the reboot; with the other two, there were errors but only after the first boot. In Windows 95, the following error box appeared, Error Starting Program: The ATLTETRIS.EXE file is linked to missing export OLE32.DLL: CoSuspendClassObjects. This file exists within a subfolder of the Demonstrations folder.
With Windows 2000, after the reboot, the error message was NuTCRACKER Fatal Error: Failed to register with service. Make sure that service is running. Again, after the first boot, all error messages disappeared and all functionality of the product was available.
While the toolkit will install on four platforms, many of the utilities are really intended for Windows NT/2000 and not Windows 95/98. In some cases, the utilities will only run on the more robust platforms, and in others, they will run in a reduced mode. All of the reference pages identify the operating system needs of each utility and whether or not they will run on a particular OS. With over 300 utilities, it is impossible to discuss them all, so I have chosen to focus on three.
The first is the Process Status utility, shown in Figures 2 and 3. Figure 2 shows the utility in a Windows 2000 environment. Note the columns identifying each process running following Command - Process ID (PID), parent (PPID), Size, resources, start time, and amount of time running. Figure 3 shows the same utility under Windows 95. Note that the columns have changed to information available under Windows 95. Under any OS, you can terminate a process using either SIGTERM or SIGKILL, as well as configure periodic refreshes, and debug.
One of my biggest disappointments was the ls command. As simple as it may sound in theory, the ls command is one of the more difficult to emulate in the non-UNIX environment, mostly because the same set of permissions does not exist. Couple this with the fact that Windows 2000 can run on three file systems: FAT, FAT32, and NTFS, and you can see the complexity beginning to grow. MKS has done an okay job of mapping permissions displayed with this and associated utilities with FAT and FAT32, but they have not been as successful with NTFS. In FAT/FAT32, there can be only a few permissions (and they apply to all users):
If none of these attributes are on a file, the permissions shown are -rwxrwxrwx. If the Archive bit is on, the permissions become -rwxrwxrwa. If the Read-only bit is on, the display changes to -r-xr-xr-x. Hidden files are shown as -rwhrwxrwx, and System files are -rwxrwsrwx. All combinations of the options are available, as well, such as -rwhrwsrwa. The chmod command can be used to change to any valid FAT permission set from the command line.
With NTFS, a slew of additional permissions come into play, including compression and encryption. The compressed attribute is displayed as -rwcrwxrwx. Unfortunately, the encrypted attribute is not displayed. Additionally, you can specify different permissions for Everyone (equivalent to Other in UNIX), so that the owner has Full Control, and the Everyone group as Read. In theory, this would resemble, -rwxrwxr--, but MKS shows it as -rwxrwxrwx. In other words, the ls command does not really relay permissions at all, but looks only at file attributes.
One of my favorite utilities was Visual Difference, a graphical form of the old diff utility. This utility, shown in Figure 4, allows you to compare two files and quickly see the differences between them. You can combine the two files into one, save the differences, and do all the things in the Windows environment that you've always missed from the UNIX world.
In addition to the plethora of utilities, the toolkit offers many more features. Among the highlights, it allows for remote access via a single connection telnet server (from Seattle Labs), and remote systems administration (using rsh). It has a full Xserver (from Xvision), and offers full automation and scripting. The rexec utility allows these to run on remote machines.
A new utility, named pending, allows you to see any operations that are queued up to take place after a reboot or login. Coupled with this, the mv and rm utilities have been changed to allow you to use a -d parameter to delay the action until a reboot. The rm utility also now has -s to put a copy of the file in the Recycle Bin (thus allowing it to be unremoved).
The vi editor is here (no set of utilities would be complete without it), as well as a graphical counterpart: vi for Windows. The latter allows you to cut and paste and use all the graphical menu commands you would expect to find in many editors shy of commercial products.
Additionally, files can be backed up, restored, and copied between systems (UNIX and otherwise) via such utilities as cpio, dd, ftp, rcp, tar, and pax.
Web Sites to Know
To learn more about MKS, check the following Web sites:
Home page: http://www.mks.com/interop
Product information: http://www.mks.com/interop/products Customer Support: http://www.mks.com/interop/support Release notes: http://www.mks.com/interop/support/k7-relnotes.htm
Resource kit: http://www.mks.com/interop/reskit
Knowledge base: http://www.mks.com/interop/support/kb FAQ: http://www.mks.com/interop/support/faqs
To get the reader for the documentation: http://www.adobe.com
Should You Use It?
If you are looking for a way to:
1. Add to the meager utilities available in the Windows world
2. Add UNIX functionality to Windows
3. Add power to the command line
4. Inter-operate between Windows and UNIX
then you will find no better product than the MKS Toolkit 7.0. This product gets better with age and with each successive version, and is unparalleled in its market. Powerful, robust, and feature-rich, it offers all of the expected UNIX commands to the Windows world and enhances it by adding graphical aspects and additional features.
In short, this is one purchase you will not regret when sitting at a machine other than a UNIX terminal.
About the Vendor
MKS Interoperability Products
12450 Fair Lakes Circle, Suite 400
Fairfax, VA 22033
Phone: 1-800-865-6660 or 1-703-803-3343
About the Author
Emmett Dulaney is the coauthor, with Vijay Sankar, of Integrating UNIX and NT Technology: The Definitive Guide (ISBN: 1-882419-84-7), published by 29th Street Press. He is a consultant for D S Technical Solutions (http://www.ds-technical.com), and one of the original authors of Inside Unix and several related titles. He can be reached at firstname.lastname@example.org.