релиз на хипервизор , предлагающи инструментариум за бързо разработване на специализирани хипервизори. Bareflank е написан на C++, поддържа C++ STL. Модулната архитектура на Bareflank позволява лесно разширяване на съществуващите възможности на хипервизора и създаване на собствени варианти на хипервизори, работещи както на хардуер (като Xen), така и в съществуваща софтуерна среда (като VirtualBox). Има възможност за изпълнение на операционната система на хост средата в отделна виртуална машина. Кодът на проекта е под лиценз LGPL 2.1.
Bareflank поддържа Linux, Windows и UEFI на 64-битови Intel CPU. За хардуерно разделяне на ресурсите на виртуалните машини се използва технологията Intel VT-x. В бъдеще е планирана поддръжка за macOS и BSD системи, както и работа на платформи ARM64 и AMD. Допълнително, проектът развива собствен драйвер за зареждане на VMM (Virtual Machine Manager), ELF зареждач за зареждане на модули VVM, приложение bfm за управление на хипервизора от потребителското пространство. Предоставя се инструментариум за писане на разширения с помощта на елементи, определени в спецификациите C++11/14, библиотека за управление на стека на изключения (unwind), както и собствена runtime библиотека за поддръжка на конструктори/деструктори и регистрация на обработчици на изключения.
На базата на Bareflank се разработва система за виртуализация , поддържаща стартиране на гостуващи системи и позволяваща използването на леки виртуални машини с Linux и Unikernel за стартиране на специализирани услуги или приложения. В формата на изолирани услуги могат да се изпълняват както обикновени уеб услуги, така и приложения, за които се изискват особени стандарти за надеждност и сигурност, освободени от влиянието на хост средата (хост средата се изолира в отделна виртуална машина).
Основни нововъведения в Bareflank 2.0:
- Добавена е поддръжка за стартиране на Bareflank директно от UEFI за последващо изпълнение на операционната система в виртуална машина;
- Реализирана е нова мениджърска система за управление на паметта, проектирана по аналогия с мениджърите на паметта SLAB/Buddy в Linux. Новият мениджър на паметта демонстрира намаляване на фрагментацията, позволява постигане на по-висока производителност и поддържа динамично разпределение на памет за хипервизора чрез , което позволява намаляване на началния размер на хипервизора и оптимално мащабиране в зависимост от броя на ядрата на CPU;
- Нова система за изграждане на база CMake, независима от команден интерпретатор, която позволява значително ускоряване на компилацията на хипервизора и опростява поддръжката в бъдеще на допълнителни архитектури, като ARM;
- Извършена е реорганизация на кода и опростена е структурата на изходните текстове. Подкрепата за свързани проекти, като hyperkernel, е подобрена без необходимост от дублиране на кода. Кодът вече е по-ясно отделен , unwind-библиотеки, runtime, управляващ инструментарий, зареждач и SDK;
- Повечето от API вместо предишно използваните механизми на наследяване в C++ са преведени на приложение , което позволи да се опрости API, да се увеличи производителността и да се намали потреблението на ресурси.
Източник: opennet.ru
