IOMMU (Input-Output Memory Management Unit) в современных системах работает следующим образом: 1
- Сопоставляет виртуальные адреса с физическими. 3 IOMMU создаёт виртуальное адресное пространство для определённого устройства, в котором всякий виртуальный адрес ввода-вывода может транслироваться в другой адрес в физической системной памяти. 5
- Контролирует и изолирует доступ к памяти. 2 IOMMU может ограничивать, к каким областям памяти устройство может обращаться на чтение или запись, что обеспечивает дополнительный уровень безопасности. 2
- Помогает в виртуализации. 1 Каждая виртуальная машина получает доступ только к тем устройствам и участкам памяти, которые ей разрешены, без риска нарушения работы других систем. 1
Например, с IOMMU можно выделить одну из видеокарт исключительно для виртуальной машины с Windows, а другая останется для Linux. 1 Это позволит запускать игры с использованием мощной графики на виртуальной системе, почти как на обычном ПК. 1