Galaxy Communicator Documentation:
Windows NT Port
Introduction
The Windows NT port of the HUB and support
libraries is a joint effort between AT&T, CMU and MITRE. However, all
questions and bug reports should be sent to bugs-darpacomm@linus.mitre.org.
Our plan is to distribute this port as
both source and pre-compiled executables and libraries. The source and
pre-compiled versions should be available through our regular
download method. We have tried to follow the guidelines by placing
the libraries and executables in the same fashion as their Unix counterparts,
except the "arch-os" directory is named x86-nt. So for example,
the HUB executable compiled using our project settings would be placed
under
GalaxyCommunicator/bin/x86-nt/HUB.exe. The same applies for
the libraries.
What has been
ported?
Only a subset of the Galaxy Communicator distribution
has been ported. We have concentrated on the HUB executable and on
the libraries necessary for writing servers compatible with the Windows
platform. Microsoft's Visual Studio 6.0, which includes Visual C++, was
used as a compiler, and the project and workspace files (Microsoft's alternative
to Makefiles) are also VC++ 6.0 compliant. We have generated and added
to the archive makefiles with .mak extensions as well. The same source
base is used on all platforms (Unix and Windows). If you require Makefile
support for different versions of MSVC++ and/or alternative compilers,
please contact us at bugs-darpacomm@linus.mitre.org.The
system has only been tested on Windows NT 4.0 SP 5, we would appreciate
feedback on other platforms in which this system was successfully (or unsuccessfully)
used on.
A new workspace has been created that
holds all the Win32 projects. It can be found at:
GalaxyCommunicator/GC.dsw
The following are the libraries that were
ported, their equivalent workspace files and where the compiled libraries
and/or executables are placed:
Core library ported:
-
GalaxyCommunicator/src/libGalaxy
-
libGalaxy.(dsw, dsp, mak)
GalaxyCommunicator/lib/x86-nt/libGalaxy.lib
MIT library ported:
-
GalaxyCommunicator/contrib/MIT/galaxy/src/libGalaxyHubControl
-
libGalaxyHubControl.(dsw, dsp, mak)
GalaxyCommunicator/contrib/MIT/galaxy/lib/x86-nt/libGalaxyHubControl.lib
MITRE library ported:
-
GalaxyCommunicator/contrib/MITRE/utilities/src
-
libMITRE_galaxy.(dsw, dsp, mak)
GalaxyCommunicator/contrib/MITRE/utilities/lib/x86-nt/libMITRE_galaxy.lib
Executables ported:
-
GalaxyCommunicator/src/HUB
-
HUB.(dsw, dsp, mak)
GalaxyCommunicator/bin/x86-nt/HUB.exe
-
GalaxyCommunicator/contrib/MITRE/examples/double
-
double.(dsw, dsp, mak), complex_double.dsp,
multiply.dsp
GalaxyCommunicator/contrib/MITRE/examples/double/bin/x86-nt/(double,
complex_double, multiply).exe
-
GalaxyCommunicator/contrib/MITRE/examples/local_makefile
-
nt_build.(dsw. dsp, mak)
GalaxyCommunicator/contrib/MITRE/examples/local_makefile/bin/x86-nt/nt_build.exe
-
GalaxyCommunicator/contrib/MIT/galaxy/src/verify_program
-
verify_program.(dsw, dsp, mak)
GalaxyCommunicator/contrib/MIT/galaxy/bin/x86-nt/verify_program.exe
What
libraries do I need to compile the HUB?
The HUB executable depends on the libGalaxy.lib
library.
How
do I write a server?
The following are the libraries that most
servers require:
-
libGalaxy.lib
-
libMITRE_galaxy.lib (possibly)
There is no longer any difference between
platforms in writing a server. As documented in the section on adding
a server, the new style of header
generation relies only on the C preprocessor, so it is portable across
platforms. All MITRE examples have been upgraded to use this new style.
As a demonstration, the double
example has been ported to NT.
Differences between
Unix and Windows
The functionality differs slightly between
Unix and Windows versions. Below are some of the known limitations and
differences.
-
Reading with time-out (in sock.c from libsls_util)
was replaced with regular reads under WIN32 since SIGALARMS are not supported.
-
Logging to syslog wasn't ported since the
syslog facility does not exist under NT.
-
Under NT sockets can not be treated as file
descriptors, therefore one cannot poll stdin. This renders the MITRE stdin
poll utility unusable.
-
Logging using the HUB will not lock files
before writing to them.
Please send comments and suggestions
to:
bugs-darpacomm@linus.mitre.org
Last modified July 13, 2000
Copyright (c) 1998, 1999, 2000
The MITRE
Corporation
ALL RIGHTS RESERVED