fbpx
Wikipedia

Shim (computing)

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.

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.

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 Edit

  • Web polyfills implement newer web standards using older standards and JavaScript, if the newer standard is not available in a given web browser.[3]
  • Support of AppleTalk on Macintosh computers, during the brief period in which Apple Computer supported the Open Transport networking system. Thousands of Mac programs were based on the AppleTalk protocol; to support these programs, AppleTalk was re-implemented as an OpenTransport "stack", and then re-implemented as an API shim on top of this new library.
  • The Microsoft Windows Application Compatibility Toolkit (ACT) uses the term to mean backward compatible libraries. Shims simulate the behavior of older versions of Windows for legacy applications that rely on incorrect or deprecated functionality, or correct the way in which poorly written applications call unchanged APIs, for example to fix least-privileged user account (LUA) bugs.[4]
  • bind.so is a shim library for Linux that allows any application, regardless of permissions, to bind to a listening socket or specify outgoing IP address.[5] It uses the LD_PRELOAD mechanism, which allows shims and other libraries to be loaded into any program.
  • In the type tunnel pattern, a generic interface layer uses a family of shims to translate a heterogeneous set of types to a single primitive type used by an underlying API.[6]

See also Edit

References Edit

  1. ^ "Your company's apps incompatible with Windows 7? Shim them, says Microsoft". Computerworld. 2009-03-21. 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. ^ a b 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. Retrieved 2014-04-05.[dead link]
  6. ^ Wilson, Matthew (August 2003), "Generalized String Manipulation: Access Shims and Type Tunneling", C/C++ Users Journal, 21 (8)

External links Edit

  • Microsoft Dev-Center - Windows 8 Client and Server 2012 application Compatibility
  • Microsoft TechNet - Understanding Shims

shim, computing, confused, with, abbreviation, shared, memory, often, pronounced, shim, shim, physical, spacer, heat, sink, other, uses, shim, disambiguation, this, article, needs, additional, citations, verification, please, help, improve, this, article, addi. Not to be confused with shm an abbreviation for shared memory often pronounced shim or a CPU shim a physical spacer for a heat sink For other uses see Shim disambiguation This article needs additional citations for verification Please help improve this article by adding citations to reliable sources Unsourced material may be challenged and removed Find sources Shim computing news newspapers books scholar JSTOR June 2010 Learn how and when to remove this template message 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 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 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 Contents 1 Examples 2 See also 3 References 4 External linksExamples EditWeb polyfills implement newer web standards using older standards and JavaScript if the newer standard is not available in a given web browser 3 Support of AppleTalk on Macintosh computers during the brief period in which Apple Computer supported the Open Transport networking system Thousands of Mac programs were based on the AppleTalk protocol to support these programs AppleTalk was re implemented as an OpenTransport stack and then re implemented as an API shim on top of this new library The Microsoft Windows Application Compatibility Toolkit ACT uses the term to mean backward compatible libraries Shims simulate the behavior of older versions of Windows for legacy applications that rely on incorrect or deprecated functionality or correct the way in which poorly written applications call unchanged APIs for example to fix least privileged user account LUA bugs 4 bind so is a shim library for Linux that allows any application regardless of permissions to bind to a listening socket or specify outgoing IP address 5 It uses the LD PRELOAD mechanism which allows shims and other libraries to be loaded into any program In the type tunnel pattern a generic interface layer uses a family of shims to translate a heterogeneous set of types to a single primitive type used by an underlying API 6 See also EditAdapter pattern Application virtualization Driver wrapper Glide wrapper Glue code Stub computer science Thunk compatibility mapping Windows on Windows WoW Wrapper libraryReferences Edit Your company s apps incompatible with Windows 7 Shim them says Microsoft Computerworld 2009 03 21 Retrieved 2014 04 05 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 a b Axel Rauschmayer 2014 Speaking JavaScript Shims Versus Polyfills Microsoft Application Compatibility Toolkit 5 0 Microsoft 2007 12 11 Retrieved 2008 06 24 Source code of bind so Daniel Ryde 2010 01 09 Retrieved 2014 04 05 dead link Wilson Matthew August 2003 Generalized String Manipulation Access Shims and Type Tunneling C C Users Journal 21 8 External links EditMicrosoft Dev Center Windows 8 Client and Server 2012 application Compatibility Microsoft TechNet Understanding Shims Retrieved from https en wikipedia org w index php title Shim computing amp oldid 1132229379, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.