Випуск гіпервізора Bareflank 2.0

Відбувся реліз гіпервізора Bareflank 2.0, що надає інструментарій для швидкої розробки спеціалізованих гіпервізорів Bareflank написаний мовою C++, підтримує C++ STL. Модульна архітектура Bareflank дозволить легко розширювати наявні можливості гіпервізора і створювати власні варіанти гіпервізорів, що працюють поверх обладнання (як Xen), так і запускаються в програмному оточенні (як VirtualBox). Є можливість виконання операційної системи хост-оточення в окремій віртуальній машині. Код проекту поширюється під ліцензією LGPL 2.1.

У Bareflank реалізована підтримка Linux, Windows та UEFI на 64-розрядних CPU Intel. Для апаратного поділу ресурсів віртуальних машин використовується технологія Intel VT-x. На майбутнє заплановано підтримку macOS та BSD-систем, а також можливість роботи на платформах ARM64 та AMD. Додатково проектом розвивається власний драйвер для завантаження VMM (Virtual Machine Manager), ELF-завантажувач для завантаження модулів VVM, додаток bfm для керування гіпервізором із простору користувача. Надається інструментарій для написання розширень з використанням елементів, визначених у специфікаціях C++11/14, бібліотека розкручування стека винятків (unwind), а також своя runtime-бібліотека для підтримки застосування конструкторів/деструкторів та реєстрації обробників винятків.

На базі Bareflank ведеться розробка системи віртуалізації Бокси, що підтримує запуск гостьових систем та дозволяє використовувати легковажні віртуальні машини з Linux та Unikernel для запуску спеціалізованих сервісів або програм. У формі ізольованих сервісів можна виконувати як звичайні web-сервіси, так і додатки, до яких пред'являються особливі вимоги до надійності та безпеки, позбавлені впливу хост-оточення (хост-оточення ізолюється в окремій віртуальній машині).

Основні нововведення Bareflank 2.0:

  • Додано підтримку запуску Bareflank безпосередньо з UEFI для подальшого виконання операційної системи у віртуальній машині;
  • Реалізовано новий менеджер управління пам'яттю, спроектований за аналогією з менеджерами пам'яті SLAB/Buddy у Linux. Новий менеджер пам'яті демонструє зниження фрагментації, дозволяє досягти більш високої продуктивності та підтримує динамічне виділення пам'яті гіпервізору через bfdriver, що дозволяє скоротити початковий розмір гіпервізора та оптимально масштабуватися залежно від кількості ядер CPU;
  • Нова система складання на базі CMake, незалежна від командного інтерпретатора, що дозволяє досягти суттєвого прискорення компіляції гіпервізора і спрощує підтримку в майбутньому додаткових архітектур, таких як ARM;
  • Проведено реорганізацію коду та спрощено структуру вихідних текстів. Поліпшено підтримку суміжних проектів, таких як hyperkernel, без необхідності дублювання коду. Більш явно відокремлений код гіпервізора, unwind-бібліотеки, runtime, керуючого інструментарію, завантажувача та SDK;
  • Більшість API замість раніше застосовуваних механізмів успадкування в C++ переведено застосування делегування, що дозволило спростити API, підвищити продуктивність та скоротити споживання ресурсів.

Джерело: opennet.ru

Додати коментар або відгук