Я не совсем уверен, что именно он делает, и на самом деле я работаю в ИТ-индустрии, так что не расстраивайтесь, что вы не можете найти много информации, просто ее там нет.
Исходя из того, что я знаю, я считаю, что на самом деле это делает пару вещей, а именно:
- Если система имеет работающие аппаратные возможности виртуализации (SVM на AMD, VT-x на Intel или что-то на ARM, имя которого я не помню), она использует их для обеспечения несколько лучшей изоляции областей виртуальной памяти для каждого из них. процесс.
- Если система поддерживает аппаратное шифрование памяти (SME на AMD или SGX на Intel), она использует это для обеспечения каждого контекста виртуальной памяти (который обычно, но не всегда, то же самое, что процесс) своим собственным действительно (в теории) личная память.
Чтобы ответить на каждый из ваших конкретных запросов:
- Влияние на производительность, как правило, довольно низкое для обеих частей, это одно из преимуществ аппаратного обеспечения. Они, однако, имеют разные типы воздействия. Часть шифрования в основном влияет на сырую пропускную способность памяти (хотя в моем собственном тестировании той же технологии в Linux это было немного, я время от времени считал циклы, чтобы определить разницу в производительности). Тем не менее, часть виртуализации оказывает наибольшее влияние на переключение контекста (например, вызов различных API-интерфейсов WIndows или доступ к оборудованию).
- Что касается совместимости, вы не должны видеть много проблем, если вы не используете программное обеспечение, которое делает какие-то патологически глупые вещи, и у вас относительно недавний процессор. Если ваш процессор недостаточно новый, он не будет поддерживать вложенную виртуализацию, и вы не сможете правильно запускать большинство типов виртуальных машин в системе (официально Windows 10 не поддерживает ни один из старых процессоров x86, достаточных для этого. быть проблемой, но она все еще будет работать на таких системах).
- С точки зрения того, от чего он защищает, трудно сказать без какого-либо конкретного объяснения того, как это работает. Я сомневаюсь, что он обеспечивает какую-либо реалистичную защиту от ошибок переполнения буфера, таких как Heartbleed, поскольку их можно надлежащим образом защитить только в языке программирования, а не в ОС.