Jump to content

Совместимость двоичного кода

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

Для скомпилированной программы в общей операционной системе двоичная совместимость часто подразумевает, что не только процессоры ( наборы команд ) двух компьютеров двоично совместимы, но также интерфейсы и поведение операционной системы (ОС) и интерфейсы прикладного программирования (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, вплоть до Windows 10, пока NTVDM. поддерживался .

Бинарно-совместимое оборудование

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

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

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

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

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

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

Обратите внимание, что бинарно-совместимая ОС отличается от запуска альтернативной ОС посредством виртуализации или эмуляции , которая выполняется для запуска программного обеспечения в альтернативной ОС в случае, когда ОС хоста несовместима. Иногда виртуализация обеспечивается хостовой ОС (или можно получить такое программное обеспечение), что эффективно делает хостовую ОС совместимой с программами. Например, режим Windows XP для 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 и более ранние прикладные программы через Classic , но это не делало Mac OS X бинарно-совместимой ОС с Mac OS 9. Вместо этого фактически работала классическая среда. Mac OS 9.1 на виртуальной машине , работающая как обычный процесс внутри Mac OS X. [1] [2]

См. также

[ редактировать ]
  1. ^ «Архитектура системы Mac OS X» . 2002. Архивировано из оригинала 2 августа 2002 года.
  2. ^ Сингх, Амит (29 июня 2006 г.). Внутреннее устройство Mac OS X: системный подход . Аддисон-Уэсли . Раздел 2.11.8: Классика. ISBN  0-321-27854-2 . Classic Startup — это приложение Mach-O, которое запускает Mac OS 9 в своем адресном пространстве. Он обеспечивает уровень аппаратной абстракции между Mac OS 9 и Mac OS X путем виртуализации ловушек, системных вызовов и прерываний. Он работает в защищенной среде памяти, в которой несколько процессов Mac OS 9 располагаются поверх одного процесса Mac OS X BSD.
[ редактировать ]
  • Политики KDE Techbase — сборник практических правил разработки на C++ (с некоторыми примерами ), позволяющий не нарушать двоичную совместимость между выпусками библиотеки.
  • Инструменты анализа ABI — набор инструментов с открытым исходным кодом для анализа ABI и обратной двоичной совместимости, реализующих политики KDE Techbase.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: bbebd8ceff4af6e9a5624172a596b546__1714333680
URL1:https://arc.ask3.ru/arc/aa/bb/46/bbebd8ceff4af6e9a5624172a596b546.html
Заголовок, (Title) документа по адресу, URL1:
Binary-code compatibility - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)