Гипервизоры изолируют разные ОС, работающие на одной физической машине, друг от друга.В рамках этого определения также существует разделение энергонезависимой памяти (например, жестких дисков или флэш-памяти).
При рассмотрении гипервизоров типа 2 легко понять, как они разделяют энергонезависимую память, поскольку они простоиспользуйте реализацию файловой системы базовой ОС для выделения разных «файлов жесткого диска» для каждой виртуальной машины.
Но, когда я начинаю думать о гипервизорах 1-го типа, проблема становится все труднее.Они могут использовать IOMMU для изоляции различных аппаратных интерфейсов, но в случае только одного интерфейса энергонезависимой памяти в системе я не вижу, как это помогает.
Таким образом, одним из способов его реализации будет разделение одного устройства на 2 "раздела", а также заставление гипервизора интерпретировать вызовы от виртуальных машин и решать, являются ли эти вызовы законными или нет.Я не заинтересован в протоколах связи с энергонезависимыми интерфейсами, но гипервизор должен быть знаком с этими протоколами , чтобы вынести вердикт, который звучит (возможно) как избыточное убийство.
Существуют ли другие способы реализации такого рода изоляции?