1) тестирование и отладка приложений с возможностью не устанавливать на реальную систему.
(изоляция)
2) автоматизация задач по администрированию систем.
(унификация, стандартизация)
Видимо имеется в виду что-то вроде докера, где архитектура эмулируемой машины подгоняется под какой-то типовой шаблон (возможно всего один, или небольшое количество), и приложения затем создаются, распространяются и используются в уже настроенном под такую среду состоянии ("контейнере").
Я не проводил аналогии между контейнерными перевозками в логистике грузов в материальном мире и контейнерами докера, может быть имеет смысл?
3) размещение образов дисков на общедоступных серверах для использования их другими пользователями
(публикация, размножение (тиражирование, копирование, дублицирование ПО), распространение ПО (диссеминация) )
4) обслуживание и развёртывание вебсайтов и приложений в облачной среде
(унификация, стандартизация, изоляция)
5) использование готовых приложений, предназначенных для конкретной платформы.
(эмуляция)
Готовое приложение заработает, если сойдутся все компоненты эмулируемой платформы. Набор команд, архитектура, вызовы и соглашения операционной системы, используемые протоколы.
В этом случае, очевидно, виртуальная машина должна быть похожа на эту платформу, то есть, используемые двоичные коды команд должны быть такими же, как в имитируемой платформе, а не такими, как захотелось автору виртуальной машины по его произволу.
6) разработка и тестирование на различных платформах без необходимости их покупки (актуально для Эльбрусов)
(эмуляция, экономия, )
7) Подготовка приложений для других операционных систем, например сборка на сервер под Linux для смартфона на Android
(эмуляция, кросс-компиляция).
8) Использование специализированных вычислительных платформ для более эффективной обработки данных.
(эмуляция, скорость/быстродействие, кросс-компиляция)
Cобирать ПО для слабой машины типа роутера или тому подобной слабомощной коробочки на мощном сервере сборки. Виртуальная машина позволяет использовать более мощное железо.
9) использование машинного обучения для извлечения информации из больших данных
Идея такая же, как в пункте 8, используем мощное железо (серверы? рендерные фермы?)
вместо слабого (смартфонов? очков виртуальной реальности?), только задача другая, не компиляция, а обработка данных.
Чего мы здесь (девяти пунктах от ChatGPT) не видим? Доказательств корректности ПО. Как будто бы нет связи между машинами Поста и виртуальными машинами для архитектуры Intel 64. А она есть, только почему-то про неё не пишут.
Ещё виртуальные машины могут использоваться при описании семантики (прагматики?) языков программирования. Например при описании языка Синхро была описана и необходимая виртуальная машина (так как язык Синхро параллельный, то и машина к нему нужна соответствующая, многопроцессорная).
Виртуальная машина есть в тексте стандарта UEFI. Там она решает задачи унификации и стандартизации (кода, который можно писать в загрузчиках, которые следующая после UEFI стадия запуска вычислительной системы).
Имеющаяся стартовая заготовка виртуальной машины не содержит наставлений/поучений/инструкций для пользователя, которые научили бы/позволили бы пользователю добавлять процессорные команды. Или процессорные части, например регистры. Поэтому пользователь не может использовать этот фреймворк как конструктор и собрать себе эмулятор Интел64, Арм64 или Эльбрус по своему желанию. Использовать надо то, что предоставил автор виртуальной машины, и это даже не АПИ, и не спецификация тоже.
Отредактировано Лис (2023-02-24 00:36:11)