Программное обеспечение, которое перехватывает и изменяет поведение
В компьютерном программировании shim — это библиотека , которая прозрачно перехватывает вызовы API и изменяет переданные аргументы, обрабатывает саму операцию или перенаправляет операцию в другое место. [1] [2] Прокладки могут использоваться для поддержки старого API в новой среде или нового API в старой среде. Прокладки также могут использоваться для запуска программ на других программных платформах, нежели те, для которых они были разработаны.
Прокладки для старых API обычно появляются, когда поведение API меняется, тем самым вызывая проблемы совместимости для старых приложений, которые все еще полагаются на старую функциональность; в таких случаях старый API все еще может поддерживаться тонким слоем совместимости поверх нового кода. Прокладки для новых API определяются как: « библиотека , которая переносит новый API в старую среду, используя только средства этой среды». [3]
Поддержка AppleTalk на компьютерах Macintosh в течение короткого периода, когда Apple Computer поддерживала сетевую систему Open Transport . Тысячи программ Mac были основаны на протоколе AppleTalk; для поддержки этих программ AppleTalk был повторно реализован как "стек" OpenTransport, а затем повторно реализован как API-прокладка поверх этой новой библиотеки.
Microsoft Windows Application Compatibility Toolkit (ACT) использует этот термин для обозначения обратно совместимых библиотек. Прокладки имитируют поведение старых версий Windows для устаревших приложений, которые полагаются на неправильную или устаревшую функциональность, или исправляют способ, которым плохо написанные приложения вызывают неизмененные API, например, для исправления ошибок учетной записи пользователя с минимальными привилегиями (LUA) . [4]
bind.so — это библиотека прокладок для Linux , которая позволяет любому приложению, независимо от разрешений, привязываться к прослушиваемому сокету или указывать исходящий IP-адрес. [5] Она использует механизм LD_PRELOAD , который позволяет загружать прокладки и другие библиотеки в любую программу.
В шаблоне туннеля типов общий уровень интерфейса использует семейство прокладок для перевода гетерогенного набора типов в один примитивный тип, используемый базовым API. [6]
^ «Приложения вашей компании несовместимы с Windows 7? Установите на них прокладку, говорит Microsoft». Computerworld . 2009-03-21 . Получено 2014-04-05 .
^ «Разоблачение прокладок — или — Использование набора инструментов App Compat Toolkit для совместимости старых вещей с новыми». Microsoft TechNet . 2011-06-17 . Получено 2014-04-05 .
^ ab Аксель Раушмайер (2014). Говоря на JavaScript. Прокладки против полифиллов.