Двоичная совместимость

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Двои́чная совмести́мость, также бина́рная совмести́мость — от англ. binary compatibility — вид совместимости программ, позволяющий программе работать в различных средах без изменения её двоичных файлов.

Этот термин часто используется в значении «совместимость операционных систем», и в таком случае означает способность уже скомпилированной версии программы для одной операционной системы работать в другой операционной системе без перекомпиляции. К примеру, практически все программы, написанные для Windows 2000, можно запустить в Windows XP — это означает, что Windows 2000 и Windows XP бинарно совместимы.

Двоичная совместимость включает в себя побайтовую совместимость полей загрузки, полную идентичность механизма вызова функций, передачи переменных и получения результата вычислений, и полную реализацию интерфейса программирования. При этом технически реализация может быть совершенно иной, — главное, чтобы были реализованы все вызовы и чтобы они приводили к ожидаемому результату, а каким способом этот результат достигается, решают создатели программы.

Слом двоичной совместимости означает прекращение поддержки программ и обязательное требование перекомпиляции и возможных исправлений в программе, чтобы она заработала. К примеру, после того, как компания Apple начала использовать в своих компьютерах процессоры Intel, была сломана двоичная совместимость со всеми приложениями, написанными для процессоров PowerPC. Чтобы не лишиться всех разработанных в прошлом программых продуктов для операционной системы Mac OS, компания Apple использует лёгкий транслятор Rosetta, переводящий вызовы операционной системы Mac OS для PowerPC в вызовы Mac OS для Intel. Этот пример демонстрирует также возможный метод борьбы со сломом двоичной совместимости.

В операционной системе Solaris 10 для x86 существует возможность запускать приложения для Линукса без перекомпиляции с помощью BrandZ. На платформе SPARC такая возможность отсутствует.

См. также


de:Binärschnittstelle

en:Application binary interface it:Application binary interface ja:Application Binary Interface pl:ABI zh:应用二进制接口

Личные инструменты

Served in 0.088 secs.