Шим (вычисления)

Программное обеспечение, которое перехватывает и изменяет поведение
Ядро TI Ducati SIP ускоряет видео и ускоряет обработку изображений. Фактическая ИС, выполняющая вычисления, управляется программным обеспечением, работающим на двух микроконтроллерах Cortex-M3 . Операционной системе (работающей на главном процессоре) нужна только прокладка для взаимодействия с подсистемой.

В компьютерном программировании shim это библиотека , которая прозрачно перехватывает вызовы API и изменяет переданные аргументы, обрабатывает саму операцию или перенаправляет операцию в другое место. [1] [2] Прокладки могут использоваться для поддержки старого API в новой среде или нового API в старой среде. Прокладки также могут использоваться для запуска программ на других программных платформах, нежели те, для которых они были разработаны.

Прокладки для старых API обычно появляются, когда поведение API меняется, тем самым вызывая проблемы совместимости для старых приложений, которые все еще полагаются на старую функциональность; в таких случаях старый API все еще может поддерживаться тонким слоем совместимости поверх нового кода. Прокладки для новых API определяются как: « библиотека , которая переносит новый API в старую среду, используя только средства этой среды». [3]

Примеры

  • Веб- полифиллы реализуют новые веб-стандарты , используя старые стандарты и JavaScript , если новый стандарт недоступен в данном веб-браузере . [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]

Смотрите также

Ссылки

  1. ^ «Приложения вашей компании несовместимы с Windows 7? Используйте для них прокладки, говорит Microsoft». Computerworld . 2009-03-21. Архивировано из оригинала 2014-04-07 . Получено 2014-04-05 .
  2. ^ «Разоблачение прокладок — или — Использование набора инструментов App Compat Toolkit для совместимости старых вещей с новыми». Microsoft TechNet . 2011-06-17 . Получено 2014-04-05 .
  3. ^ ab Аксель Раушмайер (2014). Говоря на JavaScript. Прокладки против полифиллов.
  4. ^ "Microsoft Application Compatibility Toolkit 5.0". Microsoft . 2007-12-11 . Получено 2008-06-24 .
  5. ^ "Исходный код bind.so". Дэниел Райд. 2010-01-09. Архивировано из оригинала 2014-03-30 . Получено 2014-04-05 .
  6. ^ Уилсон, Мэтью (август 2003 г.), «Обобщенная обработка строк: оболочки доступа и туннелирование типов», C/C++ Users Journal , 21 (8)
  • Microsoft Dev-Center — Совместимость клиентских и серверных приложений Windows 8 2012
  • Microsoft TechNet - Понимание прокладок
Retrieved from "https://en.wikipedia.org/w/index.php?title=Shim_(computing)&oldid=1258246146"