En programación de computadoras , un shim es una biblioteca que intercepta de manera transparente las llamadas a la API y cambia los argumentos pasados, maneja la operación en sí o redirige la operación a otra parte. [1] [2] Shims 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 calzas también se pueden usar para ejecutar programas en diferentes plataformas de software para las que fueron desarrollados.
Los ajustes para las API más antiguas generalmente se producen cuando cambia el comportamiento de una API, lo que provoca problemas de compatibilidad para las aplicaciones más antiguas que aún dependen de la funcionalidad anterior; en tales casos, la API más antigua aún puede ser compatible con una fina capa de compatibilidad sobre el código más nuevo. Las correcciones para las API más nuevas se definen como: "una biblioteca que trae una nueva API a un entorno más antiguo, utilizando solo los medios de ese entorno". [3]
Ejemplos de
- Los polyfills web implementan estándares web más nuevos utilizando estándares más antiguos y JavaScript , si el estándar más nuevo no está disponible en un navegador web determinado . [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 de 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 API en la parte superior de esta nueva biblioteca.
- El Kit de herramientas de compatibilidad de aplicaciones de Microsoft Windows (ACT) utiliza el término para referirse a bibliotecas compatibles con versiones anteriores . Los shims 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 las 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.
Ver también
Referencias
- ^ "¿Las aplicaciones de su empresa son incompatibles con Windows 7? Aplíquelas, dice Microsoft" . Computerworld . 2009-03-21 . Consultado el 5 de abril de 2014 .
- ^ "Desmitificando Shims - o - Usando el Kit de herramientas de 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 .
- ^ a b 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 .
enlaces externos
- Microsoft Dev-Center: compatibilidad de aplicaciones Windows 8 Client y Server 2012
- Microsoft TechNet: comprensión de las calzas