Wydanie hiperwizora Bareflank 2.0

Odbyła się wydanie hypervisora Bareflank 2.0, który zapewnia narzędzia do szybkiego rozwoju wyspecjalizowanych hypervisoró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 dystrybuowane przez na licencji LGPL 2.1.

Bareflank obsługuje systemy Linux, Windows i UEFI na 64-bitowych procesorach Intel. Do sprzętowego udostępniania zasobów maszyny wirtualnej wykorzystywana jest technologia Intel VT-x. W przyszłości planowane jest wsparcie dla systemów macOS i BSD, a także możliwość pracy na platformach ARM64 i AMD. 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 zarządzania 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.

Trwa rozwój systemu wirtualizacji w oparciu o Bareflank pudełkowaty, który obsługuje uruchamianie systemów gościnnych i pozwala na wykorzystanie lekkich maszyn wirtualnych z systemem Linux i Unikernel do uruchamiania wyspecjalizowanych usług lub aplikacji. W formie usług izolowanych można uruchamiać zarówno zwykłe usługi sieciowe, jak i aplikacje posiadające specjalne wymagania co do niezawodności i bezpieczeństwa, wolne od wpływu środowiska hosta (środowisko hosta jest izolowane na osobnej maszynie wirtualnej).

Główne innowacje Bareflank 2.0:

  • Dodano obsługę uruchamiania Bareflanka bezpośrednio z UEFI w celu późniejszego uruchomienia systemu operacyjnego na maszynie wirtualnej;
  • Zaimplementowano nowy menedżer pamięci, zaprojektowany podobnie do menedżerów pamięci SLAB/Buddy w systemie Linux. Nowy menedżer pamięci charakteryzuje się zmniejszoną fragmentacją, pozwala na wyższą wydajność i obsługuje dynamiczną alokację pamięci do hiperwizora bfdriver, co pozwala zmniejszyć początkowy rozmiar hypervisora ​​i optymalnie skalować w zależności od liczby rdzeni procesora;
  • Nowy system kompilacji oparty na CMake, niezależny od interpretera poleceń, pozwala na znaczne przyspieszenie kompilacji hypervisora ​​i upraszcza przyszłą obsługę dodatkowych architektur, takich jak ARM;
  • Przeorganizowano kodeks i uproszczono strukturę tekstów źródłowych. Ulepszona obsługa powiązanych projektów, takich jak hiperkernel, bez konieczności powielania kodu. Bardziej wyraźnie oddzielony kod hiperwizor, bibliotekę rozwijającą, środowisko wykonawcze, narzędzia kontrolne, program ładujący i SDK;
  • Większość API, zamiast dotychczas stosowanych mechanizmów dziedziczenia w C++, została przełączona na using delegacja, co uprościło API, zwiększyło wydajność i zmniejszyło zużycie zasobów.

Źródło: opennet.ru

Dodaj komentarz