Версия на хипервизор Bareflank 3.0

Беше пуснат хипервайзорът Bareflank 3.0, който предоставя набор от инструменти за бързо разработване на специализирани хипервайзори. Bareflank е написан на C++ и поддържа C++ STL. Модулната архитектура на Bareflank улеснява разширяването на съществуващите възможности на хипервайзор и създаването на ваши собствени опции за хипервизор, както работещи върху хардуер (като Xen), така и работещи в съществуваща софтуерна среда (като VirtualBox). Възможно е да стартирате операционната система на хост средата в отделна виртуална машина. Кодът на проекта се разпространява под лиценз LGPL 2.1.

Bareflank осигурява поддръжка за Linux, Windows и UEFI на 64-битови процесори Intel и AMD. Технологията Intel VT-x се използва за хардуерно разделяне на ресурси на виртуална машина. За в бъдеще се планира поддръжка за macOS и BSD системи, както и възможност за работа на платформата ARM64. Освен това проектът разработва собствен драйвер за зареждане на VMM (Virtual Machine Manager), ELF зареждащ модул за зареждане на VVM модули и bfm приложение за контролиране на хипервайзора от потребителското пространство. Осигурен е набор от инструменти за писане на разширения, като се използват елементи, дефинирани в спецификациите на C++11/14, библиотека за отвиване на стека на изключения (unwind), както и собствена библиотека по време на изпълнение за поддръжка на използването на конструктори/деструктори и регистрация на манипулатори на изключения.

На базата на Bareflank е в ход разработването на системата за виртуализация Boxy, която поддържа стартирането на системи за гости и позволява използването на леки виртуални машини с Linux и Unikernel за стартиране на специализирани услуги или приложения. Под формата на изолирани услуги можете да изпълнявате както обикновени уеб услуги, така и приложения, които имат специални изисквания за надеждност и сигурност, освободени от влиянието на хост средата (хост средата е изолирана в отделна виртуална машина). Bareflank също е в основата на хипервайзора MicroV, предназначен да изпълнява минималистични виртуални машини (виртуална машина с едно приложение), който имплементира KVM API и е подходящ за изграждане на критични за мисията системи.

Основните иновации на Bareflank 3.0:

  • Преход към използването на концепцията за микроядро. Преди това хипервайзорът имаше монолитна архитектура, в която, за да се разшири функционалността, беше необходимо да се използва специален API за регистриране на повиквания за обратно извикване, което затрудняваше разработването на разширения поради обвързването с езика C ++ и вътрешните елементи . Новата архитектура, базирана на микроядрото, разделя хипервайзора на компоненти на ядрото, работещи на нулевия пръстен на защита, и разширения, работещи на третия пръстен (потребителско пространство). И двете части работят в VMX root режим, а всичко останало, включително хост средата, в non-root VMX режим. Разширенията за потребителско пространство реализират функционалността на Virtual Machine Manager (VMM) и взаимодействат с ядрото на хипервизора чрез обратно съвместими системни повиквания. Разширенията могат да се създават на всеки език за програмиране, включително използването на езика Rust.
  • Преминахме към използване на нашата собствена BSL библиотека с поддръжка за Rust и C++, която замени външните библиотеки libc++ и newlib. Премахването на външни зависимости позволи на Bareflank да внедри собствена поддръжка за компилация на Windows, за да опрости разработката на тази платформа.
  • Добавена е поддръжка за AMD процесори. Освен това разработката на Bareflank сега се извършва на система с AMD CPU и едва след това се пренася към Intel CPU.
  • Към буутлоудъра е добавена поддръжка за архитектурата ARMv8, за която адаптирането на хипервайзора ще бъде завършено в една от следващите версии.
  • Постигнато съответствие с изискванията за разработване на критични системи, формулирани от организациите AUTOSAR и MISRA.

Източник: opennet.ru

Добавяне на нов коментар