## 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