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

Відбувся реліз гіпервізора 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 для запуску спеціалізованих сервісів або програм. У формі ізольованих сервісів можна виконувати як звичайні web-сервіси, так і додатки, до яких пред'являються особливі вимоги до надійності та безпеки, позбавлені впливу хост-оточення (хост-оточення ізолюється в окремій віртуальній машині). Bareflank також лежить в основі гіпервізора MicroV, призначеного для запуску мінімалістичних віртуальних машин (віртуальна машина однієї програми), що реалізує API KVM та підходить для створення критично важливих систем.

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

  • Перехід використання концепції мікроядра. Раніше гіпервізор мав монолітну архітектуру, при якій для розширення функціональності доводилося використовувати спеціальний API для реєстрації callback-викликів, що ускладнювало розробку розширень через прив'язку до мови С++ та внутрішнього пристрою. Нова архітектура на базі мікроядра передбачає поділ гіпервізора на компоненти ядра, що виконуються на нульовому кільці захисту, і розширення, що виконуються на третьому кільці (простір користувача). Обидві частини працюють у кореневому режимі VMX, а решта, включаючи хост-оточення, у некореневому режимі VMX. Розширення у просторі користувача реалізують функціональність диспетчера віртуальних машин (VMM) та взаємодіють з ядром гіпірвізора через системні виклики, для яких забезпечується зворотна сумісність. Розширення можуть створюватись на будь-яких мовах програмування, у тому числі підтримується використання мови Rust.
  • Здійснено перехід на використання власної бібліотеки BSL за допомогою Rust та C++, яка прийшла на зміну зовнішнім бібліотекам libc++ та newlib. Відмова від зовнішніх залежностей дозволила реалізувати в Bareflank рідну підтримку компіляції в Windows для спрощення розробки на цій платформі.
  • Додано підтримку процесорів AMD. Більше того, розробка Bareflank тепер ведеться на системі з CPU AMD і вже потім портується для CPU Intel.
  • У завантажувачі додано підтримку архітектури ARMv8, адаптацію гіпервізора для якої буде завершено в одному з наступних випусків.
  • Забезпечено відповідність вимогам щодо розробки критично важливих систем, сформульованих організаціями AUTOSAR та MISRA.

Джерело: opennet.ru

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