Виртуальная Машина
A virtual machine (VM) is a software-based emulation of a physical computer system, allowing multiple isolated operating systems and applications to run concurr...
A virtual machine (VM) — это программная эмуляция физической компьютерной системы. Она работает как самостоятельная среда, в которой запускается собственная операционная система (guest OS) и приложения, независимо от нижележащего оборудования (host machine). Технология виртуализации позволяет одновременно запускать несколько VM на одном физическом хосте, каждая со своими виртуализированными аппаратными ресурсами, такими как CPU, память, хранилище и сетевые интерфейсы. Эта абстракция управляется hypervisor, который представляет собой слой программного обеспечения (Type 1 работает непосредственно на оборудовании, Type 2 работает поверх host OS), отвечающий за создание, запуск и управление VM. VM предоставляют множество преимуществ, включая аппаратную независимость, позволяющую приложениям работать на различных аппаратных конфигурациях без модификации; изоляцию ресурсов, предотвращающую влияние проблем в одной VM на другие или на хост; и эффективное использование ресурсов за счет консолидации нескольких рабочих нагрузок на меньшем количестве физических серверов. Они широко используются для консолидации серверов, сред тестирования и разработки, аварийного восстановления, запуска устаревших приложений и создания изолированных песочниц безопасности. Компромиссы включают накладные расходы на производительность по сравнению с bare-metal execution из-за слоя hypervisor и необходимость в достаточных ресурсах хоста для эффективной поддержки нескольких VM. Управление жизненным циклом VM, хранилищем и сетью также требует специальных знаний.
graph LR
Center["Виртуальная Машина"]:::main
Rel_hypervisor["hypervisor"]:::related -.-> Center
click Rel_hypervisor "/terms/hypervisor"
Rel_virtualization["virtualization"]:::related -.-> Center
click Rel_virtualization "/terms/virtualization"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простыми словами
ЭВМ — это как двигатель внутри компьютера [Ethereum](/ru/terms/ethereum). Она читает специальные инструкции (байт-код) из смарт-контрактов и выполняет действия, подобно шеф-повару, который шаг за шагом следует рецепту. Каждый шаг требует немного денег на "газ", чтобы готовка не длилась вечно.
🤓 Expert Deep Dive
Виртуальная машина Ethereum (EVM) представляет собой детерминированную, стековую среду выполнения, предназначенную для смарт-контрактов. Ее основная функция заключается в обработке вызовов транзакций и переходов состояний в сети Ethereum. Спецификация EVM определяет набор опкодов, размер слова в 256 бит и механизм распределения газа для измерения вычислительных усилий. Детерминизм имеет первостепенное значение: каждый узел, выполняющий один и тот же байт-код с одним и тем же начальным состоянием, должен прийти к идентичному конечному состоянию. Это достигается за счет строгого соблюдения функции перехода состояний EVM. Механизм газа, предотвращая злоупотребление ресурсами, вводит экономические ограничения, которые существенно влияют на дизайн децентрализованных приложений (dApp) и пользовательский опыт, особенно в отношении стоимости транзакций и ограничений пропускной способности. Архитектурные компромиссы включают присущие стековой архитектуре ограничения для сложных вычислений и трудности в оптимизации эффективности использования газа при выполнении смарт-контрактов. Выбор дизайна EVM повлиял на последующие разработки виртуальных машин блокчейна, но также подчеркивает постоянный поиск более высокой производительности и снижения комиссий за транзакции, что привело к таким инновациям, как решения второго уровня (Layer 2) и альтернативные среды выполнения.