Wydanie hiperwizora Bareflank 3.0

Wypuszczono hiperwizor Bareflank 3.0, zapewniający narzędzia do szybkiego rozwoju wyspecjalizowanych hiperwizorów. Bareflank jest napisany w C++ i obsługuje C++ STL. Modułowa architektura Bareflanka pozwoli Ci łatwo rozszerzać istniejące możliwości hypervisora ​​i tworzyć własne wersje hypervisorów, zarówno działających na sprzęcie (np. Xen), jak i działających w istniejącym środowisku programowym (np. VirtualBox). Istnieje możliwość uruchomienia systemu operacyjnego środowiska hosta na osobnej maszynie wirtualnej. Kod projektu rozpowszechniany jest na licencji LGPL 2.1.

Bareflank obsługuje systemy Linux, Windows i UEFI na 64-bitowych procesorach Intel i AMD. Do sprzętowego udostępniania zasobów maszyny wirtualnej wykorzystywana jest technologia Intel VT-x. Na przyszłość planowana jest obsługa systemów macOS i BSD, a także możliwość pracy na platformie ARM64. Dodatkowo w ramach projektu opracowywany jest własny sterownik do ładowania VMM (Virtual Machine Manager), moduł ładujący ELF do ładowania modułów VVM oraz aplikacja bfm do sterowania hypervisorem z przestrzeni użytkownika. Dostarcza narzędzia do pisania rozszerzeń wykorzystujących elementy zdefiniowane w specyfikacji C++11/14, bibliotekę do odwijania stosu wyjątków (unwind), a także własną bibliotekę uruchomieniową wspierającą użycie konstruktorów/destruktorów i rejestrację procedur obsługi wyjątków.

W oparciu o Bareflank rozwijany jest system wirtualizacji Boxy, który obsługuje działające systemy gościnne i pozwala na wykorzystanie lekkich maszyn wirtualnych z systemem Linux i Unikernel do uruchamiania wyspecjalizowanych usług lub aplikacji. W formie izolowanych usług można uruchamiać zarówno zwykłe usługi sieciowe, jak i aplikacje posiadające specjalne wymagania dotyczące niezawodności i bezpieczeństwa, wolne od wpływu środowiska hosta (środowisko hosta jest izolowane na osobnej maszynie wirtualnej). Bareflank jest także podstawą hiperwizora MicroV, przeznaczonego do uruchamiania minimalistycznych maszyn wirtualnych (maszyna wirtualna z pojedynczą aplikacją), implementuje API KVM i nadaje się do tworzenia systemów o znaczeniu krytycznym.

Główne innowacje Bareflank 3.0:

  • Przejście na wykorzystanie koncepcji mikrojądra. Wcześniej hypervisor miał architekturę monolityczną, w której do rozbudowy funkcjonalności konieczne było wykorzystanie specjalnego API do rejestracji wywołań zwrotnych, co utrudniało tworzenie rozszerzeń ze względu na powiązanie z językiem C++ i wewnętrzną strukturą. Nowa architektura oparta na mikrojądrze obejmuje podzielenie hiperwizora na komponenty jądra działające w pierścieniu zerowym ochrony i rozszerzenia działające w pierścieniu trzecim (przestrzeń użytkownika). Obie części działają w trybie root VMX, a wszystko inne, łącznie ze środowiskiem hosta, działa w trybie innym niż root VMX. Rozszerzenia przestrzeni użytkownika implementują funkcjonalność Virtual Machine Manager (VMM) i wchodzą w interakcję z rdzeniem hypervisora ​​poprzez wywołania systemowe, które są kompatybilne wstecz. Rozszerzenia można tworzyć w dowolnym języku programowania, w tym w Rust.
  • Dokonano przejścia na wykorzystanie własnej biblioteki BSL ze wsparciem dla Rusta i C++, która zastąpiła zewnętrzne biblioteki libc++ i newlib. Eliminując zależności zewnętrzne, Bareflank zapewnia natywną obsługę kompilacji systemu Windows, aby uprościć programowanie na tej platformie.
  • Dodano obsługę procesorów AMD. Co więcej, rozwój Bareflanka jest teraz prowadzony na systemie z procesorem AMD, a dopiero potem przenoszony na procesor Intel.
  • Bootloader dodał obsługę architektury ARMv8, adaptacja hypervisora, dla której zostanie ukończona w jednym z kolejnych wydań.
  • Zapewniono zgodność z wymaganiami dotyczącymi rozwoju systemów krytycznych sformułowanymi przez organizacje AUTOSAR i MISRA.

Źródło: opennet.ru

Dodaj komentarz