What is SciTech SNAP?
The SciTech System Neutral Access Protocol, or SNAP, is an operating
system portable, dynamically loadable, 32-bit device driver
architecture. SciTech SNAP defines the architecture for loading an
operating system neutral binary device driver for any type of hardware
device, be it a graphics controller, audio controller, SCSI controller
or network controller. SciTech SNAP drivers are source code portable
between different microprocessor platforms, and the binary drivers are
operating system portable within a particular microprocessor family.
Hence the Intel x86 drivers can work on any 386+ CPU with any 32-bit
operating system or environment supported on that CPU.
The main SciTech SNAP library for a particular device type is always
contained in a single file that we call a ‘Binary Portable DLL’, or
.bpd file. In the case of the Graphics Architecture, the driver file is
named ‘graphics.bpd’ and always lives in the operating system specific
SciTech SNAP driver directory, or in the drivers directory of the
application using it. Internally the complete set of device support
files may be spread across multiple files inside subdirectories, or all
files may be optionally bound into a single, large binary file. The
internal architecture of SNAP is such that only the necessary code to
communicate with a specific device is actually loaded into memory at
runtime, regardless of whether everything is bound into a single large
binary file or maintained separately on disk. Loading only the
necessary portions at runtime keeps the runtime memory footprint for
the drivers exceptionally low. For instance even though the complete,
statically bound graphics driver file may be well in excess of 8Mb,
only a small portion of that (say around 250Kb) is actually loaded in
memory at runtime to support a particular graphics device.
Due to the dynamic nature of the SciTech SNAP architecture, it is
possible to bind together support for only a few specific hardware
devices in a single binary library. For instance an industrial
developer may only require support for the three graphics chipsets they
install in their machines on a production line, so the total static
size of the SNAP binaries can be significantly smaller. This can help
save on disk and flash ROM space in highly embedded and industrial
applications. SciTech SNAP also allows certain features to be ‘bound
out’ of the resulting binary, further reducing disk space if those
features are not required for a particular environment.
Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com