Software que intercepta y modifica el comportamiento
En programación de computadoras , un shim es una biblioteca que intercepta de forma transparente llamadas API y cambia los argumentos pasados, maneja la operación en sí o redirige la operación a otra parte. [1] [2] Las cuñas se pueden utilizar para admitir una API antigua en un entorno más nuevo o una API nueva en un entorno más antiguo. Las cuñas también se pueden utilizar para ejecutar programas en plataformas de software diferentes a las que fueron desarrollados.
Las correcciones para API más antiguas suelen producirse cuando cambia el comportamiento de una API, lo que provoca problemas de compatibilidad para aplicaciones más antiguas que todavía dependen de la funcionalidad más antigua; En tales casos, la API anterior aún puede ser compatible con una fina capa de compatibilidad encima del código más nuevo. Las cuñas para API más nuevas se definen como: "una biblioteca que trae una nueva API a un entorno más antiguo, utilizando únicamente los medios de ese entorno". [3]
Soporte de AppleTalk en computadoras Macintosh , durante el breve período en el que Apple Computer admitió el sistema de red Open Transport . Miles de programas Mac se basaron en el protocolo AppleTalk; Para admitir estos programas, AppleTalk se volvió a implementar como una "pila" de OpenTransport y luego se volvió a implementar como una cuña API encima de esta nueva biblioteca.
El kit de herramientas de compatibilidad de aplicaciones (ACT) de Microsoft Windows utiliza el término para referirse a bibliotecas compatibles con versiones anteriores . Las correcciones simulan el comportamiento de versiones anteriores de Windows para aplicaciones heredadas que dependen de una funcionalidad incorrecta o obsoleta, o corrigen la forma en que las aplicaciones mal escritas llaman a API sin cambios, por ejemplo, para corregir errores de cuentas de usuario con privilegios mínimos (LUA) . [4]
bind.so es una biblioteca shim para Linux que permite que cualquier aplicación, independientemente de los permisos, se vincule a un socket de escucha o especifique una dirección IP saliente. [5] Utiliza el mecanismo LD_PRELOAD , que permite cargar shims y otras bibliotecas en cualquier programa.
En el patrón de túnel de tipos , una capa de interfaz genérica utiliza una familia de correcciones para traducir un conjunto heterogéneo de tipos a un único tipo primitivo utilizado por una API subyacente. [6]
^ "¿Las aplicaciones de su empresa son incompatibles con Windows 7? Cálcelas, dice Microsoft". Mundo de la informática . 2009-03-21 . Consultado el 5 de abril de 2014 .
^ "Desmitificar Shims - o - Usar el kit de herramientas App Compat para hacer que tus cosas viejas funcionen con tus cosas nuevas". Microsoft TechNet . 2011-06-17 . Consultado el 5 de abril de 2014 .
^ ab Axel Rauschmayer (2014). Hablando JavaScript. Calzas versus Polyfills.
^ "Kit de herramientas de compatibilidad de aplicaciones de Microsoft 5.0". Microsoft . 2007-12-11 . Consultado el 24 de junio de 2008 .
^ "Código fuente de bind.so". Daniel Ryde. 2010-01-09 . Consultado el 5 de abril de 2014 .[ enlace muerto ]
^ Wilson, Matthew (agosto de 2003), "Manipulación de cadenas generalizada: cuñas de acceso y tunelización de tipos", C/C++ Users Journal , 21 (8)
enlaces externos
Microsoft Dev-Center: compatibilidad de aplicaciones Windows 8 Client y Server 2012