система времени выполнения и совместимый уровень

295
Tim
  1. Мне было интересно, если система выполнения и совместимый уровень - это одно и то же? Похоже, они оба представляют собой какое-то программное обеспечение, запуск которого позволяет запускать на них другое программное обеспечение. Ссылки на Википедию для двух понятий были предоставлены выше.
  2. Они обе виртуальные машины ? В статье Википедии о виртуальных машинах упоминается, что система времени выполнения является разновидностью виртуальной машины.
  3. Почему Cygwin является совместимым слоем в своем типе в статье в Википедии ? Это эмулятор ОС Linux и / или система времени выполнения?
1
Рэндольф Ричардсон довольно хорошо охватывает общие вопросы, но для решения ваших конкретных вопросов (и учитывая, что статьи Википедии объединяют несколько совершенно разных технологий), некоторые уровни времени выполнения включают виртуальные машины (а некоторые нет). Cygwin - это уровень совместимости, во многом похожий на WINE, так как он обеспечивает совместимость на уровне исходного кода с приложениями Linux, но не эмулирует, он просто предоставляет API. user55325 12 лет назад 1
@ user55325: Спасибо! Можете ли вы конкретно рассказать о том, какие статьи из Википедии объединяют несколько совершенно разных технологий и как? Tim 12 лет назад 1
@ user55325: Я согласен с вами, что Cygwin и WINE являются слоями совместимости. Я намеренно оставался более общим, потому что считаю, что различия между этими двумя областями только начинают стираться, частично (но в некоторой степени) благодаря виртуализации, и в основном благодаря маркетологам, которые иногда неправильно используют техническую терминологию. Randolf Richardson 12 лет назад 0

1 ответ на вопрос

3
Randolf Richardson

Несмотря на то, что есть много общего, есть несколько ключевых отличий:

Хорошим примером Runtime System была бы виртуальная машина Java, которая обеспечивает согласованную кроссплатформенную среду для [скомпилированного] байтового кода Java.

Хорошим примером уровня совместимости может служить WINE, который позволяет пользователям запускать неизмененные приложения Windows непосредственно в Linux и Unix. По сравнению с WINE уровни совместимости также могут быть довольно небольшими, например, одна библиотека, которую основная база кода использует для доступа к функциям ОС (например, открытие файла, обмен данными через Интернет и т. Д.), Которые обеспечивают согласованный API чтобы приложение эффективно скрывало все отвратительные различия, характерные для ОС.

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

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

Преимущество среды выполнения состоит в том, что после переноса на новую платформу приложения будут работать без изменений.

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

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

Спасибо! Любые ссылки на концепции, упомянутые в этом посте? Книги, веб-страницы, ... Tim 12 лет назад 1
@Tim: Все это основано на моем собственном опыте (я написал свой ответ ** от всего сердца **) в работе с этими технологиями на протяжении многих лет. Что приходит на ум, так это то, что я узнал много нового от разных полезных людей из Freenode.Net (IRC), читая документацию по продуктам, о которых я упоминал (и другие), а также работая с ними, чтобы использовать [или хотя бы расширять] мои собственные технические знания (если кто-то хотел бы добавить мой ответ здесь, в комментариях, я, конечно, приветствую это). Randolf Richardson 12 лет назад 0

Похожие вопросы