mwiacek.com | ColorColor | Mobile |
English
App - APN App - Gammu App - Gammu+ » Gammu+ internals App - ISTQB Glossary App - MyGnokii App - Sobieski App - True Fenix
Facebook (priv)
Chrome code (new/Gerrit)
Firefox Preview c/i Polski App - APN App - Bryły App - Historia polska App - Poczytaj mi tato App - Przepisy drogowe App - Słownik ISTQB App - Sobieski App - Straż
Artykuły i pliki
Praca dyplomowa
App Store Categories Acer (4) AMD (14) Android (84) APN (5) Apple (28) App Store (6) benchmark.pl (19) chip.pl (7) CHM (5) Chrome (5) dobreprogramy.pl (95) drogowe (40) English (131) English article (23) English blog (100) EPUB (7) Firefox OS (3) Fizyka (4) Gammu (62) Gammu+ (49) GSM (151) Hyperbook (10) ISTQB (3) jQuery (3) jQuery Mobile (3) książka 1 (6) książka 4 (97) License (4) Linux (34) Linux+ (1) MyGnokii (6) Nokia (30) NTFS (2) OS (41) PDF (5) poczytaj (1) poem (3) Polski (233) polski (239) Polski artykuł (58) Polski blog (176) polski blog (238) rysunki (2) S.F. (14) salon24.pl (180) Sobieski (8) Spider's Web (17) Straż (7) Tizen (5) TrueFenix (4) Ubuntu (6) Vista (5) WAT (1) wiersz (94) Windows (61) Windows 7 (11) x86 (116) Top 10 N82 review (2008) (201543) Przepisy drogowe (2012-2021) (153936) English articles and files (149083) Polskie artykuły i pliki (145695) Timeline 2024-12 (1) 2024-08 (1) 2024-01 (1) 2023-12 (1) 2023-11 (1) 2023-03 (5) 2023-02 (1) 2023-01 (13) 2022-12 (9) 2022-11 (10) 2022-10 (12) 2022-09 (14) 2022-08 (4) 2022-07 (3) 2022-06 (4) 2022-05 (3) 2022-04 (9) 2022-03 (11) 2022-02 (9) 2022-01 (5) 2021-12 (6) 2021-11 (13) 2021-10 (11) 2021-09 (11) 2021-08 (4) 2021-07 (5) 2021-06 (12) 2021-05 (3) 2021-04 (4) 2021-03 (4) 2021-02 (5) 2021-01 (4) 2020-12 (4) 2020-11 (5) 2020-10 (1) 2020-09 (9) 2020-08 (5) 2020-07 (2) 2020-06 (1) 2020-05 (6) 2020-04 (3) 2020-03 (2) 2020-02 (2) 2020-01 (8) 2019-12 (2) 2019-11 (11) 2019-10 (1) 2019-09 (3) 2019-06 (1) 2019-05 (1) 2017-12 (2) 2017-11 (2) 2017-10 (2) 2016-01 (1) 2015-09 (2) 2015-08 (1) 2015-06 (1) 2015-05 (1) 2015-04 (1) 2015-03 (2) 2015-01 (1) 2014-10 (1) 2014-09 (2) 2014-07 (2) 2014-06 (5) 2014-05 (7) 2014-04 (3) 2014-03 (9) 2014-02 (5) 2014-01 (8) 2013-12 (7) 2013-11 (4) 2013-10 (10) 2013-09 (5) 2013-08 (9) 2013-07 (5) 2013-06 (1) 2013-05 (2) 2013-04 (3) 2013-02 (3) 2013-01 (7) 2012-12 (5) 2012-11 (5) 2012-10 (7) 2012-09 (2) 2012-08 (2) 2012-07 (2) 2012-06 (1) 2012-05 (2) 2012-04 (4) 2012-03 (6) 2012-02 (2) 2012-01 (3) 2011-12 (1) 2011-11 (1) 2011-04 (2) 2011-02 (2) 2011-01 (3) 2010-12 (5) 2010-11 (1) 2010-10 (2) 2010-08 (1) 2010-07 (2) 2010-06 (3) 2010-05 (9) 2010-04 (11) 2010-03 (14) 2009-12 (4) 2009-11 (2) 2009-10 (2) 2009-05 (1) 2009-03 (1) 2009-02 (1) 2009-01 (1) 2008-07 (1) 2008-05 (1) 2008-04 (1) 2007-12 (3) 2007-11 (2) 2007-10 (2) 2007-09 (3) 2007-08 (1) 2007-07 (2) 2007-06 (4) 2007-05 (4) 2007-04 (2) 2007-03 (5) 2007-02 (3) 2007-01 (6) 2006-12 (5) 2006-11 (5) 2006-10 (4) 2006-09 (2) 2006-08 (1) 2006-07 (6) 2006-06 (3) 2006-05 (2) 2006-04 (5) 2006-02 (1) 2006-01 (2) 2005-12 (1) 2005-09 (1) 2005-07 (1) 2003-11 (1) 2003-09 (5) 2002-11 (2) 2002-10 (14) 2001-07 (1) 2001-05 (2) 2001-01 (1) 2000-10 (1) 2000-07 (1) 2000-06 (1) 2000-03 (1) 1999-06 (2) 1999-04 (2) | Klonujemy komputer - maszyny wirtualne (2010) Polski benchmark.pl Windows 7 Windows Polski artykuł x86 OS Poniższy tekst został wpierw opublikowany z pewnymi zmianami w serwisie benchmark.pl 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. 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. Niektóre maszyny wirtualne jak i hypervisory mogą potrzebować odpowiedniego wsparcia sprzętowego. W przypadku x86 wymagane jest spełnienie dwóch warunków:
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:
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.
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. 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). 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 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:
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). 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.
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:
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). 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).
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).
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. Co zrobić, gdybyśmy natomiast chcieli zagrać w jedną z gier do DOS ?
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).
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 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. 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ą...
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.
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.
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.
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). 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. 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).
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.
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).
Dodano też oczywiście wyniki SunSpider 0.9.
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.
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).
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:
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:
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... |