wydanie hipernadzorcy , oferującego narzędzia do szybkiego rozwoju wyspecjalizowanych hipernadzorców. Bareflank jest napisany w języku C++, obsługuje C++ STL. Modularna architektura Bareflank pozwala na łatwe rozszerzanie możliwości hipernadzorcy i tworzenie własnych wersji hipernadzorców, zarówno działających na sprzęcie (jak Xen), jak i uruchamianych w istniejącym środowisku programowym (jak VirtualBox). Istnieje możliwość uruchomienia systemu operacyjnego środowiska hosta w oddzielnej maszynie wirtualnej. Kod projektu na licencji LGPL 2.1.
W Bareflank zaimplementowano wsparcie dla Linux, Windows i UEFI na 64-bitowych procesorach Intel. Do sprzętowego rozdzielania zasobów maszyn wirtualnych stosowana jest technologia Intel VT-x. Na przyszłość planowane jest wsparcie dla systemów macOS i BSD, a także możliwość pracy na platformach ARM64 i AMD. Dodatkowo, projekt rozwija własny sterownik do ładowania VMM (Virtual Machine Manager), ładowarkę ELF do ładowania modułów VVM, aplikację bfm do zarządzania hipernadzorcą z przestrzeni użytkownika. Oferowany jest zestaw narzędzi do pisania rozszerzeń z wykorzystaniem elementów określonych w specyfikacjach C++11/14, biblioteka do rozwoju stosu wyjątków (unwind), a także własna biblioteka runtime wspierająca zastosowanie konstruktorów/destruktorów i rejestrację obsługujących wyjątków.
Na bazie Bareflank trwa rozwój systemu wirtualizacji , wspierającego uruchamianie systemów gościnnych i pozwalającego na użycie lekkich maszyn wirtualnych z Linux i Unikernel do uruchamiania wyspecjalizowanych usług lub aplikacji. W formie izolowanych usług można wykonywać zarówno zwykłe usługi webowe, jak i aplikacje, które mają szczególne wymagania dotyczące niezawodności i bezpieczeństwa, izolowane od wpływu środowiska hosta (środowisko hosta jest izolowane w oddzielnej maszynie wirtualnej).
Główne nowości Bareflank 2.0:
- Dodano wsparcie do uruchamiania Bareflank bezpośrednio z UEFI w celu późniejszego uruchomienia systemu operacyjnego w maszynie wirtualnej;
- Wprowadzono nowy menedżer pamięci, zaprojektowany na wzór menedżerów pamięci SLAB/Buddy w systemie Linux. Nowy menedżer pamięci wykazuje mniejszą fragmentację, umożliwia osiągnięcie wyższej wydajności i wspiera dynamiczne przydzielanie pamięci dla hipernadzorcy przez , co pozwala zmniejszyć początkowy rozmiar hipernadzorcy i optymalnie skalować się w zależności od liczby rdzeni CPU;
- Nowy system budowy oparty na CMake, niezależny od interpreterów poleceń, pozwalający na znaczne przyspieszenie kompilacji hipernadzorcy oraz ułatwiający w przyszłości wspieranie dodatkowych architektur, takich jak ARM;
- Została przeprowadzona reorganizacja kodu oraz uproszczona struktura kodów źródłowych. Ulepszono wsparcie dla powiązanych projektów, takich jak hyperkernel, bez potrzeby duplikowania kodu. Kod , biblioteki unwind, runtime, narzędzia zarządzającego, bootloadera i SDK zostały bardziej wyraźnie oddzielone;
- Większość API zamiast wcześniej stosowanych mechanizmów dziedziczenia w C++ została przetłumaczona na zastosowanie , co pozwoliło uprościć API, zwiększyć wydajność i zmniejszyć zużycie zasobów.
Źródło: opennet.ru
