- Мне было интересно, если система выполнения и совместимый уровень - это одно и то же? Похоже, они оба представляют собой какое-то программное обеспечение, запуск которого позволяет запускать на них другое программное обеспечение. Ссылки на Википедию для двух понятий были предоставлены выше.
- Они обе виртуальные машины? В статье Википедии о виртуальных машинах упоминается, что система времени выполнения является разновидностью виртуальной машины.
- Почему Cygwin является совместимым слоем в своем типе в статье в Википедии? Это эмулятор ОС Linux и / или система времени выполнения?
1 ответ
Несмотря на то, что есть много общего, есть несколько ключевых отличий:
Хорошим примером Runtime System была бы виртуальная машина Java, которая обеспечивает согласованную кроссплатформенную среду для [скомпилированного] байтового кода Java.
Хорошим примером уровня совместимости может служить WINE, который позволяет пользователям запускать неизмененные приложения Windows непосредственно в Linux и Unix. По сравнению с WINE уровни совместимости также могут быть довольно небольшими, например, одна библиотека, которую основная база кода использует для доступа к функциям ОС (например, открытие файла, обмен данными через Интернет и т.д.), Которые обеспечивают согласованный API чтобы приложение эффективно скрывало все отвратительные различия, характерные для ОС.
Недостаток среды выполнения состоит в том, что вся среда должна быть доступна для любого кода, который она будет выполнять, что может потребовать больших усилий по разработке.
Недостаток уровня совместимости заключается в том, что он не обязательно обеспечивает согласованность и может быть более сложным для отладки.
Преимущество среды выполнения состоит в том, что после переноса на новую платформу приложения будут работать без изменений.
Преимущество уровня совместимости заключается в том, что для поддержки новой платформы необходимо создать только новый слой (или набор слоев), а главное приложение можно скомпилировать для новой целевой платформы с минимальными изменениями.
Виртуализация похожа на чрезвычайно обширную среду выполнения, но отличается тем, что набор команд ЦП (и любые необходимые устройства) виртуализируются или эмулируются очень хорошо.