Shim (computing)

Last updated
The TI Ducati SIP core does video acceleration and accelerated image processing. The actual IC doing the calculations is controlled by software running on two Cortex-M3 microcontrollers. The operating system (running on the host CPU) only needs a shim to interface with the subsystem. Texas Instruments Ducati.svg
The TI Ducati SIP core does video acceleration and accelerated image processing. The actual IC doing the calculations is controlled by software running on two Cortex-M3 microcontrollers. The operating system (running on the host CPU) only needs a shim to interface with the subsystem.

In computer programming, a shim is a library that transparently intercepts API calls and changes the arguments passed, handles the operation itself or redirects the operation elsewhere. [1] [2] Shims can be used to support an old API in a newer environment, or a new API in an older environment. Shims can also be used for running programs on different software platforms than they were developed for.

Contents

Shims for older APIs typically come about when the behavior of an API changes, thereby causing compatibility issues for older applications which still rely on the older functionality; in such cases, the older API can still be supported by a thin compatibility layer on top of the newer code. Shims for newer APIs are defined as: "a library that brings a new API to an older environment, using only the means of that environment." [3]

Examples

See also

References

  1. "Your company's apps incompatible with Windows 7? Shim them, says Microsoft". Computerworld. 2009-03-21. Archived from the original on 2014-04-07. Retrieved 2014-04-05.
  2. "Demystifying Shims - or - Using the App Compat Toolkit to make your old stuff work with your new stuff". Microsoft TechNet. 2011-06-17. Retrieved 2014-04-05.
  3. 1 2 Axel Rauschmayer (2014). Speaking JavaScript. Shims Versus Polyfills.
  4. "Microsoft Application Compatibility Toolkit 5.0". Microsoft. 2007-12-11. Retrieved 2008-06-24.
  5. "Source code of bind.so". Daniel Ryde. 2010-01-09. Archived from the original on 2014-03-30. Retrieved 2014-04-05.
  6. Wilson, Matthew (August 2003), "Generalized String Manipulation: Access Shims and Type Tunneling", C/C++ Users Journal, 21 (8)