Интерфейсы API и ABI

На системном уровне существует два отдельных набора определений и описаний, влияющих на переносимость программ. Первый из них — это интерфейс прикладного программирования (Application Programming Interface, API), а второй — двоичный интерфейс приложений (Application Binary Interface, ABI). Оба определяют и описывают интерфейсы между различными частями.

Интерфейс ABI

ABI определяет низкоуровневый двоичный интерфейс между двумя или несколькими частями программного обеспечения в конкретной архитектуре. Интерфейс ABI формулирует, как приложение взаимодействует с самим собой, как приложение взаимодействует с ядром и как приложение взаимодействует с библиотекой. ABI обеспечивает совместимость на двоичном уровне (binary compatibility), то есть гарантирует, что фрагмент конечной программы будет функционировать в любой системе, где имеется тот же ABI, не требуя перекомпиляции. Интерфейсы ABI связаны с такими вещами, как соглашения о вызовах, порядок следования байтов, использование регистров, выполнение системных вызовов, компоновка, поведение библиотек и формат двоичных объектов. Например, соглашения о вызовах определяют способы вызова функций, способ передачи аргументов, какие регистры сохраняются, а какие изменяются и как вызывающий код получает возвращаемое значение. В действительности, мы обычно называем отдельные ABI по их машинным именам, например alpha или х86-64.

Интерфейс API

В интерфейсе API определяются способы, при помощи которых один фрагмент программного обеспечения общается с другим на уровне исходных текстов. Он предоставляет абстракцию в виде стандартного набора интерфейсов — обычно функций, которые какая-то часть программного обеспечения (обычно, хотя и не всегда, высокоуровневая) может вызывать из другой части программного обеспечения (обычно низкоуровневой). Например, API может абстрагировать концепцию вывода текста на экран при помощи семейства функций, обеспечивающих все необходимое для отображения текста. В API просто определяется интерфейс. Фрагмент программного обеспечения, который фактически предоставляет интерфейс API, называется реализацией API (implementation). API всего лишь гарантирует, что если обе части программного обеспечения будут удовлетворять требованиям API, то они будут совместимы на уровне исходного кода (source compatible). Это означает, что приложение-пользователь API будет успешно компилироваться с данной реализацией API.

Второе определение API программный интерфейс приложений – набор программ которые могут использовать программы для запроса служб ОС (POSIX, WinAPI.)

 

Процессы генерируют вызов функций, определенных интерфейсом прикладного программирования, для получения доступа к обслуживанию, предоставляемому более низким уровнем системы. Такие вызовы функций могут порождать системные вызовы (system calls), для запроса обслуживания из операционной системы.








Дата добавления: 2017-01-29; просмотров: 3662;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.