Abstrakcja a wirtualizacja
Abstrakcja - technika nakładania na fizyczne zasoby (np. moc obliczeniową, przestrzeń dyskową) warstwy abstrakcji ujednolicającej usługi i uniezależniającej zarządzanie od rodzaju i producenta zastosowanego oprogramowania, czy sprzętu.
Wirtualizacja - technika polegająca na nakładaniu warstwy abstrakcji na sprzęt, umożliwiająca jego bardziej optymalne wykorzystanie, np. komputer "udaje", że jest kilkoma komputerami, każdy z własnym systemem operacyjnym i zasobami.
Systemy komputerowe, pomimo swojej ogromnej złożoności, ciągle ewoluują za sprawą hierarchicznej konstrukcji, gdzie poszczególne interfejsy dzielą różne poziomy abstrakcji.
W celu łatwiejszego zrozumienia abstrakcji występującej w komputerze można to opisać jako zależność pomiędzy dyskiem twardym a plikami widzianymi przez system operacyjny. System operacyjny wykonuje na dysku proces abstrakcji tworząc przy tym dane adresowe (odpowiednie ścieżki dostępu do sektorów) co sprawia, że dla aplikacji widziane jest to jako pliki o zmiennej wielkości. Użytkownik więc podczas edycji, czytania czy tworzenia plików nie musi znać konstrukcji dysku twardego i struktury pamięci tam występującej.
Niestety, tak skonstruowane interfejsy mają swoje ograniczenia. Podzespoły i komponenty zaprojektowane na specyficzne interfejsy nie będą działały na innych interfejsach (programy napisane pod system Linux nie będą rozumiane przez system Windows). Jednym z rozwiązań jest wirtualizacja. Pozwala ona na ominięcie tych ograniczeń. Wirtualizacja systemu albo komponentów takich jak procesor, pamięć albo urządzenia wejścia/wyjścia polega na zmapowaniu „innego” interfejsu i jego zasobów do bazowego, prawdopodobnie innego, systemu.
Abstrakcja i wirtualizacja dysku twardego. Abstrakcja zapewnia
uproszczenie interfejsu do bazowych zasobów („przetłumaczenie” fizycznych
struktur dysku twardego na pliki w systemie). Wirtualizacja zapewnia różne
interfejsy lub różne zasoby na tym samym poziomie abstrakcji.
Abstrakcja |
Wirtualizacja |
|
|
|
|
|
|