Състоя се пускането на хипервизора Bareflank 3.0, предоставящ инструменти за бърза разработка на специализирани хипервизори. Bareflank е написан на C++, поддържа C++ STL. Модулната архитектура на Bareflank позволява лесно разширяване на съществуващите възможности на хипервизора и създаване на собствени варианти на хипервизори, както работа върху хардуера (като Xen), така и стартиране в съществуваща софтуерна среда (като VirtualBox). Има възможност за изпълнение на операционната система на хост-околната среда в отделна виртуална машина. Кодът на проекта е разпространен под лиценз LGPL 2.1.
В Bareflank е реализирана поддръжка на Linux, Windows и UEFI на 64-битови CPU Intel и AMD. За апаратно разделяне на ресурсите на виртуални машини се прилага технологията Intel VT-x. За в бъдеще е планирана поддръжка на macOS и BSD системи, както и възможност за работа на платформа ARM64. Допълнително проектът развива собствен драйвер за зареждане на VMM (Virtual Machine Manager), ELF зареждач за зареждане на модули VVM, приложение bfm за управление на хипервизора от потребителското пространство. Предоставят се инструменти за писане на разширения с използване на елементи, определени в спецификациите C++11/14, библиотека за разгръщане на стека на изключения (unwind), а също и собствена runtime библиотека за поддръжка на прилагането на конструктори/деструктори и регистрация на обработчици на изключения.
На базата на Bareflank се разработва система за виртуализация Boxy, поддържаща стартиране на гостуващи системи и позволяваща използването на леки виртуални машини с Linux и Unikernel за стартиране на специализирани услуги или приложения. В форма на изолирани услуги могат да се изпълняват както обикновени уеб услуги, така и приложения, изискващи особени нива на надеждност и сигурност, освобождавайки се от влиянието на хост околната среда (хост околната среда се изолира в отделна виртуална машина). Bareflank също така лежи в основата на хипервизора MicroV, предназначен за стартиране на минималистични виртуални машини (виртуална машина едно приложение), реализиращ API KVM и подходящ за изграждане на критично важни системи.
Основни нововъведения в Bareflank 3.0:
- Преход към използване на концепцията за микроядро. По-рано хипервизорът имаше монолитна архитектура, при която за разширяване на функционалността беше необходимо да се използва специален API за регистрация на callback-събития, което затрудняваше разработката на разширения поради зависимостта от езика C++ и вътрешната структура. Новата архитектура, базирана на микроядро, предвижда разделяне на хипервизора на компоненти на ядрото, изпълнявани в нулевото защитно ниво, и разширения, изпълнявани на третото защитно ниво (потребителско пространство). И двете части работят в коренов режим VMX, а всичко друго, включително хостеното окружение, в некоренов режим VMX. Разширенията в потребителското пространство реализират функционалността на диспетчера на виртуални машини (VMM) и взаимодействат с ядрото на хипервизора чрез системни повиквания, за които се осигурява обратно съвместимост. Разширенията могат да бъдат създавани на всякакви езици за програмиране, включително се поддържа използването на езика Rust.
- Извършен е преход към използването на собствена библиотека BSL с поддръжка на Rust и C++, която замени външните библиотеки libc++ и newlib. Отказът от външни зависимости позволи внедряването на коренна поддръжка за компилация в Windows в Bareflank за опростяване на разработката на тази платформа.
- Добавена е поддръжка за процесори AMD. Освен това разработката на Bareflank сега се извършва на система с AMD CPU и след това се портва за Intel CPU.
- В зареждача е добавена поддръжка за архитектурата ARMv8, адаптацията на хипервизора за която ще приключи в една от следващите версии.
- Осигурено е съответствие с изискванията за разработка на критично важни системи, формулирани от организациите AUTOSAR и MISRA.
Източник: opennet.ru
