NuTCRACKER X/Software Development Kit (SDK), a complete suite of application development utilities and libraries for Windows NT systems from DataFocus, lets you port X/Motif, character-based, and daemon-based UNIX applications to a Win32 platform. You can port these applications (including HP-UX, Advanced Interactive Executive--AIX, Sun, Ultrix, and Santa Cruz Operations--SCO--UNIX) to NT or Windows 95 without rewriting any source code. The kit also includes a comprehensive library of UNIX functions based on System V Release 4 (SVR4), POSIX, Berkeley Software Distribution (BSD), Massachusetts Institute of Technology's (MIT's) X11R5, and Open Software Foundation's (OSF's) Motif window- ing environments.
At the operating system (OS) level, the software supports more than 700 UNIX functions. The product fully supports C, C++, and FORTRAN, but you will need to purchase Microsoft's Visual C++ (VC++) compiler separately and install it before you can use this feature. NuTCRACKER also supports security mapping. For example, although UNIX-style file permissions differ significantly from those in NT, NuTCRACKER can make the translations.
Core features (e.g., shared memory, semaphores, message queues, Berkeley sockets networking-support file system-level hard links, the curses text screen control library) are also part of the UNIX API support package. NuTCRACKER can enable MIT's X11R5 windowing environment and X and Motif functions in it's Motif (Xm), utilities (Xmu), X toolkit (Xt) intrinsics, X Windows C (Xlib), X extensions (Xext), and X Athena widgets (Xaw) libraries. With these libraries and utilities (including Imake), you can build any X application.
Cracking the Shell
I decided to test NuTCRACKER's capabilities on my home-built, Micronics Spitfire ETX-based dual-Pentium II NT Workstation host. But first, I had to copy Microsoft's VC++ from my January 1998 Microsoft Developer's Network CD-ROMs.
I didn't have any difficulty installing the software, which requires at least 16MB of RAM and from 6MB to 60MB of hard disk space, depending on the options you install. (You must install NuTCRACKER on an NT server or work- station; you cannot install the software on Win95.) You can insert the NuTCRACKER CD-ROM into your CD-ROM drive and let NT's autorun utility automatically launch the install program, or you can run it manually by executing \nutcxsdk\install.exe on the CD-ROM. Both installation methods launch an Options dialog box from which you can select options. I installed all components, including the Mortice Kern Systems (MKS) utilities; debug files; curses headers and library files (for character-based UNIX curses applications); Perl and other GNU application development sources and binaries; lexical analyzer/generator (LEX) and Yet-Another-Compiler-Compiler (YACC) parser generator sources and binaries; and X11R5 includes, libraries, and binaries.
The MKS Utilities option lets you install all files that comprise the MKS Toolkit (which includes the make and awk commands and the industry standard shell with korn shell compatibility), written specifically for Windows. The Debug Files option lets you install special files that help debug NuTCRACKER-based applications. However, unless you're a hard-core developer with extensive debugging knowledge, these files probably won't help you.
The Curses Headers and Library Files option lets you port text-based legacy applications from UNIX. The curses development library on UNIX machines lets developers add full screen control to their applications.
The Perl and GNU Sources and Binaries option lets you install the source code for the GNU Revision Control System (RCS), diff, grep, and Perl. Many UNIX-based source distributions use at least one of these utilities for either compilation or management. Likewise, the CPP, LEX, and YACC Sources and Binaries option lets you install the source code and binary versions of the C preprocessor, LEX, and the YACC parser generator. Although the C preprocessor is not necessary in most environments, you will want to install this option if you intend to port a lot of existing UNIX software, because UNIX developers use LEX and YACC extensively.
The final option, X11R5 Includes, Libraries, and Binaries, is necessary only if you intend to port X/Motif applications to Windows. This option lets you install a suite of header and library files. OSF Motif libraries provide a Motif look and feel, and WinTif libraries provide either a Motif or Windows look and feel. To display output from the X11 programs you port, you must specify the X server you intend to use during installation. The software includes a copy of SCO's high-performance XVision 7X server and two other X servers. However, XVision is not included in the installation, so you must manually install this X software before you port X/Motif applications.
After I completed the installation, I ran into my first glitch. Because I like to keep my root directory clean, I changed the software's original default installation location from C:\NuTC to C:\Program Files\NuTC. (Most software packages install in the root directory. With the number of packages I test, the directory gets too cluttered otherwise.) The installation ran successfully, but I couldn't use the software. When I reinstalled the software in the C:\NuTC directory, everything worked. Apparently, because the software creates specific shortcuts, the extra space in C:\Program Files confused the product, and command lines parsed incorrectly.
To test the software's ability to port applications, I ran a copy of the X Windows version of a popular UNIX game, NetHack, on my system. After downloading and decompressing the source code, I took out the Installation and Porting Guide, one of five manuals included in the NuTCRACKER package. The chapter "Porting Applications with NuTCRACKER" guided me through the con- version. Unfortunately, the conversion was more difficult than I had anticipated. I had to manually edit the project's Makefiles (which the compiler interprets to understand how to build the application) and make a few changes to the source code. An entire section of the Installation and Porting Guide, the API Compatibility Reference, discusses differences between UNIX functions and their Windows counterparts and states that you might have to make physical changes to your source code to accommodate these differences.
I successfully converted NetHack to run under Windows using NuTCRACKER. I also realized that even though manually editing the software's Makefiles was not totally related to the software's porting abilities, porting an application using NuTCRACKER is definitely not Plug and Play.
In a Nutshell
With NuTCRACKER X/SDK, you receive a full copy of SCO's XVision 7X server, the MKS development utilities, and the X function libraries. The package does not include a copy of Microsoft's VC++ compiler, so you might have to factor that cost into your budget. Overall, the software cost is minimal compared to the cost of converting a curses- or X-based application from UNIX to native Windows code. However, even with NuTCRACKER's great features, you might have to do some manual editing and code changing. (Note: At press time, DataFocus released a new version of this product.)
|Nu TCRACKER X/SDK|
|Contact: DataFocus * 703-803-3343 or 800-637-8034, Web: http://www.datafocus.com|
|Price: $695 per server license, $98 per client license, $72 for X display, $100 for UNIX utilities|
|System Requirements: >Windows NT, Microsoft Visual C++, 16MB of RAM, 60MB of hard disk space|