Klonujemy komputer - maszyny wirtualne (2010)
Submitted by marcin on Sat 31-Jul-2010

Polski
benchmark.pl
Windows 7
Windows
Polski artykuł
x86
OS


Poniższy tekst został wpierw opublikowany z pewnymi zmianami w serwisie benchmark.pl

  1. Rodzaje
  2. Bezpieczeństwo i sprzęt
  3. VirtualBox
  4. Dodatki do VirtualBoxa
  5. VirtualBox z USB
  6. QEMU i KVM
  7. Rozwiązania VmWare/Player
  8. Rozwiązania Microsoftu/XP Mode
  9. Virtual PC
10. DOS wiecznie żywy...
11. Java na zawsze ?
12. FAUMachine
13. Bochs
14. Zabawy z obrazami
15. Limitowanie sieci
16. Wydajność przeglądarek
17. Wydajność - inne testy
18. Podsumowanie

Po dłuższym używaniu swojego komputera wielu użytkowników  dochodzi do wniosku, iż chciałoby mieć możliwość przetestowania  czy używania jakichś programów "w odosobnieniu". Dzieje się tak niezależnie od tego czy pracują z Windows, jakąś dystrybucją Linuxa czy innym systemem operacyjnym. Jak tego dokonać ?

W artykule przedstawione zostaną wady i zalety przykładowych darmowych rozwiązań oraz podjęta zostanie próba oceny tego, jak bardzo spowalniają one aplikacje.

Rodzaje

Podstawowe funkcje kontroli udostępniane są przez praktycznie każdy współczesny system operacyjny - mamy chociażby możliwość ustawiania uprawnień w obecnych systemach plików. Najczęściej jest to niestety tylko kontrola na poziomie użytkowników.

Lukę tę wypełniają tzw. piaskownice. Działają między systemem operacyjnym oraz uruchomionym programem i pozwalają na dokładne określenie, co może zrobić ten ostatni. Ich charakterystyczną cechą jest możliwość "oszukiwania" programów tak, iż przy próbie zapisywania pliki w jakiejś lokalizacji robią to fizycznie w innej (np. zamiast katalogu z systemem używany jest wskazany w konfiguacji).

Najbardziej chyba znaną aplikacją tego typu jest SandBoxie (darmowa do zastosowań niekomercyjnych), taką funkcjonalność mają obecnie coraz częściej pakiety typu Internet Security (np. Safe Run w Kaspersky Internet Security). Rozwiązania tego typu przenikają nie tylko do jądra linuksowego (chociażby SELinux czy AppArmor), ale są również fabrycznie wbudowane w "okienka" Microsoftu - można przyjąć, iż pewną formą implementacji tej koncepcji jest np. Protected Mode w Internet Explorerze w systemach Vista/Windows 7.

Istnieją maszyny wirtualne. Są one uruchamiane w praktycznie niezmodyfikowanym systemie operacyjnym rzeczywistej maszyny (tzw. gospodarza czy hosta). Pozwalają stworzyć cały "oddzielny" komputer (nazywany często gościem), w którym instaluje się system operacyjny, a w nim uruchamia programy.

Maszyny wirtualne często dają możliwość skorzystania poprzez dodane sterowniki np. z podłączonych do gospodarza urządzeń USB. Niektóre z nich pozwalają stworzyć systemy zaliczane do innej platformy sprzętowej - dzieje się tak wtedy, gdy naśladowane jest również działanie procesora (czasem mówi się wtedy o emulatorze). Wiele z opisywanych dalej rozwiązań pozwala również na działanie 64-bitowych systemów operacyjnych gościa w sytuacji, gdy system gospodarza jest 32-bitowy.

Można jeszcze spotkać rozwiązania parawirtualizacyjne takie jak darmowy Xen albo komercyjny Hyper-V. Zawierają one przede wszystkim tzw. hypervisor, który w wielkim uproszczeniu jest systemem operacyjnym uruchamianym na rzeczywistym sprzęcie i który dostarcza pewnych narzędzi do tworzenia maszyn i obsługi sprzętu. Pod jego kontrolą działa zawsze jeden system mający bezpośredni dostęp do zasobów (w Xen mówimy o tzw. domenie 0, spotyka się też określenie partycji nadrzędnej) oraz inne systemy operacyjne bez takich uprawnień (najczęściej odpowiednio zmodyfikowane, chociaż obecnie nie zawsze).

Dalsze opisy związane będą przede wszystkim z platformą x86 (PeCety) i darmowymi maszynami wirtualnymi dostępnymi w Windows i Ubuntu - sprawdzone zostanie ich współdziałanie z Ubuntu 10.04 (uwagi te też praktycznie w całości będą odnosić się również do Mint 9), będzie także powiedziane kilka słów o DOS, Windows XP i Windows 7. Artykuł można potraktować jako uzupełnienie wcześniejszego tekstu autora o wspomnianych dystrybucjach linuksowych.

Do góry

Bezpieczeństwo i sprzęt

Niektóre maszyny wirtualne jak i hypervisory mogą potrzebować odpowiedniego wsparcia sprzętowego. W przypadku x86 wymagane jest spełnienie dwóch warunków:

  1. procesor musi mieć wbudowaną obsługę technologii AMD-V lub Intel VT-x (odpowiednią listę dla produktów Intela można znaleźć na stronie tej korporacji)
  2. wspomniane technologie muszą być uaktywnione przez BIOS/EFI (dokonuje się tego przez przestawienie jednej z opcji)

Należy tu zauważyć, iż ustawienia te są zazwyczaj domyślnie wyłączone, dodatkowo przez dłuższy czas wielu producentów płyt głównych czy komputerów wzbraniało się przed ich udostępnianiem. Dlaczego ?

Rozwiązania wirtualizacyjne (szczególnie te wspierane sprzętowo) rodzą bowiem pewne obawy z co najmniej dwóch przyczyn:

  1. doskonała wirtualizacja (do której się poniekąd dąży) powinna powodować, iż oprogramowanie nie będzie mieć możliwości sprawdzenia, że nie działa na rzeczywistym sprzęcie
  2. w przypadku uzyskania kontroli przez złośliwy kod nad systemem operacyjnym i uruchomieniu go pod kontrolą hypervisora może być niezwykle trudno wykryć fakt wystąpienia ataku (z powodu opisanego w poprzednim punkcie) i jemu przeciwdziałać

To tylko przykłady, ale częściowo niestety poparte praktyką - od 2006 (rootkit "Blue Pill" Joanny Rutkowskiej udostępniony później z kodem źródłowym) co jakiś czas chociażby na konferencjach Black Hat można znaleźć informacje o kolejnych przykładach zagrożeń związanych z wirtualizacją.

Z drugiej strony wspomniana Joanna Rutkowska właśnie w tych technologiach widzi jedyny sposób na istotne zwiększenie bezpieczeństwa systemów operacyjnych na platformie x86. Praktycznym przykładem ma być jej system operacyjny Qubes, którego wersja testowa Alpha 2 pojawiła się dosłownie kilkanaście dni temu (1 lipca). Jest on bazowany m.in. na hypervisorze Xen.

Czy należy więc się obawiać ?

Nie ma tutaj niestety jednoznacznej odpowiedzi. Każda kolejna warstwa zabezpieczająca może skutecznie zniechęcić potencjalnego włamywacza (i to jest duża zaleta stosowania tego typu rozwiązań). Dodatkowo wsparcie sprzętowe można najczęściej wyłączyć i wiele z opisywanych  dalej aplikacji będzie działać bez niego.

Tylko że dalej jest jedno małe "ale" - mogą one nawet wtedy zawierać potencjalne luki i potencjalnie wpływać na system operacyjny gospodarza (choćby przez dołączane do niego sterowniki)...

Z ciekawostek - w Ubuntu mamy dostępną aplikację imvirt, która pokazuje, czy jest uruchomiona w maszynie wirtualnej czy nie.

Do góry

VirtualBox

Produkt VirtualBox
Typ maszyna wirtualna
Koszt darmowa
Kod źródłowy tak (wersja OSE - licencja GPL 2),
nie (wersja pełna)
Dostępna Windows, GNU/Linux, Mac OS X i inne

Oprogramowanie dostępne jest w wersji pełnej i Open Source (OSE). W tej drugiej ze względów licencyjnych brak jest np. wsparcia dla USB, jest ona natomiast dostępna standardowo w Ubuntu w Centrum Oprogramowania Ubuntu (co jest zgodne z zasadami tworzenia tej dystrybucji). W celu jej instalacji uruchamiamy Centrum, w nim w polu wyszukiwania wpisujemy virtualbox i naciskamy Enter.

Wybieramy VirtualBox OSE i klikamy przycisk Zainstaluj. Możemy zostać wtedy poproszeni o wpisanie hasła administratora.

Po pobrana aplikacja zostanie zainstalowana, w menu systemowym w Akcesoria zobaczymy wtedy ikonkę VirtualBox OSE.

Poniżej pokazano ekran główny programu - na liście widać stworzone maszyny, informację o ich ustawieniach (zakładka Szczegóły), zapisane przez nas ich stany w danym momencie (np. z załadowanymi konkretnymi aplikacjami - zakładka Migawki) oraz podany przez nas opis (zakładka Opis). W menu głównym czy też menu dostępnym pod prawym klawiszem myszy mamy dostępne okno z ustawieniami.

W celu stworzenia nowej maszyny należy kliknąć przycisk Nowa - zostanie wtedy uruchomiony kreator jak na obrazku poniżej.

Klikamy przycisk Dalej, na kolejnym ekranie wpisujemy nazwę naszej maszyny i wybieramy system operacyjny, który będziemy chcieli tam zainstalować.

Po naciśnięciu Dalej wskazujemy wielkość pamięci RAM przydzielonej symulowanej maszynie.

Następnie w kreatorze możemy stworzyć nowy dysk (zostanie otwarty opisany dalej kreator) albo wybrać jeden z istniejących (wtedy zobaczymy przedstawiony niżej menedżer dysków).

Kolejny krok związany jest z potwierdzeniem parametrów maszyny.

VirtualBox ma łatwe w użyciu okno do wyboru plików z dyskami twardymi, obrazami płyt albo dyskietek. Kliknięcie przycisku Dodaj pozwala wybrać odpowiedni zbiór, natomiast Nowy otwiera odpowiedni kreator. Obsługiwane są tutaj formaty VMDK firmy VmWare (używamy m.in. przez opisywanego dalej VmWare Playera), VHD promowany m.in. przez Microsoft, własny VDI oraz Parallers znany z komercyjnych produktów firmy o tej nazwie.

Po otwarciu kreatora do tworzenia nowego dysku zobaczymy ekran jak na rysunku. Klikamy Dalej.

Wybieramy teraz typ dysku - podajemy, czy jego wielkość na fizycznym nośniku ma od razu odpowiadać zadeklarowanej przez nas czy też ma być możliwie mała (rosnąć w miarę potrzeb maksymalnie do podanej wielkości).

Kolejny krok to wskazanie wielkości dysku.

Na końcu potwierdzamy wybrane wcześniej ustawienia.

Po wejściu w opcję ustawień maszyny wirtualnej możemy zobaczyć bardziej rozbudowane opcje, wybrana ich część została pokazana niżej. I tak Włącz obsługę VT-x/AMD-V uaktywnia obsługę wsparcia sprzętowego.

Opcja Włącz akcelerację 3D pozwoli symulowanemu systemowi na przyspieszenie grafiki 3D.

Z kolei uzyskanie takiego dostępu do sieci jak w systemie gospodarza umożliwi ustawienie Mostkowana karta sieciowa (bridged). Nawiasem mówiąc - w Windows (jako systemie gospodarza) dodawana jest jedna karta sieciowa i możemy ją wyłączyć o ile korzystamy tylko z ustawienia mostkowanego.

Do góry

Dodatki do VirtualBoxa

Po uruchomieniu maszyny wirtualnej warto również zainstalować w niej różne dodatki.

W tym celu należy wpierw z menu Urządzenia wybrać opcję Zainstaluj Dodatki. W symulowanej maszynie pojawi się wtedy dodatkowy napęd CD z płytą VBOXADDITIONS - w Ubuntu standardowo widoczna będzie jego ikona na pulpicie. Wystarczy kliknąć na niej dwa razy myszą, w otwartej Przeglądarce plików wybrać opcję Otwórz pytanie o automatyczne uruchamianie, potwierdzić (przycisk Uruchom), podać hasło administratora i już po chwili całość będzie zainstalowana.

Tak przygotowany system jest w stanie korzystać z rozdzielczości większej niż 800x600. Aby to zrobić, w menu Maszyna okna maszyny wirtualnej zaznaczamy opcję Włącz automatyczne skalowanie ekranu gościa i następnie skalując okno w zależności od potrzeb uzyskamy żądany rozmiar. Opcja ta jest bardzo często użyteczna z jeszcze jednego powodu - zmiana wymiarów wymusza odświeżenie ekranu gościa...

Znacznie ciekawsze jest to, iż możliwe jest także użycie trójwymiarowych efektów - symulowana maszyna zachowuje się tak, jak gdyby umieszczona w niej kartę graficzną z odpowiednim wsparciem. sprzętowym. Całość współdziała z efektami graficznych pulpitu w Ubuntu - wystarczy kliknąć na Wygląd z menu systemowego Preferencje, przejść do zakładki Efekty wizualne, wybrać inną opcję niż Brak i kliknąć przycisk Zamknij.

System i maszyna wirtualna mogą również współdzielić jakiś katalog. Pierwszym krokiem w celu uaktywnienia tej funkcjonalności jest wejście np. w ustawienia maszyny i użycie opcji za zakładce Współdzielone katalogi.

Następnie w symulowanej maszynie tworzymy katalog (np. komendą mkdir).

Kolejną czynnością jest "podłączenie" tam katalogu z hosta (komenda mount uruchomiona z uprawieniami administratora). Przykład pokazano na ekranie poniżej:

sudo mount -t vboxsf -o rw,uid=1000,gid=1000 testowy ~/katalog

gdzie obie liczby 1000 zostały odczytane dla użytkownika z wyniku działania komendy id, zamiast testowy podajemy nazwę zasobu wpisaną w ustawieniach maszyny wirtualnej, a zamiast ~/katalog pełną ścieżkę do katalogu gościa.

Wyraźnie brakuje tutaj łatwiejszego rozwiązania (np. przeszukiwania okna podobnego do Otoczenia Sieciowego w Windows).

Do góry

VirtualBox z USB

Możliwe jest zainstalowanie w Ubuntu również "pełnego" pakietu VirtualBox - odpowiedni opis podany jest stronie producenta.

Wpierw w dowolnej przeglądarce pobieramy plik oracle_vbox.asc.

Następnie należy uruchomić Menedżer aktualizacji (System\Administracja\Menedżer aktualizacji). W nim klikamy na przycisk Ustawienia, przechodzimy do zakładki Inne oprogramowanie i klikamy na przycisk Dodaj. W otwartym oknie wklejamy tekst

deb http://download.virtualbox.org/virtualbox/debian lucid non-free

Następnie klikamy na przycisk Dodaj źródło i w oknie powinniśmy zobaczyć dodatkową linijkę

http://download.virtualbox.org/virtualbox/debian lucid non-free

Przechodzimy teraz do zakładki Uwierzytelnianie. Klikamy na przycisk Zaimportuj plik klucza i wskazujemy na plik oracle_vbox.asc. Powinniśmy wtedy zobaczyć nowy wpis

98AB 5139
Oracle Corporation (VirtualBox archive signing key)

Teraz klikamy na Zamknij i Sprawdź. Od tej chwili w Centrum Oprogramowania Ubuntu pojawi się pakiet Oracle VM VirtualBox.

Po jego zainstalowaniu zgodnie z FAQ producenta należy jeszcze dodać użytkownika systemu do grupy vboxusers. W tym celu w Ubuntu:

  1. uruchamiamy aplikację Ustawienia użytkowników (System\Administracja\Użytkownicy i grupy)
  2. klikamy na przycisk Zarządzaj grupami
  3. odnajdujemy i zaznaczamy vboxusers
  4. klikamy na przycisk Właściwości
  5. w polu Członkowie grupy zaznaczamy użytkownika
  6. klikamy OK, Zamknij, Zamknij
  7. restartujemy system

Do góry

QEMU i KVM

Produkt QEMU i KVM
Typ emulator (QEMU),
maszyna wirtualna (KVM)
Koszt darmowa
Kod źródłowy tak (licencja GPL 2)
Dostępność różne systemy (QEMU),
GNU/Linux (KVM)

QEMU jest emulatorem stworzonym przez Fabrice Bellarda, zaś KVM (skrót od Kernel-based Virtual Machine) opartym na nim rozwiązaniem dostępnym od wersji 2.6.20 jądra Linuxa (dokładniej mówiąc maszyną wirtualną wymagającą wirtualizacji sprzętowej składającej się z modułów jądra i zmodyfikowanej wersji QEMU).

W Ubuntu w Centrum Oprogramowania Ubuntu wyszukujemy qemu-kvm i instalujemy pakiet o tej samej nazwie. Dyski są zapisywane w formatach CLOOP (Linux Compressed Loop), COW (znany z User Mode Linux), VMDK (znów znany z produktów VmWare), QCOW i QCOW2 (oba własne) oraz RAW.

KVM zawiera moduły jądra. Czasem mogą one kolidować z innym oprogramowaniem. Należy je wtedy wyłączyć np. poprzez wydanie odpowiednich komend z konsoli (podaję wersję dla procesorów Intela).

sudo modprobe -r kvm_intel

sudo modprobe -r kvm

Ich uaktywnienie uzyskamy z kolei poprzez

sudo modprobe kvm-intel

Oba rozwiązania wymagają skorzystania z linii komend. Z tego względu dodatkowo warto zainstalować program, który dostarczy wygodnego interfejsu do ich obsługi. Do celów testowych w Centrum został wybrany pakiet aqemu - dzięki niemu w menu Narzędzia systemowe pojawiła się aplikacja AQEMU.

Program ten jest dosyć prosty w obsłudze, wymaga jedynie znajomości języka angielskiego.

Po naciśnięciu zielonego przycisku "+" na liście dodawana jest nowa maszyna. Jej konfigurację uzyskujemy poprzez zakładki po prawej stronie okna - i tak np. w General jesteśmy w stanie ustawić chociażby ilość przydzielanej pamięci RAM czy typ karty dźwiękowej.

Poniżej zostały pokazane wykorzystywane ustawienia dla QEMU.

KVM był bardzo podobny w konfiguracji

Dodatkowo wymagane były tylko dwie czynności - na zakładce HDD niezbędne było wskazanie pliku z obrazem dysku twardego oraz dodanie karty sieciowej na zakładce Network (przyciskiem Add).

Maszyny wirtualne uruchamiane z użyciem tych rozwiązań nie mają żadnych dodatków, w oknie z maszyną nie ma także żadnych informacji o stanie symulowanych urządzeń (np. czy aktualnie pracuje dysk twardy).

Do góry

Rozwiązania VmWare/Player

Firma VmWare ma w swojej ofercie szereg komercyjnych rozwiązań wirtualizacyjnych. Jej produkty znają chociażby użytkownicy komputerów Apple z procesorem Intela (płatnym VmWare Fusion pozwalający na uruchamianie okienek firmy Microsof), jest też natomiast darmowy VmWare Server i VmWare Player.

Produkt VmWare Player
Typ maszyna wirtualna
Koszt darmowa
Kod źródłowy nie
Dostępność Windows, systemy GNU/Linux i inne

Poniżej zostanie przedstawiony ten ostatni pakiet (jako najprostszy). Jego pobranie wymaga bezpłatnego założenia konta i rejestracji na stronie producenta.

Po ściągnięciu pliku z końcówką bundle w Ubuntu należy go uruchomić z prawami administratora - jedna z możliwości to kliknięcie prawym klawiszem myszy na tym zbiorze w standardowej Przeglądarce plików, wybranie opcji Otwórz za pomocą... i uruchomienie z aplikacją gksudo.

Później podajemy hasło administratora i możemy oglądać bardzo prosty program instalacyjny (wystarczy w nim klikać na przyciski Next i Install).

Aplikacja (widoczna w Ubuntu w menu Narzędzia systemowe) ma podobny układ jak VirtualBox. Jej minusem może być brak polonizacji oraz współdziałanie wyłącznie z własnym formatem dysków VMDK.

W ustawieniach maszyn również mamy praktycznie te same możliwości co w VirtualBox - można wybierać ilość rdzeni procesora, łatwo dodawać i usuwać dyski, podłączać urządzenia USB, itd.

W Windows (jako systemie gospodarza) dodawane są dwie karty sieciowe - możemy wyłączyć obie o ile używamy mostkowanego połączenia karty sieciowej.

Ciekawostką jest możliwość zapisywania jednego wirtualnego dysku w wielu plikach (gdzie każdy z nich jest jego częścią).

Inną ciekawą opcją jest funkcja wykorzystania fizycznego dysku czy też jego partycji. W tym celu przy dodawaniu nowego dysku do maszyny (np. poprzez przycisk Add w jej ustawieniach) w kreatorze należy wybrać trzecią dostępną opcję (Use a physical disk).

Dostępne są również dodatki do symulowanych maszyn. W przypadku Ubuntu ich instalacja nie jest niestety tak wygodna jak w przypadku opisywanego wcześniej konkurenta.

Po uruchomieniu maszyny wirtualnej i kliknięciu na opcję Install VmWare Tools w menu głównym jej okna w maszynie widoczny będzie napęd z płytą VMWare Tools. Znajduje się w nim archiwum w popularnym w systemach unixopodobnych formacie tar.gz. Należy go wpierw rozpakować (po kliknięciu na ikonę napędu na pulpicie trzeba kliknąć prawym klawiszem myszy na tym plików, wybrać opcję Otwórz za pomocą menedżer archiwów, w otwartym programie wybrać opcję dekompresji, czyli z menu Plik opcję Rozpakuj).

Następny krok to uruchomienie terminala (Akcesoria\Terminal). Przechodzimy w nim do katalogu z rozpakowanymi plikami (zamiast katalog podajemy pełną ścieżkę do niego):

cd katalog

i uruchamiamy instalację

sudo ./vmware-install.pl

Program działa w trybie tekstowym i wymaga np. odpowiedzi na pytania, w jakich katalogach umieszczać pliki (można naciskać klawisz Enter i zgadzać się na proponowane wartości). Po instalacji system warto zrestartować.

Uruchomienie dodatków uzyskujemy wydaną z terminala komendą

sudo vmware-toolbox

Na usunięcie tych narzędzi pozwoli z kolei

sudo vmware-uninstall-tools.pl

Mamy również wersję Open Source wspomnianych dodatków tworzoną w ramach projektu Open Virtual Machine Tools - w Centrum Oprogramowanie Ubuntu jest to m.in. pakiet VMWare User Agent. Niestety po jego zainstalowaniu i wybraniu w menu odpowiedniej pozycji nic się nie dzieje... Z kolei sudo vmware-toolbox uruchomi dokładnie tę samą aplikację co w wersji "komercyjnej".

Żeby usunąć VmWare Playera w Ubuntu, należy otworzyć terminal i wpisać w nim komendę

sudo bash vmware-installer -u vmware-player

Podczas testowania tej aplikacji w Ubuntu widoczne było niestety dosyć nieprzyjemne cechy:

  1. podczas używania maszyny wirtualnej z Windows XP zdarzało się, że komputer (również host) był po prostu zawieszany (całkowicie lub czasowo)
  2. przydzielenie jednego rdzenia procesora powodowało, iż system hosta miał obciążone dwa rdzenie w całości

Również w Windows XP zdarzało się, że wielokrotne włączanie i wyłączanie maszyn z połączeniem sieciowym doprowadzało do tego, iż system hosta nie był w stanie się wyłączyć (wieszał się na ekraniu Windows is shutting down...) albo nie można było w nim włączyć/wyłączyć karty sieciowej.

Dużym rozczarowaniem jest niestety brak działającego wsparcia sprzętowego dla grafiki 3D  w Ubuntu jako systemie gościa (pomimo istnienia odpowiedniej opcji).

Do góry

Rozwiązania Microsoftu/XP Mode

Firma Microsoft dostarcza coraz więcej różnorodnych produktów wirtualizacyjnych. Mamy nie tylko hypervisora Hyper-V i odpowiednie rozszerzenia do obecnych wersji serwerowych Windows, ale również szereg rozwiązań tego typu w Windows 7. Korporacja publikuje również obrazy testowe różnych wersji swoich systemów (w ramach programu VHD Test Drive, pliki można znaleźć również w ramach Download Center) oraz pliki umożliwiające sprawdzenie działania różnych wersji Internet Explorera pod kontrolą Windows XP/Vista.

Siódemka zawiera obsługę formatu VHD (wszystkie edycje), tryb XP (XP Mode) oraz ma możliwość instalacji na partycji zapisanej fizycznie w pliku w formacie VHD. Te dwie ostatnie funkcjonalności przewidziane są dla droższych edycji Professional, Ultimate i Enterprise, tryb XP jest natomiast niczym innym jak zintegrowaną z systemem maszyną wirtualną z Windows XP SP3 (początkowo wymagała ona wsparcia sprzętowego, obecnie zaś nie jest to niezbędne).

Produkt Windows Virtual PC
Typ maszyna wirtualna
Koszt darmowa
Kod źródłowy nie
Dostępna Windows 7

Pobranie trybu XP jest bezpłatne, wymaga jedynie sprawdzenia legalności systemu. Instalujemy trzy moduły - Windows Virtual PC (aplikację do obsługi i tworzenia maszyn wirtualnych), tryb XP (maszynę wirtualną) i uaktualnienie pozwalające na działanie całości bez funkcji wirtualizacji sprzętowej.

Windows Virtual PC zawiera dodatki dla Windows XP SP3, Vista SP1 oraz 7, maszyna z Windows XP ma je w sobie zainstalowane i od razu np. dzieli dyski twarde z gospodarzem czy pozwala na dodanie do menu Start gospodarza wpisów dotyczących zainstalowanych w niej aplikacji (opcja Narzędzia/Ustawienia/Automatyczne publikowanie w oknie maszyny).

Możliwe jest tutaj również współdzielenie różnych urządzeń (np. podłączonych do interfejsu USB) albo  tworzenie maszyn z innymi systemami operacyjnymi (wspierane są tylko te 32-bitowe).

Do góry

Virtual PC

Produkt Virtual PC 2007 SP1
Typ maszyna wirtualna
Koszt darmowa
Kod źródłowy nie
Dostępna Windows XP/Vista

Poniżej przedstawione zostanie rozwiązanie dostępne użytkownikom Windows XP/Vista (czyli darmowa aplikacja Virtual PC 2007 SP1).

Po pobraniu niezbędna jest krótka instalacja - prośba o wskazanie katalogu, zaakceptowanie licencji i podanie danych oraz tego, czy program ma być dostępny dla wszystkich użytkowników systemu.

Po instalacji w menu Start pojawia się nowa ikona Microsoft Virtual PC, w ustawieniach karty sieciowych widoczna jest usługa Virtual Machine Network Services.

Pierwsze uruchomienie i widać dosyć standardowe okno (polski język nie jest obsługiwany).

Jest też kreator. Klikamy w nim przycisk Next.

Ponieważ interesuje nas nowa maszyna, najlepsza będzie pierwsza opcja (Create a virtual machine). Wybieramy ją i klikamy przycisk Next.

Program standardowo proponuje zapisanie katalogu z plikami maszyny w My Documents - można to oczywiście zmienić korzystając z Browse. Podajemy nazwę i klikamy Next.

Teraz potwierdzamy system operacyjny gościa i klikamy Next.

Na kolejnym ekranie wybieramy możemy wybrac ilość RAM.

Kolejne pytania dotyczy wyboru dysku twardego - można wybrać istniejący (format VHD) lub stworzyć nowy.

 

Na końcu trzeba jeszcze potwierdzić i maszyna zostaje stworzona.

Po stworzeniu maszyny jej nazwa pojawi się w głównym oknie programu. Można ją uruchomić lub wejść w ustawienia. Dosyć ciekawą funkcją jest Undo Disks, która pozwala na pracę z maszyną, a później na powrót do jej wcześniejszego stanu (tego, co było wczesniej zapisane na dysku). Mamy opcję współdzielonych folderów, która jednakże wymaga zainstalowania dodatków w maszynie.

Z kolei z głównego menu programu lub z opcji związanych z dyskami twardymi można uruchomić kreatora dysków. Pozwoli on na ustawienie, żeby plik z dyskiem miał cały czas zadeklarowaną wielkość (a nie ustalaną stosownie do potrzeb i równą podanej tylko w najgorszym przypadku) albo spakowanie zawartości.

Dodatki do maszyn przeznaczone są dla OS2, DOS i Windows. Ciekawostką jest, iż oprogramowanie to nie pozwoliło na testowym komputerze użycie sprzętowej wirtualizacji oraz to, że w maszynach nie działało przewijanie w myszy.

Do góry

DOS wiecznie żywy...

Co zrobić, gdybyśmy natomiast chcieli zagrać w jedną z gier do DOS ?

Produkt DOSBox
Typ emulator
Koszt darmowa
Kod źródłowy tak
Dostępność Windows, GNU/Linux i inne

Możliwości jest kilka - jednym rozwiązaniem jest instalacja DOSa  (chociażby darmowego FreeDOSa) korzystając z wcześniej przedstawianych rozwiązań, innym zaś skorzystanie z maszyn, które są ukierunkowane na ten typ oprogramowania.

Pierwszy z takich pakietów to DOSBox - w Centrum Oprogramowania Ubuntu szukamy pakietów z frazą dosbox i instalujemy pakiet DOSBox Emulator.

Później pozostaje nam uruchomienie naszemu emulatora komendą dosbox, a w nim podłączenie katalogu z naszymi plikami

mount /home/marcin/virtual D: -t cdrom

Program emuluje 32-bitową platformę x86, zgodnie z informacją z zamieszczonego powyżej zrzutu ekranu wprowadzenie można obejrzeć po użyciu komendy intro.

Ciekawostką jest, iż wersje DOSBoxa działające na platformie Symbian i Android pozwoliły na uruchomienie tam Windows 3.1 (szerzej można poczytać chociażby na FrazPC i ANDROID BLOG).

Produkt DOSEmu
Typ maszyna wrtualna
Koszt  darmowa
Kod źródłowy  tak
Dostępny  Linux, NetBSD

Jest również DOSEmu - W Centrum Oprogramowania Ubuntu szukamy pakietów z frazą dosemu i instalujemy pakiet DOS Emulator. Obsługiwane jest również jedynie oprogramowanie 32-bitowe.

Próba uruchomienia komendą dosemu w terminalu może skończyć się wyświetleniem komunikatu

LOWRAM mmap: Operation not permitted
Cannot map low DOS memory (the first 640k).
You can most likely avoid this problem by running
sysctl -w vm.mmap_min_addr=0
as root, or by changing the vm.mmap_min_addr setting in
/etc/sysctl.conf or a file in /etc/sysctl.d/ to 0.

Zgodnie z podaną sugestią można użyć komendy

sudo sysctl -w vm.mmap_min_addr=0

i już po chwili np. komenda

dosemu &

pozwoli na zadziałanie tego programu.

Jak widać na pokazanym niżej ekran, dysk D domyślnie zawiera pliki z katalogu domowego użytkownika.

Do góry

Java na zawsze ?

Zostaną teraz wskazane rozwiązania, które może wprawdzie niekoniecznie są bardzo uniwersalne czy dopracowane, ale za to mają pewne unikalne cechy albo są po prostu klasyką...

Nazwa JPC
Typ emulator
Koszt darmowa
Kod źródłowy tak (licencja GPL 2)
Dostępna systemy z Javą

Java jest niewątpliwie językiem o dużych możliwościach (jeżeli ktoś w to wątpi, można polecić poniższego filmiku - jego kopii z YouTube lub oryginału z Java.no).

A gdyby tak emulować z jej użyciem całą platformę x86 ?

JPC to próba realizacji takiego rozwiązania. Jego autorzy szacują jego wydajność na poziomie 20% rzeczywistej prędkości maszyny. Obecnie nie uruchomimy w ten sposób Ubuntu czy Windows XP, ale np.  DSL (Damn Small Linux) już tak. Obsługiwany format dysku to tym razem RAW.

Całość możemy sprawdzić w przeglądarce albo uruchomić jako oddzielny program - potrzebna jest jedynie maszyna wirtualna Javy. W przypadku Ubuntu przed instalacją jej wersji dostarczonej przez firmę Sun trzeba wykonać pewien dodatkowy krok, czyli wydać komendy

sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"

sudo apt-get update

z terminala albo dodać napis w cudzysłowiu w aplikacji Źródła Oprogramowania (podobnie jak było to opisane wcześniej dla VirtualBoxa). Później wystarczy w Centrum Oprogramowania Ubuntu zainstalować pakiet Wtyczka Sun Java 6 (przy wyłączonej przeglądarce).

Następnie odwiedzamy stronę domową i już można wybierać jeden z systemów do testowania.

Widoczne są tutaj niestety pewne problemy z udostępnianymi dystrybucjami Linuxa (chociażby z kursorem myszy), bardzo dobrze z kolei działają programy dla DOS obsługiwane z użyciem klawiatury.

Do góry

FAUMachine

Produkt FAUMachine
Typ emulator
Koszt darmowa
Kod źródłowy tak
Dostępna GNU/Linux, Mac OS X

FAUMachine wyróżnia się tym, iż nie wymaga żadnych modułów jądra ani uprawnień administratora (potencjalnie więc wpływa mniej na system gospodarza).

W Centrum Oprogramowania Ubuntu instalujemy pakiet FAUMachine, aplikacja pojawia się w menu Narzędzia systemowe pod nazwą FAUMachine.

Przy pierwszym uruchomieniu podajemy katalog (w którym będą zapisywane maszyny) i parametry - architektura 32 czy 64-bitowa (ta ostatnia tylko dla procesorów AMD), wielkość RAM i dysku.

Widać tutaj niestety bardzo duże ograniczenia aplikacji - np. RAM to maksymalnie 256 MB, po wstępnej konfiguracja kolejna jest możliwa wyłącznie przez edycję pliku ~/.faumrc, pliki z maszyną mają dosyć nietypowe nazwy (jeżeli umieścimy je na partycji NTFS, Windows będzie mieć problemy z ich usunięciem).

Przyjęte rozwiązania są dalekie od intuicyjności, brak jest też jakiegokolwiek opisu na stronie projektu...

Z ciekawostek: program pozwala na posiadanie procesora Pentium II działającego z prędkością 2 Ghz.

Do góry

Bochs

Nazwa Bochs
Typ emulator
Koszt darmowy
Kod źródłowy tak
Dostępność Windows, GNU/Linux, inne

W Centrum Oprogramowania Ubuntu szukamy pakietów z frazą bochs i instalujemy pakiet IA-32 PC Emulator. Program pozwala na emulację 32-bitowej platformy x86.

Jest obsługiwany i konfigurowany tylko z konsoli, z tego względu został potraktowany wyłącznie jako ciekawostka.

 

Do góry

Zabawy z obrazami

Dyski twarde używane przez maszyny wirtualne są najczęściej fizycznie plikami w różnych formatach - VMDK (VmWare), VHD (Microsoft), VDI (VirtualBox), itp. Jak poradzić sobie z ich obsługą ?

Konwersję między wiekszością formatów zrobimy z użyciem qemu-img, przykładowe wywołanie z konsoli może wyglądać

qemu-img convert -O raw plik_wejsciowy.vhd plik_wyjsciowy.bin

Jest też narzędzie VBoxManage, pozwoli ono na obsługę VHD, VDI i VMDK. Konwersję pliku uzyskamy tutaj przez

VBoxManage clonehd plik_wejsciowy.vmdk plik_wyjsciowy.vhd --format VHD

gdzie zamiast VHD podajemy docelowy format pliku.

Jeżeli chcielibyśmy zmienić rozmiar pliku VMDK (tzn. pliku, a nie partycji w nim zapisanych), opcja do tego znajduje się w pakiecie VmWare Player (przy ustawieniach maszyn wirtualnych, do których ten plik podłączono).

Pakiet ten zawiera jeszcze jedną przydatną aplikację (vmware-fuseUI) - pozwala ona na łatwe "podłączenie" zawartości pliku VMDK w jakimś katalogu systemu plików. Z kronikarskiego obowiązku: podobne rozwiązanie ma Windows 7 (w odniesieniu do plików VHD).

Do góry

Limitowanie sieci

Praktycznie każda z przedstawionych wcześniej maszyn ma funkcje ustawiania ilości rdzeni CPU czy dostępnej ilość RAM, niestety żadna nie potrafi ograniczyć pasma przeznaczonego dla karty sieciowej. Czy da się coś z tym zrobić ?

Można założyć odpowiednie ograniczenie w samej maszynie wirtualnej. Ubuntu ma do tego celu narzędzie wondershaper. W celu ustawienia limitu wydajemy komendę z konsoli

wondershaper eth0 100 200

gdzie zamiast eth0 podajemy nazwę naszego interfejsu sieciowego (uzyskamy ją np. poprzez komendę ifconfig), zamiast 100 prędkość pobierania w kilobitach/s i zamiast 200 prędkość wysyłania w kilobitach/s.

Do góry

Wydajność przeglądarek

Na testowym komputerze zainstalowane były dwa "główne" systemy - 32-bitowe Ubuntu 10.04 na partycji NTFS (instalator w technologii WUBI) oraz 32-bitowy Windows XP Pro SP3.

Przygotowana została maszyna wirtualna z 32-bitowym Ubuntu 10.04. Dodawano/usuwano w niej dodatki proponowane przez producentów opisywanych rozwiązań oraz konwertowano format dysku twardego (z VMDK na VHD). Do celów testowych maszyny wirtualne miały ilość RAM ograniczoną do 512 MB, zawsze (czy to w systemach rzeczywistych czy maszynach wirtualnych) ustawiano rozdzielczość 800x600 i przydzielano tylko jeden z dwóch fizycznych rdzeni procesora (Core 2 Duo).

W takiej konfiguracji przetestowano wpierw przeglądarki WWW. Rozpoczęto od Firefoxa 3.6.6 (który nawiasem mówiąc ostatnio został wybrany jako domyślny w korporacji IBM) i testu PeaceKeeper (w którym większa ilość punktów oznacza lepszy wynik).

System gospodarza Rozwiązanie Sprzętowa wirtualizacja PeaceKeeper Opóźnienie (%)
Wyniki cząstkowe (pkt) Średnia (pkt)
Ubuntu brak nie 1997, 2036, 2052 2028 0
Ubuntu KVM 0.12.3 tak 1838, 1888, 1852 1859 8
Ubuntu VmWare Player 3.1.0 build-261024 nie 1617, 1797, 1863 1759 13
Ubuntu VmWare Player 3.1.0 build-261024 tak 1540, 1751, 1755 1682 17
Ubuntu VirtualBox 3.2.6 r63112 nie 1548, 1726, 1688 1654 18
Windows XP VmWare Player 3.1.0 build-261024 nie 1581, 1637, 1667 1628 20
Windows XP VmWare Player 3.1.0 build-261024 tak 1568, 1521, 1600 1563 23
Windows XP VirtualBox 3.2.6 r63112 tak 1607, 1530, 1494 1543 24
Ubuntu VirtualBox 3.2.6 r63112 tak 1513, 1553, 1513 1526 25
Windows XP VirtualBox 3.2.6 r63112 nie 1424, 1420, 1504 1449 29
Windows XP Virtual PC 2007 SP1 nie 1059, 974, 1074 1036 49
Ubuntu QEMU 0.12.3 nie 92, 91, 97 93 95

Sprawdzono również wyniki SunSpider 0.9 (tutaj liczy się czas wykonania operacji). Z dosyć oczywistego względu nie sprawdzono już tutaj i dalej wydajności QEMU.

System gospodarza Rozwiązanie Sprzętowa wirtualizacja SunSpider 0.9 (ms)
Opóźnienie (%)
Ubuntu brak nie 1152 +/- 2.8% 0
Ubuntu VmWare Player 3.1.0 build-261024 tak 1413 +/- 6.3% 18
Ubuntu KVM 0.12.3 tak 1439 +/- 3.6% 25
Ubuntu VmWare Player 3.1.0 build-261024 nie 1441 +/- 3.4% 25
Ubuntu VirtualBox 3.2.6 r63112 nie 1518 +/- 2.4% 32
Ubuntu VirtualBox 3.2.6 r63112 tak 1700 +/- 16% 47
Windows VmWare Player 3.1.0 build-261024 nie 2226 +/- 9.5% 93
Windows XP VirtualBox 3.2.6 r63112 nie 2284 +/- 10% 98
Windows XP Virtual PC 2007 SP1 nie 2580 +/- 6.6% 124
Windows XP VmWare Player 3.1.0 build-261024 tak 2584 +/- 13.9% 125
Windows XP VirtualBox 3.2.6 r63112 tak 3039 +/- 4.3% 164

Przetestowana została także przeglądarka Chromium 5.0.375.99. W wynikach widoczny jest rozrzut znacznie większy niż w przypadku Firefoxa, co może sugerować o nieprzydatności użytego testu w przypadku tego programu (trudno ocenić, czy jest to kwestia wbudowanych optymalizacji czy przyczyna jest inna).

Również pewne wątpliwości budzi wynik dla KVM - test wskazywał większe wartości niż w rzeczywistym systemie i również ciężko stwierdzić, czy jest to wynik zastosowania jakichś operacji związanych z zegarem czy innych czynników (dalej świadomie przyjęto, iż opóźnienie tutaj wynosi 0, gdyż raczej ciężko jest przyjąć, iż aplikacja może działać szybciej).

System gospodarza Rozwiązanie Sprzętowa wirtualizacja PeaceKeeper Opóźnienie (%)
Wyniki cząstkowe (pkt) Średnia (pkt)
Ubuntu brak nie 5117, 5147, 4597 4954  0
Ubuntu KVM 0.12.3 tak 5166, 5319, 5378 5288  0
Ubuntu VmWare Player 3.1.0 build-261024 nie 4987,5009, 4852 4949  0
Ubuntu VmWare Player 3.1.0 build-261024 tak 4904, 4669, 4182 4585  7
Windows XP VirtualBox 3.2.6 r63112 tak 3796, 4262, 4066 4041  18
Ubuntu VirtualBox 3.2.6 r63112 nie 3587, 3571, 3563 3574  28
Windows XP VmWare Player 3.1.0 build-261024 nie 3212, 3519, 3466 3399 31
Windows XP VmWare Player 3.1.0 build-261024 tak 3211, 3517, 3391 3373  32
Ubuntu VirtualBox 3.2.6 r63112 tak 3116, 3171, 3378 3222  35
Windows XP VirtualBox 3.2.6 r63112 nie 3144, 3180, 3188 3171  36
Windows XP Virtual PC 2007 SP1 nie 1642, 2282, 3012 2312  53

Dodano też oczywiście wyniki SunSpider 0.9.

System gospodarza Rozwiązanie Sprzętowa wirtualizacja SunSpider 0.9 (ms)
Opóźnienie (%)
Ubuntu brak nie 549 +/- 11.2%  0
Ubuntu KVM 0.12.3 tak 550 +/- 1.9%  0
Ubuntu VmWare Player 3.1.0 build-261024 tak 591 +/- 4.9%  8
Ubuntu VmWare Player 3.1.0 build-261024 nie 619 +/- 3.9% 13
Windows XP VmWare Player 3.1.0 build-261024 nie 792 +/- 39.6% 44
Windows XP VirtualBox 3.2.6 r63112 tak 882 +/- 24.3%  61
Ubuntu VirtualBox 3.2.6 r63112 nie 1302 +/- 19.3% 137
Windows XP Virtual PC 2007 SP1 nie 1326 +/- 9.1% 141
Ubuntu VirtualBox 3.2.6 r63112 tak 1373 +/- 30.6% 150
Windows XP VmWare Player 3.1.0 build-261024 tak 1400 +/- 34.9% 155
Windows XP VirtualBox 3.2.6 r63112 nie 1601 +/- 9.9% 192

Do góry

Wydajność - inne testy

Z uwagi na obecność działającej akceleracji 3D podjęta została próba uruchomienia jednego z bardziej rozbudowanych benchmarków graficznych (opartego na enginie Unigine). W tym celu w Centrum Oprogramowania Ubuntu zainstalowany został wpierw pakiet phoronix-test-suite, następnie w konsoli wydano komendę

phoronix-test-suite benchmark unigine


O ile w rzeczywistym Ubuntu uzyskano odpowiednie wyniki, o tyle w VirtualBox test niestety zwyczajnie się nie uruchomił  - jest to o tyle ciekawe, że rozszerzenia Compiz i gra TuxRacer nie miały tam większych problemów. Najbardziej prawdopodobna przyczyna to brak wsparcia dla jakichś bardziej zaawansowanych funkcji OpenGL.

Sprawdzone zostały inne zestawy testów związanych z grafiką (chociażby phoronix-test-suite benchmark xrender i phoronix-test-suite benchmark x-testing). Skutek był niestety ten sam...

Phoronix zawiera również inne rodzaje benchmarków (ich pełną listę można poznać poprzez  phoronix-test-suite list-suites). Wybrany został test cryptography, a z niego wynik drugiego testu (OpenSSL), czyli znów czas wykonania się pewnych operacji zależny od wydajności obliczeń i operacji dyskowych.

System gospodarza Rozwiązanie Sprzętowa wirtualizacja OpenSSL (znaki/s) Opóźnienie (%)
Ubuntu brak nie 12.72 0
Ubuntu KVM 0.12.3 tak 12.47 2
Ubuntu VirtualBox 3.2.6 r63112 tak 12.32 3
Windows XP VirtualBox 3.2.6 r63112 tak 12.20 4
Ubuntu VmWare Player 3.1.0 build-261024 nie 12.12 5
Windows XP VmWare Player 3.1.0 build-261024 nie 11.97 6
Ubuntu VmWare Player 3.1.0 build-261024 tak 11.90 6
Windows XP VirtualBox 3.2.6 r63112 nie 11.75 8
Windows XP VmWare Player 3.1.0 build-261024 tak 10.76 15
WIndows XP Virtual PC 2007 SP1 nie 10.72 15
Ubuntu VirtualBox 3.2.6 r63112 nie 9.86 22

Przeprowadzono także test związany z pamięcią. W tym celu w Centrum Oprogramowania Ubuntu pobrano aplikację mbw, a następnie uruchomiono z konsoli komendę

mbw -n 3 -t0 256

(256 oznacza 256 MB przetestowanej pamięci, 3 to ilość powtórzeń, a -t0 wymusza wybranie pierwszego testu). Liczby związane są z prędkością (im mniejsze, tym lepsze).

System gospodarza Rozwiązanie Sprzętowa wirtualizacja mbw -n 3 -t0 256 Opóźnienie (%)
Elapsed Średnia
Ubuntu brak nie 0.21, 0.21, 0.21 0 0
Ubuntu KVM 0.12.3 tak 21, 18, 27 22 22
Ubuntu VirtualBox 3.2.6 r63112 tak 19, 23, 26 23 23
Ubuntu VirtualBox 3.2.6 r63112 nie 22, 20, 30 24 24
Windows XP Virtual PC 2007 SP1 nie 36, 20, 43 33 33
Windows XP VmWare Player 3.1.0 build-261024 tak 53, 41, 84 60 59
Ubuntu VmWare Player 3.1.0 build-261024 nie 75, 70, 52 66 66
Windows XP VirtualBox 3.2.6 r63112 tak 64, 75, 127 89 89
Ubuntu VmWare Player 3.1.0 build-261024 tak 82, 108, 104 98 98
Windows XP VirtualBox 3.2.6 r63112 nie 114, 82, 140 112 112
Windows XP VmWare Player 3.1.0 build-261024 nie 72, 99, 274 148 148

Do góry

Podsumowanie

Czy rozwiązania wirtualizacyjne pozwalają łatwo testować aplikacje w odosobnieniu ?

Tak - nowe systemy można tworzyć dosyć prosto, do wygodnej pracy wymagana jest jedynie odpowiednia ilość pamięci RAM oraz przynajmniej dwa rdzenie procesora. 

Oprócz zalet są i wady - pewne kwestie z dzieleniem przepustowości łącza sieciowego, wpływanie na "główny" system operacyjny (np. zawieszanie go), emulacja czasem archaicznych urządzeń i standardów., konieczność pamiętania o bezpieczeństwie. Do tego dochodzą duże problemy z grafiką 3D, czasem również trzeba użyć konsoli (co może być męczące dla niektórych użytkowników).

Jest też problem wydajności - niewątpliwie najlepiej również używać systemów operacyjnych gościa mających mikroskopijne wymagania sprzętowe. Testowany Ubuntu 10.04 dosyć dobrze spełnia to ostatnie wymaganie - był testowany przez autora z powodzeniem nawet przy 256 MB RAM i nie potrzebuje rozbudowanego (zajmującego moc obliczeniową) oprogramowania antywirusowego.

Możemy się także spotkać z kwestiami..... prawnymi - okazuje się przykładowo, że niektórych starszych Windows nie można w ogóle używać w takich środowiskach (zgodnie ze stroną Licence Terms dotyczy to np. wersji Vista Home Basic i Vista Home Premium). Czasy się jednak na szczęście zmieniają - licencja do Windows 7 nie ma już tutaj ograniczeń, miłą niespodziankę sprawia swoim użytkownikom również np. firma Kaspersky (przynajmniej część jej produktów jest licencjonowana na fizyczną maszynę, a nie określoną ilość systemów w niej zainstalowanych)

Z wymienionych względów maszyny wirtualne do niektórych zastosowań zwyczajnie się nie nadają. A która jest najlepsza ?

Przedstawione wcześniej wyniki pozwoliły na uzyskanie następujących wyników:

System gospodarza Rozwiązanie Sprzętowa wirtualizacja Opóźnienie (%)
Firefox Chromium Open SSL mbw Średnia
Peace Keeper Sun Spider Peace Keeper Sun Spider
Ubuntu KVM 0.12.4 tak 8 25 0 0 2 22 10
Ubuntu VmWare Player 3.1.0 build-261024 nie 13 25 0 13 5 66 20
Ubuntu VmWare Player 3.1.0 build-261024 tak 17 18 7 8 6 98 26
Ubuntu VirtualBox 3.2.6 r63112 tak 25 47 35 61 3 23 32
Ubuntu VirtualBox 3.2.6 r63112 nie 18 32 28 137 22 24 44
Windows XP VmWare Player 3.1.0 build-261024 nie 20 93 31 44 6 148 57
Windows XP VmWare Player 3.1.0 build-261024 tak 23 125 32 155 15 59 68
Windows XP Virtual PC 2007 SP1 nie 49 124 53 141 15 33 69
Windows XP VirtualBox 3.2.6 r63112 tak 24 164 18 150 4 89 75
Windows XP VirtualBox 3.2.6 r63112 nie 29 98 36 192 8 112 79
Ubuntu QEMU 0.12.4 nie 95 - - - - - 95

Być może rozkład wyników byłby zupełnie inny, gdyby w maszynie wirtualnej działał Windows albo gdyby użyto innych testów (to w kolejnej części tekstu, o ile oczywiście powstanie ;-)). Obecnie można wysnuć następujące wnioski:

  • przedstawione rozwiązania pod względem wydajności można uszeregować następująco: KVM (wymaga jednak wsparcia sprzętowego), VmWare Player, Virtual PC, VirtualBox i QEMU
  • wsparcie sprzętowe niekoniecznie pozwala na wzrost wydajności
  • opisywane aplikacje działają szybciej pod kontrolą Ubuntu niż Windows (może to być jednakże związane z faktem, iż ten ostatni system wymagał np. programu antywirusowego)

Biorąc pod uwagę przenośność, faworytami będa tutaj VmWare Player i VirtualBox, wybór konkretnego z nich zależeć będzie wyłącznie od preferencji konkretnego użytkownika (np. tego czy zależy mu na efektach graficznych czy nie).

Czy jest natomiast jeszcze jakieś lepsze rozwiązanie ? Można próbowac instalować oddzielny system do różnych "eksperymentów" bez dodatkowego partycjonowania np. na pamięciach flash (tutaj bardzo elastyczne w tym względzie są dystrybucje Linuxa - odpowiedni opis można znaleźć dla praktycznie każdej bardziej liczącej się na rynku) albo w pliku udającym partycję (umożliwiają to np. Windows 7 Professional/Ultimate/Enterprise lub dystrybucje Linuxa z użyciem instalatora w technologii WUBI). Tylko że wtedy systemy te dalej będą miały dostęp do wszystkich dysków, jeżeli zaś zastosujemy szyfrowanie, to może to być na dłuższą metę uciążliwe...

I stąd wniosek może być tylko jeden - jeżeli chcemy coś potestować w rzeczywistym odosobnieniu przy obecnej architekturze systemów operacyjnych, najlepiej (choć nie będzie to też zbyt wygodne) jest to umieścić w innej instalacji systemu, a tę np. na innym dysku twardym (który będzie podłączany zamiast tego "właściwego"). A jeszcze lepiej kupić drugi komputer ;)

Stara prawda mówiąca o tym, iż udawana kopia jest zawsze gorsza od oryginału, okazuje się być dalej aktualna...

Do góry