Została wydana nowa wersja Oracle VirtualBox. Ze znaczących nowości można wymienić zmianę nazwy (z Sun VirtualBox) oraz eksperymentalne wsparcie dla Mac OS X jako systemu gościa.
Nowy VirtualBox został wydany się 18 Maja. Jest to pierwsza wersja VirtualBoksa wydana po przejęciu Suna przez Oracle, ale nie wpłynęło to na zasady na jakich VirtualBox jest rozprowadzany.
Mac OS X jako gość
Nowością w tym wydaniu jest możliwość instalacji i uruchamianienia systemu Mac OS X jako gościa na wspieranym sprzęcie bez używania hacków czy łatania plików z instalacyjnego DVD. Wspierany sprzęt oznacza procesor znany i przetestowany przez Apple. Jeśli spróbujemy uruchomić Mac OS X na modelu procesora nieznanym systemowi, to ten wysypie się z komunikatem “Unsupported CPU”. Tak więc, za wiki VirtualBoksa:
It is generally best to use the Mac OS X DVD that came with your Apple hardware.
Z innych technicznych ograniczeń można wymienić:
- Brak VirtualBox Guest Additions dla Mac OS X. Możliwe, że zostaną dodane w jednym z kolejnych wydań.
- Domyślna rozdzielczość jaką dostajemy na wirtualizowanym systemie to 1024×768. Można ją zmienić przy wyłączonej maszynie używając komendy
VBoxManage setextradata vmname VBoxInternal2/EfiGopMode Numer_Rozdzielczości
, gdzieNumer_Rozdzielczości
to liczba z przedziału 0-4 odpowiednio dla 640×480, 800×600, 1024×768, 1280×1024 lub 1440×900. - Nawet nic-nie-robiący Mac OS X pochłania 100% mocy procesora. Jest to związane z zarządzaniem energią i będzie poprawione w przyszłych wydaniach VirtualBoksa.
- OS X działa tylko z jednym procesorem. Obsługa SMP zostanie dodana w przyszłych wydaniach.
- Zależnie od konfiguracji sprzętu i wersji Mac OS X system gościa może się zawieszać po jakimś czasie. Może to zostać naprawione po przez wyłączenie oszczędzania energii w ustawieniach systemu gościa.
Oprócz technicznych problemów pojawiają się także kwestie licencyjne. Dla większości wersji Mac OS X Apple zabrania instalacji systemu na innym sprzęcie, niż sprzęt Apple. W tekście licencji Mac OS X czytamy:
This License allows you to install and use one copy of the Apple Software on a single Apple-labeled computer at a time.
Nowe możliwości
Nowa funkcja Memory Ballooning dzięki której możemy “przenosić” przydziały pamięci RAM pomiędzy uruchomionymi maszynami. Zazwyczaj, by zmienić ilość przydzielonej pamięci dla maszyny musieliśmy ją wyłączyć. Z użyciem Memory Ballooning część pamięci przydzielonej dla jednej maszyny może być przekazana innej maszynie bez potrzeby zamykania którejkolwiek z nich.
Kiedy Memory Ballooning jest zażądane, Guest Additions w systemie z którego chcemy ukraść RAM alokuje i blokuje na poziomie jądra pamięć (wszystko dzieje się w systemie gościa). Dzięki temu ani system, ani żadna aplikacja w systemie gościa nie będzie mogła używać tej pamięci. Dzięki temu VirtualBox może przydzielić tą samą pamięć innej maszynie wirtualnej.
Warto zauważyć, że pamięć poddana recyklingowi mechanizmem Memory Ballooning nie jest zwracana do systemu gospodarza. Jest tylko do dyspozycji VirtualBoxa. Więcej o Memory Ballooning można przeczytać w dokumentacji VirtualBoxa
Page Fusion to mechanizm który automatycznie znajduje identyczne strony w pamięci RAM systemów gości i de-duplikuje je.
Zazwyczaj, przy uruchomionych wielu podobnych (lub identycznych) maszynach największym problemem jest ilość dostępnej pamięci RAM. Aby ominąć ten problem wiele systemów wirtualizacji wyszukuje identyczne fragmenty pamięci w systemach gości i de-duplikuje je w rezultacie uwalniając dodatkową pamięć. Taka technika nazywana jest “page sharing” lub “same page merging”. Zazwyczaj polega na tym, że Hyperwizor przeczesuje całą pamięć systemu gościa i oblicza dla każdej strony pamięci sumę kontrolną. Po obliczeniu sum dla każdej strony tradycyjny Hyperwizor szuka stron z identycznymi sumami i porównuje ich zawartość (jeśli dwie strony mają taką samą sumę to jest bardzo prawdopodobne – ale nie pewne – że mają identyczną zawartość). Identyczne strony zostają wyeliminowane na tak długo, aż żadna z maszyn nie spróbuje zmienić jednej z współdzielonych stron – wtedy strona jest kopiowana i maszyna zmienia tylko swoją prywatną kopię. Cały proces jest transparentny dla systemu gościa.
Jednak taki tradycyjny algorytm ma, według inżynierów z Oracle, kilka wad. Najważniejszą z nich jest czas potrzebny na przeskanowanie całej pamięci, w związku z czym dodatkowa wolna pamięć pojawia się z opóźnieniem (według dokumentacji VirtualBoxa jest to kwestia godzin, czasem dni). W dodatku cały ten algorytm pochłania znaczącą ilość zasobów CPU i zwiększa narzut wirtualizacji o 10-20%.
Programiści Oracle obeszli problem używając Guest Additions do identyfikacji stron pamięci które mogą być identyczne dla wszystkich maszyn. Twierdzą, że dzięki temu VirtualBox pozwala współdzielić największą możliwą ilość pamięci, prawie natychmiastowo, z prawie zerowym narzutem wirtualizacji.
Nie warto wierzyć inżynierom z Oracle na słowo. Lepiej samemu przetestować nową funkcję:
VBoxManage modifyvm "Nazwa Maszyny" --pagefusion on
Do działania mechanizmu Page Fusion wymagany jest 64-bitowy system hosta i system z rodziny Windows wraz z Guest Additions. Więcej informacji można znaleźć w dokumentacji.
Została dodana obsługa CPU hot-plugging dla systemów z jądrem Linux (hot-add i hot-remove) i niektórych systemów z rodziny Windows (tylko hot-add). Więcej w manualu.
Zostało dodane wsparcie dla usuwania snapshotów z uruchomionej maszyny.
Dodana została akceleracja video po RDP.
Została dodana możliwość uruchamiania aplikacji w systemie gościa bezpośrednio z systemu hosta. Ułatwi to automatyczną instalację oprogramowania w wirtualizowanych systemach. Do uruchamiania aplikacji służy nowa komenda:
VBoxManage guestcontrol execute | <ścieżkaDoProgramu> --username [--password ] [--arguments ""] [--environment "= [=]"] [--flags ] [--timeout ] [--verbose] [--wait-for exit,stdout,stderr||]
Parametr --flags
nie jest aktualnie używany. Więcej informacji można znaleźć w manualu.
Instalujcie póki gorące!
Nowego VirtualBoxa można jak zwykle pobrać z www.virtualbox.org. Są paczki dla ArchLinuksa, gotowe RPM-y, dla debianowatych jest przygotowane repozytorium a pozostali powinni się zadowolić uniwersalnym instalatorem. Jest też instalator dla użytkowników alternatywnych systemów operacyjnych.