Вот что говорит википедия:Что такое ABI (Application Binary Interface)?
В компьютерном программном обеспечении, приложение двоичный интерфейс (ABI) описывает интерфейс низкоуровневого между программой с приложением (или любого типом) и операционной системой или другое приложение .
ABIs обложка детали, такая как тип данных, размер и выравнивание; вызывающее соглашение , которое контролирует передачу аргументов функций и возвращенных значений; система номеров и как приложение должно выполнять системные вызовы в операционной системе ; и в случае полной операционной системы ABI, двоичный формат объектных файлов , библиотеки программ и т. д. Полный ABI, , такие как бинарная совместимость стандарт Intel (КСМ), позволяет программу из одной операционной системы, поддерживающей , что ABI для запуска без модификаций на любой другой такой системе, при условии , что необходимые разделяемые библиотеки присутствует, и аналогичные предпосылки выполнены .
Я полагаю, что ABI является конвенцией или стандартом, а компиляторы/линкеры используют это соглашение для создания объектных кодов. Это правильно? Если да, кто сделал эти соглашения (компании или какая-то организация)? Каково было, когда ABI не было? Есть ли документы об этих ABI, на которые мы можем ссылаться?
См. Http://stackoverflow.com/questions/2171177/i-never-really-understood-what-is-application-binary-interface-abi – Simone