Двоичный -совместимость кода

редактировать

Совместимость двоичного кода (двоичная совместимость или объектный код -совместимость) является свойством компьютерные системы, что означает, что они могут запускать один и тот же исполняемый код, обычно машинный код для универсального компьютера ЦП. Совместимость исходного кода, с другой стороны, означает, что перед запуском программы необходима перекомпиляция или интерпретация.

Для скомпилированной программы в общей операционной системе двоичная совместимость часто означает, что не только процессоры (наборы инструкций ) двух компьютеров являются двоичными, но также что интерфейсы и поведение операционная система и API и ABI, соответствующие этим API, в достаточной степени равны, т. е. «совместимы».

Такой термин, как обратная совместимость, обычно подразумевает совместимость объектного кода. Это означает, что новое компьютерное оборудование и / или программное обеспечение имеют (практически) все функции старого, а также дополнительные возможности или производительность. Таким образом, старый исполняемый код будет работать без изменений в новом продукте. Для скомпилированной программы, работающей непосредственно на ЦП под ОС, «двоично-совместимая операционная система» в первую очередь означает совместимость двоичного интерфейса приложения (ABI) с другой системой. Однако это также часто подразумевает, что API-интерфейсы, от которых приложение зависит, прямо или косвенно (например, Windows API ), достаточно похожи. Аппаратное обеспечение (помимо ЦП, например, для графики) и периферийные устройства, к которым обращается приложение, также могут быть фактором полной совместимости, хотя многие аппаратные различия скрыты современными API-интерфейсами (часто частично предоставляемыми самой ОС и частично конкретными драйверы устройств ).

В других случаях должен использоваться общий перенос программного обеспечения, чтобы заставить работать несовместимые с двоичным кодом программы.

Двоичная совместимость - главное преимущество при разработке компьютерных программ, которые должны выполняться в нескольких операционных системах. Некоторые ОС на основе Unix, такие как FreeBSD или NetBSD, предлагают двоичную совместимость с более популярными ОС, такими как производные от Linux., поскольку большинство двоичных исполняемых файлов обычно не распространяются для таких ОС.

Большинство ОС обеспечивают двоичную совместимость в каждой версии ОС для большинства двоичных файлов, созданных для работы в более ранних версиях ОС. Например, многие исполняемые файлы, скомпилированные для Windows 3.1, Windows 95 или Windows 2000, также могут быть запущены в Windows XP или Windows 7 и многие приложения для DOS работают также с современными версиями Windows.

Содержание
  • 1 Оборудование, совместимое с двоичным кодом
  • 2 Операционные системы, совместимые с двоичным кодом
  • 3 См. Также
  • 4 Ссылки
  • 5 Внешние ссылки
Бинарно-совместимое оборудование

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

Бинарно-совместимые операционные системы

Бинарно-совместимые операционные системы - это операционные системы, которые стремятся реализовать бинарную совместимость с другой ОС или другим вариантом той же марки. Это означает, что они совместимы с ABI (для двоичного интерфейса приложения ). Поскольку задача ОС - запускать программы, архитектуры набора команд , запускающие ОС, должны быть одинаковыми или совместимыми. В противном случае программы можно использовать в эмуляторе ЦП или в более быстром механизме динамической трансляции, чтобы сделать их совместимыми.

Например, ядро ​​Linux несовместимо с Windows. Это не означает, что Linux не может быть двоично совместим с приложениями Windows. Доступно дополнительное программное обеспечение, Wine, которое в некоторой степени делает это. Разработка ReactOS направлена ​​на создание ОС с открытым исходным кодом, бесплатного программного обеспечения, которая была бы двоично совместима с Microsoft Windows NT. семейство ОС, использующих Wine для совместимости приложений и переопределяющих ядро ​​Windows для дополнительной совместимости, например, для драйверов, тогда как Linux будет использовать драйверы Linux, а не драйверы Windows. FreeBSD и другие члены семейства BSD имеют двоичную совместимость с ядром Linux в пользовательском режиме за счет преобразования системных вызовов Linux в вызовы BSD. Это позволяет запускать код приложений и библиотек, которые работают в ОС на базе Linux, также и в BSD.

Обратите внимание, что бинарно-совместимая ОС отличается от запуска альтернативной ОС через виртуализацию или эмуляцию, которая выполняется для запуска программного обеспечения в альтернативной ОС в случае, когда ОС хоста несовместима. Иногда виртуализация предоставляется вместе с ОС хоста (или такое программное обеспечение может быть получено), что фактически делает ОС хоста совместимой с программами. Например, Windows XP Mode для Windows 7 позволяет пользователям запускать 64-битную версию Windows 7 и разрешать старому программному обеспечению работать в 32-битная виртуальная машина под управлением Windows XP ; VMware Workstation / VMware Fusion, Parallels Workstation и Windows Virtual PC позволяют запускать другие ОС в Windows, Linux и macOS.

В качестве другого примера, Mac OS X на PowerPC имел возможность запускать Mac OS 9 и более раннее прикладное программное обеспечение через Классический - но это не сделало Mac OS X бинарно-совместимой ОС с Mac OS 9. Вместо этого классическая среда фактически запускала Mac OS 9.1 на виртуальной машине, выполняя внутри как обычный процесс. Mac OS X.

См. также
Ссылки
Внешние ссылки
  • KDE Techbase Policies - сборник практических правил разработки на C ++ (с некоторыми примерами ) для того, чтобы не нарушать бинарную совместимость между выпусками библиотеки.
  • ABI Analysis Tools - набор инструментов с открытым исходным кодом для анализа ABI и обратной двоичной совместимости, реализующих политики KDE Techbase
Последняя правка сделана 2021-05-12 06:24:21
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте