W świecie wirtualnych systemów

Wirtualizacja obniża koszty, ułatwia zarządzanie, podnosi bezpieczeństwo. Dzięki tej technologii można szybko i tanio tworzyć środowiska testowe i optymalnie wykorzystywać moc obliczeniową komputerów. Narzędzi i ich zastosowań jest mnóstwo. Przybliżamy te najpopularniejsze.

Parallels Desktop

Wirtualizacja to tworzenie czegoś nieistniejącego w rzeczywistości. W świecie komputerów może dotyczyć sprzętu, systemu operacyjnego czy infrastruktury sieciowej. Jest jedną z metod oddzielenia i zmuszenia do wzajemnej współpracy niepasujących do siebie elementów. To pojęcie obejmujące rozwiązania sprzętowe i programowe pozwalające odseparować zasoby oraz obiekty korzystające z tych zasobów. Może ona dotyczyć rozdzielenia sprzętu od systemu operacyjnego, systemów od siebie nawzajem, aplikacji czy danych. Można ją uznać za pewnego rodzaju "oszustwo", które pozwala wmówić na przykład systemowi operacyjnemu, że działa w zupełnie innym środowisku niż w rzeczywistości. Uniezależnia ona całkowicie ten system od sprzętu, na którym został zainstalowany.

Wirtualizować można komputery, ich poszczególne elementy jak na przykład pamięć operacyjną, systemy czy aplikacje. Dzięki temu dane środowisko ma do dyspozycji więcej RAMu, na jednym komputerze może być uruchomionych jednocześnie kilka systemów lub kilka różnych wersji językowych tego samego programu. Wirtualizuje się desktopy, serwery a nawet całą infrastrukturę IT. Technologia ta pozwala podnieść poziom bezpieczeństwa, w określonych warunkach zmniejszyć koszty funkcjonowania przedsiębiorstwa, ułatwić zarządzanie i obsługę, ograniczyć awaryjność.

Wszystkie maszyny wirtualne zarządzane są za pomocą menedżera. Nazywany jest on również środowiskiem wirtualizacyjnm bądź hypervisorem i może funkcjonować na dwóch poziomach. Hypervisor typu pierwszego instalowany jest bezpośrednio na sprzęcie i w nim umieszczane są systemy goszczące. Tak działa na przykład Citrix XenServer i Microsoft Hyper-V. Typ drugi oznacza, że hypervisor instaluje się w systemie operacyjnym, a systemy gości są dopiero trzecim poziomem. Tej metody używa VMware Wokstation czy VirtualBox.

Kryteria skuteczności maszyn wirtualnych określono w latach osiemdziesiątych ubiegłego stulecia. Mówią one, że program działający na maszynie wirtualnej musi zachowywać się tak samo, jak na rzeczywistym sprzęcie (odpowiedniość), maszyna wirtualna musi kontrolować wszystkie wirtualizowane zasoby (kryterium kontroli zasobów), a większa część instrukcji powinna być wykonywana bez udziału maszyny (wydajność). Kryteria te zostały opracowane przez Popka i Goldberga i stały się częścią ich twierdzenia dotyczącego możliwości stworzenia maszyny wirtualnej dla danego środowiska komputerowego.

Wirtualizacja i emulacja

Wirtualizacja rozpatrywana jest na trzech poziomach. Rodzajem niepełnej wirtualizacji jest emulacja. To mechanizm całkowitego oddzielenia od siebie dwóch różnych warstw komputera. Korzystające z zasobów sprzętowych programy nie mają bezpośredniego dostępu do urządzeń. Każde odwołanie jest obsługiwane przez emulator, który stwarza iluzję wszystkich elementów środowiska. Ten sposób funkcjonowania powoduje jednak znaczący spadek wydajności. Innym rodzajem emulacji jest tak zwana emulacja API. Idea tej technologii opiera się na tym, że w praktyce wszystkie programy komunikują się z systemem operacyjnym za pomocą ograniczonego zestawu funkcji. Ich zasymulowanie pozwala na działanie aplikacji napisanej dla jednego systemu operacyjnego w zupełnie innym środowisku. Metoda ta wykorzystywana jest na przykład przez WINE, za pomocą którego można instalować programy Windows w Linuksie.

Najwydajniejsza jest pełna wirtualizacja. Jej ideą jest jak największe bezpośrednie wykorzystanie zasobów sprzętowych. Jedynie instrukcje, które mogłyby powodować konflikt z otoczeniem (sprzętem, systemem, innymi maszynami wirtualnymi) przechwytywane są i obsługiwane przez środowisko wirtualizacyjne. Jeżeli obsługa ta jest całkowicie niezależna od systemu gościa mówić o pełnej wirtualizacji, jeżeli zaś mechanizm rozwiązywania konfliktów angażuje system gościa to jest to jedynie parawirtualizacja. W tym przypadku zachodzi konieczność modyfikacji systemu gościa oraz sterowników urządzeń. Można się spotkać także z wirtualizacją częściową. Polega ona na symulowaniu jedynie niektórych elementów środowiska.

Okno konfiguracji maszyny wirtualnej w VMware Playerze

Okno konfiguracji maszyny wirtualnej w VMware Playerze

Typy wirtualizacji

Wyróżnia się różne typy wirtualizacji. Najpowszechniejsza określana jest mianem sprzętowej. Polega na stworzeniu maszyny wirtualnej, która udaje kompletny system komputerowy i oddziela wirtualne maszyny od sprzętu, na którym one działają. Pozwala instalować i uruchamiać jednocześnie kilka różnych systemów operacyjnych w innym systemie. Krok dalej idzie tak zwana wirtualizacja pulpitu, która separuje desktop użytkownika od fizycznej maszyny. Komputer z hypervisorem zarządzającym wirtualnymi maszynami staje się jednocześnie serwerem, a użytkownicy korzystający z wirtualnych systemów łączą się z nim za pomocą sieci i innych fizycznych urządzeń. W rezultacie ułatwione jest zarządzanie infrastrukturą systemów operacyjnych, a klient ma dostęp do swojego pulpitu z dowolnego miejsca i nie jest przywiązany do jednego stanowiska. Zwiększa to również elastyczność i wykorzystanie dostępnej mocy obliczeniowej.

Stosuje się także wirtualizację pojedynczych aplikacji i usług, przestrzeni dyskowej czy danych. Aplikacja uruchomiona w wirtualnym środowisku nie komunikuje się bezpośrednio z systemem, nie jest w nim instalowana, nie wprowadza zmian w rejestrze i plikach, nie modyfikuje ustawień. Znajduje się w tak zwanej piaskownicy. Wirtualizacja sieci polega natomiast na łączeniu fizycznych jednostek sieci w logiczną całość lub udostępnieniu funkcji sieciowych dla wirtualnych systemów zainstalowanych w środowisku hypervisora.

Rozszerzenia architektury x86

Bez wsparcia ze strony sprzętu, głównie procesora, wirtualizacja byłaby dość skomplikowana i mało efektywna. Zanim pojawiły się odpowiednie rozwiązania sprzętowe była ona realizowana przez oprogramowanie, co znacząco wpływało na obniżenie wydajności. Pierwszy technologię wspomagającą wirtualizację do swoich procesorów wprowadził IBM. Znacznie później pojawiła się w procesorach UltraSPARC i na platformie x86. Zarówno Intel jak i AMD stosują własne rozwiązania w tej dziedzinie.

Podstawka AM2 pod procesory Athlon 64 i Athlon 64 X2

Podstawka AM2 pod procesory Athlon 64 i Athlon 64 X2

Technologia rozszerzająca funkcjonalność procesorów AMD o wspomaganie wirtualizacji nazwana została AMD-V. Pierwszy raz pojawiła się ona w jednostkach Athlon 64 i Athlon 64 X2. To zestaw sprzętowych rozszerzeń architektury x86 oferujących możliwość bezpośredniego wykonywania poleceń środowisk wirtualizacyjnych, ułatwiających tworzenie maszyn i ich obsługę. Usprawnia zarządzanie wieloma wirtualnymi systemami uruchomionymi jednocześnie. Dedykowane mechanizmy zwiększają efektywność przełączania między nimi, a technologia RVI poprawia zarządzanie wirtualną pamięcią. Wirtualizacja strumieni wejścia i wyjścia pozwala pominąć środowisko hypervisora podczas odwołań do różnych urządzeń, zwiększa wydajność i izolację systemów.

Procesor Intel Pentim 4

Procesor Intel Pentim 4

Rozwiązanie Intela nosi nazwę Intel VT-x. Tak jak u konkurenta, to sprzętowe rozszerzenie dodaje do systemu możliwość łatwej migracji wirtualnych środowisk, wprowadza zarządzanie priorytetami i usprawnia zarządzanie pamięcią. Pierwszy raz pojawiło się w procesorze Pentium 4, mniej więcej w tym samym czasie co u AMD. Wariant rozszerzeń o nazwie VT-d przeznaczony jest dla chipsetów i gwarantuje lepsze zarządzanie strumieniami wejścia i wyjścia. Wersja VT-c adresowana jest do takich urządzeń jak na przykład przełączniki sieciowe.

Bez funkcji wspierających wirtualizację platformy x86 nie byłoby w ogóle możliwe na przykład wirtualizowanie 64-bitowych systemów gości na 64-bitowtowych systemach bazowych. Spowodowane jest to brakiem odpowiedniego rozdziału pamięci hypervisora i gościa oraz jej dostatecznej ochrony. Wprawdzie nowsze rozwiązania AMD wprowadzają podstawową segmentację pamięci i umożliwiają taką programową translację to na platformie Intela nie uda się tego osiągnąć.

Po co wirtualizować

Powody wzrostu zainteresowania i popularności technologiami wirtualizacyjnymi są bardzo szerokie. Wirtualizacja w określonych warunkach umożliwia znaczne oszczędności, ułatwia zarządzanie i optymalizuje wykorzystanie zasobów, poprawia bezpieczeństwo. Wśród najważniejszych zalet wirtualizacji można wymienić następujące:

- konsolidacja zasobów sprzętowych: komputery, zarówno stacje robocze, jak i serwery nie są często w pełni wykorzystywane. Używany sprzęt ma zwykle sporo rezerwy i tylko chwilami jednostki centralne pracują z pełnym obciążeniem. Instalacja kilku wirtualnych systemów operacyjnych na jednej maszynie optymalizuje wykorzystanie zasobów sprzętowych

- oszczędności: dotyczą zarówno mniejszego zużycia energii, jak i mniejszego zapotrzebowania na zasoby (głównie ludzkie) pozwalające utrzymać prawidłowe funkcjonowanie rozbudowanej infrastruktury. Ocenia się, że zużycie prądu można ograniczyć nawet dziesięciokrotnie, kilka razy inne zasoby. Wszystko zależy jednak od skali działania. Najlepsze efekty daje wirtualizacja dużych rozbudowanych sieci i systemów. W małym zakresie koszty mogą przewyższyć korzyści.

Instalacja testowej wersji Windows 8 na maszynie wirtualnej jest jednym ze sposobów na uniknięcie bałaganu w głównym systemie opercyjnym

Instalacja testowej wersji Windows 8 na maszynie wirtualnej jest jednym ze sposobów na uniknięcie bałaganu w głównym systemie opercyjnym

- uproszczone zarządzanie: wirtualne maszyny są prostsze w zarządzaniu i konfiguracji łatwiej sprawdzać, jak funkcjonują. Są bardziej elastycznie i mniej ograniczone możliwościami sprzętowymi. Łatwo i szybko tworzy się w miarę potrzeby nowe środowiska i likwiduje nadmiarowe. W prosty sposób można przenosić działające systemy pomiędzy różnymi komputerami.

- łatwiejsze tworzenie środowisk testowych: dzięki wirtualizacji na jednym komputerze można zainstalować wiele środowisk które potrzebne są na przykład deweloperom do testowania tworzonych produktów. Dzięki temu nie ponosi się kosztów zakupu i konfiguracji różnych komputerów, nie trzeba przeznaczać na nie dużo miejsca.

- wzrost poziomu bezpieczeństwa: zwiększenie bezpieczeństwa wynika na przykład z możliwości izolacji danego środowiska od innych. Pozwala to instalować i uruchamiać różne programy bez ryzyka uszkodzenia systemu bazowego. Łatwiejsza jest także kontrola nad działającymi wirtualnymi systemami oraz prostsze i szybsze procedury awaryjne, tworzenia kopii zapasowych i odzyskiwania informacji po awarii.

- możliwość współistnienia i współdziałania różnych niekompatybilnych środowisk: instalacja systemów operacyjnych o zróżnicowanej architekturze na jednym komputerze i jednoczesne uruchomienie wszystkich to cecha, którą doceniają testerzy, programiści, pracownicy pomocy technicznych, użytkownicy różnych systemów i aplikacji, zapaleni gracze. Nie trzeba kupować nowej maszyny by sprawdzić działanie potrzebnej do pracy aplikacji i nie ma potrzeby instalowania nowego systemu operacyjnego, bez przeszkód da się zainstalować starą grę czy sprawdzić możliwość skonfigurowania połączenia sieciowego na przykład pomiędzy Windows i Linuksem.

Architektura Hyper-V

Architektura Hyper-V

Microsoft Hyper-V Server

Hyper-V może działać jako samodzielny system lub jako część Windows Serwer 2008. Funkcjonuje na sześćdziesięcioczterobitowych platformach x86 wspomaganych sprzętowymi funkcjami wirtualizacyjnymi Intel VT-x bądź AMD-V. Emuluje procesory 32- i 64-bitowe x86. Systemami goszczącymi mogą być jedynie różne wersje Windows oraz Linuksa. Wariant dla Windows Servera może obsłużyć prawie 400 wirtualnych maszyn na system. Hyper-V instalowany bezpośredni na komputerze obsłuży ich 64. W zależności od systemu goszczącego zasymuluje od 1 do 4 procesorów. Dla przykładu wirtualny Windows 7 dostanie maksimum 4 wirtualne procesory, podobnie Linuksy, Vista jedynie dwa, a Windows 2000 Server tylko jeden.

Microsoft Hyper-V obsługuje napędy USB jedynie częściowo. Nie możliwe jest bezpośrednie wykorzystanie tego interfejsu przez wirtualizowane środowiska. Rozwiązaniem jest użycie funkcji zdalnego pulpitu lub technologii USB over IP. Podobne ograniczenia dotyczą portów COM i urządzeń audio. Nie można także nagrywać przy użyciu napędów optycznych. Dostępny jest jedynie odczyt.

Tryb Windows XP uruchomiony w Windows 7 na bazie Windows Virtual PC

Tryb Windows XP uruchomiony w Windows 7 na bazie Windows Virtual PC

Windows Virtual PC

Windows Virtual PC to nowsza wersja Virtual PC 2007. W stosunku do poprzednika program wyposażony został w nowe funkcje ale pozbawiono go też kilku innych istotnych elementów. Wprowadzono na przykład częściową obsługę USB, Windows Virtual PC potrafi również korzystać częściowo z dobrodziejstw akceleracji 3D. Zmniejszyła się za to elastyczność środowiska. Oficjalnie można je uruchamiać jedynie na Windows 7. Starsze systemy nie są obsługiwane. Systemem goszczącym musi być co najmniej Windows XP z dodatkiem SP3. Nie można uruchamiać DOSa. Brakuje również sterowników i wsparcia dla systemów Linuksowych czy OS/2 Usunięto możliwość bezpośredniego współdzielenia katalogów. Ograniczeń tych nie było w Virtual PC 2007. Ani nowszy ani starszy wariant programu nie pozwala zapisywać migawek systemu.

Zaletą środowisk jest za to lepsza niż u konkurencji integracja i obsługa systemów z rodziny Windows. Windows Virtual PC umożliwia wielowątkowe działanie maszyn wirtualnych. Oznacza to, że pracujące jednocześnie środowiska gości mogą używać oddzielnych wątków procesora. Poprawia to wydajność. Zarządzanie maszynami zostało włączone do Eksploratora Windows kosztem osobnej konsoli.

Na bazie Virtual PC funkcjonuje Tryb Windows XP dostępny w Windows 7. Dzięki niemu po pobraniu odpowiedniego obrazu użytkownik może uruchomić w najnowszym systemie Microsoftu maszynę wirtualną z pełnoprawnym XP i zainstalować w niej oprogramowanie przeznaczone dla tego systemu. Obsługa tego mechanizmu została uproszczona do tego stopnia, że użytkownik może odpalać aplikacje XP bezpośrednio z siódemki, nawet nie zauważając, że działają one w maszynie wirtualnej.

Windows 8 goszczący w środowisku Parallels Desktop

Windows 8 goszczący w środowisku Parallels Desktop

Parallels Workstation

Na intelowską platformę x86 przygotowany został hypervisor Parallels Workstation. Wirtualizuje systemy x86 32- i 64-bitowe, obsługuje do 64 GB RAMu i interfejs USB. Środowisko funkcjonuje na platformach Windows i Linuksowych, między innymi na Debianie, Fedorze czy Ubuntu. Jako systemy gości obsłuży między innymi Windows XP i nowsze, Ubuntu, Suse, Debiana. Maszyny mogą korzystać nawet z ośmiu wirtualnych procesorów każda, 8 GB pamięci i kilkunastu interfejsów sieciowych. Zgodność z Intel VT-x oraz AMD-V gwarantuje wydajną pracę. Technologie te nie są jednak konieczne do prawidłowej pracy. Szyfrowanie maszyn wirtualnych podnosi bezpieczeństwo danych. Parallels bez problemu radzi sobie również z obsługą wielu wyświetlaczy i drukowaniem z poziomu goszczących systemów na drukarkach sieciowych i USB. Dostęp do aplikacji umieszczonych w wirtualnym środowisku możliwy jest z poziomu pulpitu systemu hosta - tak jak programy trybu XP w Windows 7. Odpowiednie narzędzia umożliwiają łączenie się z maszynami za pomocą iPhone’a i iPada. Zdalne zarządzanie podnosi elastyczność pracy i zastosowań. Parallels Workstation potrafi również wirtualizować sieci.

VirtualBox - Linux i wirtualne Windows XP

VirtualBox - Linux i wirtualne Windows XP

QEMU

Jeżeli zależy ci na elastyczności środowiska i szerokiej gamie obsługiwanych platform sprzętowych powinieneś skorzystać z QEMU. Środowisko emuluje różne procesory i wirtualizuje całe platformy. Można je zainstalować na procesorach x86, PowerPC, SPARC czy MIPS. Podobne, mogą funkcjonować jako podstawa do instalacji systemów goszczących. Jako platforma instalacyjna sprawdzi się na przykład Windows, Linuksy, BSD, Mac OS, a dzięki dużemu zakresowi emulacji różnych procesorów i platform na maszynach wirtualnych mogą pojawić się naprawdę bardzo egzotyczne systemy operacyjne. Oprócz standardowych są tu między innymi Solraisy, QNX oraz Netware. Ich lista jest bardzo długa. QEMU współpracuje z takimi hypervisorami jak na przykład Xen czy KVM, pozwala zapisywać migawki obsługiwanych systemów, obsługuje maszyny wieloprocesorowe. Można nim zarządzać zdalnie za pomocą VNC dzięki wbudowanemu serwerowi. Minusem QEMU jest dość skomplikowana obsługa.

VirtualBox

VirtualBox to jeden z najpopularniejszych wirtualizerów. Przeznaczony jest do instalacji na 32- i 64 bitowych platformach x86, obsługuje rozszerzenia Intel VT-x oraz AMD-V. Systemem hosta w jego przypadku może być Windows, Linuksy, Mac OS X, Solaris czy BSD, a oprócz nich na wirtualizowanych maszynach można zainstalować jeszcze DOSa czy OS/2. Obsługuje systemy wieloprocesorowe, pozwala korzystać z USB i wirtualnych sterowników. Obsługa 3D obejmuje DirectX i częściowo OpenGL. Pojedynczej maszynie wirtualnej może udostępnić do 32 wirtualnych procesorów i 1,5 GB RAMu (dla 32-bitowych systemów). Jednocześnie daje możliwość ograniczenia zasobów używanych przez poszczególne systemy gości. Obsługuje Windows Aero. Najnowsza wersja potrafi klonować pracujące maszyny wirtualne. Pracę usprawnia opcja korzystania z USB czy współdzielenie schowka z hostem. Pełna jest też obsługa ACPI.

Umiejętność rozpoznawania formatu VMDK pozwala podłączać do VirtualBoxa maszyny utworzone w VMware. Podobnie jest z Microsoftowym formatem VHD. Boksowi nie jest obcy także format OVF. Dynamicznie alokowana przestrzeń wirtualnych dysków oszczędza miejsce potrzebne do działania instalowanych systemów. Dostępna jest też funkcja zapisu migawek wirtualnych maszyn.

VMware ESX Server

To jeden z szerokiej gamy produktów wirtualizacyjnych VMWare, najbardziej zaawansowany i adresowany do dużych odbiorców. ESX Server to w pewnym sensie system operacyjny instalowany bezpośrednio na komputerze i zapewniający odpowiednie środowisko dla innych, już wirtualnych systemów. W uproszczeniu podstawą działania Servera jest linuksowy kernel, który po uruchomieniu wszystkich usług i narzędzi wirtualizacyjnych staje się jedną z maszyn wirtualnych i służy jako konsola do zarządzania. Konsoli tej nie ma VMware ESXi dzięki czemu znacząco zmniejszono ilość zajmowanego przez system miejsca. W drugim przypadku zarządzanie przeprowadza się za pomocą narzędzi zdalnych.

System obsługuje do 2 TB pamięci operacyjnej hosta i maksimum 1 TB RAMu dla każdej maszyny wirtualnej. Kontroluje jednocześnie do 32 hostów dla serwerów pracujących w klastrze. Na każdym hoście potrafi uruchomić jednocześnie do 512 maszyn wirtualnych przypisując każdej maksymalnie 32 procesory, z których każdy może symulować do 25 rdzeni. Należy jednak pamiętać, że ograniczeniem jest liczba 160 procesorów na każdego hosta. Rozpoznaje wolumeny dyskowe o rozmiarach do 64 TB. VMWare akceleruje także programowo grafikę 3D w Windows i wspomaga funkcjonowanie Aero. Zaimplementowano w nim również USB 3.0 oraz korzystanie z biosów UEFI.

VMware Player

VMware Player jest produktem darmowym do użytku domowego przeznaczonym do wirtualizacji 1-2 systemów operacyjnych. Instaluje się go w Windows bądź Linuksie, na platformie x86. Współpracuje z procesorami 32- i 64-bitowymi. Podobnie jest z emulacją. Lista systemów gości jest długa i oprócz podstawowych obejmuje na przykład Solarisa, Netware czy QNXa. Player korzysta z dobrodziejstw systemów wieloprocesorowych, udostępnia wirtualnym maszynom interfejs USB, pozwala w ograniczony sposób tworzyć migawki systemów. Pierwsze wersje Playera nie umożliwiały tworzenia własnych maszyn i ograniczały się jedynie do obsługi środowisk stworzonych w innych aplikacjach. Aktualnie nie ma już tego ograniczenia.

Dla każdej maszyny może zostać zasymulowanych do 8 procesorów. W zależności od platformy limit pamięci operacyjnej dla systemów goszczących to 8 GB w przypadku 32 bitów i 64 w przypadku 64 bitów.

Ubuntu 12.04 pracujące pod kontrolą VMPLayera w Windows 7

Ubuntu 12.04 pracujące pod kontrolą VMPLayera w Windows 7

Xen Hypervisor

Xen Hypervisor jest kolejnym środowiskiem, które do uruchomienia nie potrzebuje żadnego systemu operacyjnego. Instaluje się go bezpośrednio na sprzęcie i stanowi on warstwę oddzielającą zasoby komputera od instalowanych systemów wirtualnych. Udostępnia mechanizmy wirtualizacyjne i parawirtualizacyjne, łaczy je ze sobą by poprawić szybkość działania. Niewielkie rozmiary i zastosowana architektura gwarantują wysoką wydajność pracy. Elastyczność, duże możliwości oraz bardzo wysoki poziom bezpieczeństwa czynią z niego narzędzie adresowane raczej do zastosowań w większej skali. Należy przy tym pamiętać, że Xen Hypervisor jest bezpłatny.

Najnowsza wersja Xena daje możliwość instalowania na maszynach wyposażonych w 256 procesorów. Ta sama liczba jednostek może być zasymulowana w każdym wirtualnym środowisku. Pamięć RAM hosta to 5 TB, wirtualna dla każdego gościa - 512 GB. Bez zainstalowanych rozszerzeń rozmiar pamięci wirtualnej zwiększa się do 1 TB ale liczba wirtualnych procesorów zmniejsza do 128. Uruchomione maszyny można przenosić i zapisywać ich stan, wirtualne dyski zmieniają automatycznie rozmiar w miarę potrzeby. Obsługiwane są wirtualne sterowniki, interfejs USB. Akceleracja grafiki 3D możliwa jest za pomocą VMGL czyli zmodyfikowanej wersji OpenGL.


Zobacz również