Microsoft представила открытый проект гипервизора для изоляции отдельных функций в приложениях Hyperlight
Microsoft представила открытый проект гипервизора Hyperlight. Решение предназначено для встраивания в приложения с целью изолированного выполнения кода, не заслуживающего доверия или требующего особой защиты. Исходный код проекта написан на языке Rust и опубликован на GitHub под лицензией Apache 2.0.
Гипервизор оформлен в виде разделяемой библиотеки, обеспечивающей выполнение отдельных функций в легковесных виртуальных машинах (micro-VM) и организующей обмен данными с этими функциями.
По информации OpenNET, по сравнению с запуском традиционных виртуальных машин, Hyperlight позволяет добиться низких задержек и минимальных накладных расходов. В этом гипервизоре задержки при создании виртуальных машин составляют 1-2 миллисекунды, что позволяет применять изоляцию на уровне запуска функций. Для сравнения запуск обычной виртуальной машины осуществляется не менее чем за 120 миллисекунд, а запуск изолированного sandbox-окружения для выполнения WebAssembly-кода при помощи Wasmtime runtime занимает 0.03 миллисекунды.
Для изоляции на платформе Linux поддерживается использование гипервизоров KVM и mshv (Microsoft Hypervisor в Azure Linux), а на платформе Windows — WHP (Windows Hypervisor Platform) и WSL2 (Windows Subsystem for Linux 2) c KVM. Платформа macOS пока не поддерживается.
Отдельное ядро и операционная система в виртуальной машине не используются. Начинка для виртуальной машины формируется в форме самодостаточной загружаемой программы, включающей код запускаемой функции в обвязке из runtime и специализированного минимального ядра. В виртуальной машине используется единый линейный фрагмент памяти и назначается виртуальный CPU, без маппинга устройств и без разделения на процессы.
Процесс разработки основан на связывании основного
Читать на habr.com