Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Wirtualizacja - Wikipedia, wolna encyklopedia

Wirtualizacja

Z Wikipedii

Wirtualizacja jest szerokim pojęciem odnoszącym się do abstrakcji zasobów w różnych aspektach komputeryzacji. Wirtualizacja umożliwia efektywniejsze wykorzystanie istniejących zasobów sprzętowych środowiska informatycznego poprzez dowolne (w ramach możliwości sprzętowych czy programowych oraz założeń projektowych) modyfikowanie cech wirtualizowanych zasobów dostosowując je do wymagań użytkownika. Jedną z pierwszych szeroko stosowanych technik wirtualizacji była technika wirtualizacji pamięci operacyjnej. Obecnie technika ta jest powszechna nie tylko w superkomputerach, serwerach czy komputerach osobistych ale także w systemach wbudowanych. Inną techniką wirtualizacji jest wirtualizacja sprzętu komputerowego w celu umożliwienia jednoczesnego uruchamiania wielu systemów operacyjnych.

W obrębie pojęcia wirtualizacji (informatyka) można wyróżnić trzy grupy rozwiązań (T. Krasuski, J. Łoś, M. Szostakiewicz - "Wstęp do wirtualizacji" UW 2005):

Emulacja API – rozwiązanie programowe wykorzystujące sposób działania aplikacji jako rozdzielnych procesów w stosunku do systemu operacyjnego. Aplikacje wykorzystują interfejs API w celu dokonania procesu komunikacji z systemem operacyjnym. Emulatory API wprowadzają do głównego systemu operacyjnego otoczenie API pochodzące z innego systemu i niezbędne dla danej, emulowanej aplikacji. Tak działa Wine (ang. Wine is not emulator) będący implementacją WinAPI dla środowiska systemu Unix/X11. Rozwiązanie takie eliminuje konieczność posiadania całego systemu operacyjnego, pod którym działa emulowany program. Wymaga ono tylko emulacji jego interfejsu API. Jeżeli jednak emulowany program uruchamiany za pomocą Wine pominie standardowe biblioteki zawarte w WinAPI, to prawdopodobnie zakończy się to błędem (Peter Ganten - "Installations - und Bedienungsanleitung für WINE" 2001).

Emulacja pełna – stanowi sposób na uruchamianie aplikacji pochodzących z niekompatybilnego komputera, w stosunku do wykorzystywanego (np. PC/Mac). Emulowane są podstawowe podzespoły komputera (CPU, RAM, HDD, CD itp.) wraz z systemem operacyjnym (virtual OS), zapewniając dużą przenośność przy pewnym spadku wydajności. Praktycznie każda operacja na uruchomionym wirtualnym systemie operacyjnym jest emulowana. Emulatory pełne są zatem wirtualnymi odpowiednikami całego komputera. Typowy emulator wykonuje w pętli wszystko to, co robiłby rzeczywisty procesor maszyny emulowanej, co prowadzi do spadku wydajności pracy komputera.

Wirtualizacja – pozwalają jednocześnie uruchomić wiele systemów operacyjnych na tej samej platformie sprzętowej i systemowej przy maksymalnej możliwej wydajności. Wirtualizacja pozostaje często tylko perspektywą ze wzg. na problemy w stosowaniu jej na większości współczesnych platform.

Wirtualizacja jest połączeniem podstawowych zalet emulacji pełnej oraz emulacji API (Lifu Wang, Kyung Ryong Dyu - "Feasibility of Exploiting Virtual Machines for Grid Computing" Dep. of Computer Science, Arizona State University Tempe, 2004). Opiera się ona na uruchamianiu w maszynie wirtualnej systemu operacyjnego, rezygnując z uniwersalności emulowania wielu architektur komputerów (np. 68K). Ograniczenie się wyłącznie do wykorzystywanej platformy sprzętowej umożliwia wykonywanie pewnej ilości procesów systemu operacyjnego gościa (systemu emulowanego) bezpośrednio na zasobach sprzętowych komputera. Dopiero w sytuacji, gdy operacje takie nie dadzą się bezpośrednio wykonać wirtualizator emuluje je. Oznacza to, że wirtualizator uruchamia system operacyjny tak, aby mógł on koegzystować z system głównym i osiągać maksymalną zgodność i wydajność.

Teoretycznie wirtualizator powinien wykonywać bez emulacji wszystkie operacje w trybie nieuprzywilejowanym. W praktyce jednak dana architektura (np. PC x86) musiałaby zostać specjalnie do tego celu zaprojektowana (np. technologia Pacifica).

Przykładowo wirtualizator firmy VMWare Inc. o nazwie VMWare Workstation uruchamia dany system operacyjny w wirtualnym środowisku sprzętowym tworzonym w ten sposób, że system emulowany wykonuje operacje bezpośrednio na możliwie największej ilości zasobów sprzętowych, w szczególności na procesorze.

Spis treści


[edytuj] Historia

By być możliwie ścisłym o pierwszym szeroko znanym zastosowaniu wirtualizacji można mówić przy tworzonym we współudziale Uniwersytetu w Manchesterze i firm Ferranti oraz Plessey komputerze Atlas. W zastosowanej architekturze część instrukcji zewnętrznych wykonywana była przez sprzęt, a część zostawała przechwycona przez program nadzorujący. Dziś pełniłby on jeszcze dużo innych funkcji i zostałby nazwany systemem operacyjnym. Wtedy jednak zajmował się wykonywaniem w odpowiedni sposób przechwyconych wywołań, a ta skromna wirtualizacja była wyłącznie efektem ubocznym dość rewolucyjnych rozwiązań zastosowanych w komputerze.

Faktyczne zastosowanie wirtualizacji pojawiło się dopiero w połowie lat 60. w wyniku prac laboratoriów IBM. Wtedy właśnie centrum badawcze Watsona zakończyło projekt M44/44X, który składał się z fizycznej maszyny M44, oznaczanej też IBM 7044 oraz maszyn wirtualnych 44X. Każda z nich operowała na pamięci M44, korzystając przy tym z wieloprogramowania i pamięci wirtualnej. Wkrótce potem stworzono kolejne maszyny wirtualne: CP40 dla IBM 860/40, CP67 dla 360/67, a także wiele innych. Zwykle maszyny wirtualne były idealnymi kopiami fizycznego sprzętu, obsługiwanymi przez monitor maszyn wirtualnych, kontaktujący się bezpośrednio z systemem komputerowym. W ten sposób mogło być tworzone wiele kopii tego samego systemu operacyjnego, co pozwalało znacząco zwiększyć wykorzystanie procesora na komputerach klasy Mainframe. Wielu użytkowników mogło korzystać z tej samej fizycznej maszyny, dzięki czemu – choć tak wiele czasu trzeba zabierała interakcja między komputerem i człowiekiem – procesor był w większym stopniu wykorzystywany.

Od tego czasu wirtualizacja była nadal rozwijana, lecz do momentu, gdy komputery osobiste uzyskały wystarczająco dużą moc obliczeniową, zastosowanie maszyn wirtualnych w gospodarstwach domowych lub niewyspecjalizowanych firmach było ograniczone. Druga połowa poprzedniego dziesięciolecia to jednak czas dość gwałtownego rozwoju technologii wirtualnych – pojawił się niezwykle dziś popularny język Java, korzystający z maszyn wirtualnych, działalność zaczęła również firma VMWare, specjalizująca się w oprogramowaniu do wirtualizacji. Również Microsoft dołączył do rywalizacji w tej branży, podobnie jak niedawno Google. W wyniku konkurencji część swych produktów dotyczących wirtualnych serwerów Microsoft i VMWare zaczęły udostępniać za darmo. Wraz ze wzrostem mocy obliczeniowej i zmniejszania kosztów pamięci można oczekiwać popularyzacji maszyn wirtualnych i używania ich także w domowych stanowiskach.

[edytuj] Podział

  • Parawirtualizacja - to technika wirtualizacji w której wirtualizowany system operacyjny (Gość - ang. Guest,Partycja - ang. Partition lub Domena - ang. Domain) współpracuje ze środowiskiem operacyjnym komputera w zakresie obsługi tych elementów sprzętowych których obsługa kolidowała by z działalnością innych środowisk wirtualizowanych. Współpraca taka realizowana jest za pośrednictwem dodatkowej warstwy abstrakcji i obsługi sprzętu zwanej hypervisorem. Hypervisor występuje zazwyczaj jako część oprogramowania firmware'u komputera na którym realizowana jest wirtualizacja (np. SUN LDOMs; IBM LPAR) ale może występować także jako część oprogramowania uruchamiana przed właściwym systemem operacyjnym (np. Xen). Działalność hypervisora może być wspomagana sprzętowo w architekturach procesorów które wspierają taki rodzaj wirtualizacji, np. IBM Power czy SUN UltraSPARC T1. W celu osiągnięcia większej elastyczności działania środowisk wirtualnych w technice parawirtualizacji hypervisor implementuje zazwyczaj możliwość obsługi wirtualnych urządzeń blokowych czy sieciowych których obsługa realizowana jest przez wydzieloną w tym celu partycję systemową - np. LPAR: VIOS, Xen: Dom0, LDOM: I/O Domain.
  • Pełna wirtualizacja - technika wirtualizacji w której wirtualizowany system operacyjny (Gość - ang. Guest) ma wrażenie że działa na prawdziwym, fizycznym sprzęcie (komputerze). W rzeczywistości odwołania wirtualizowanego systemu operacyjnego (Gościa) do tych elementów fizycznych komputera które kolidowałyby z działalnością innych środowisk wirtualizowanych lub systemu operacyjnego gospodarza (ang. Host) są przechwytywane przez oprogramowanie wirtualizacyjne a następnie emulowane. Emulacja taka spowalnia pracę wirtualizowanego środowiska dlatego pożądane jest sprzętowe wspomaganie wirtualizacji.

[edytuj] Przykłady

Przykłady, w których występują elementy wirtualizacji.

[edytuj] Maszyna wirtualna

W maszynach wirtualnych i pakietach wspomagających wirtualizację (VM - Virtual Machine, VMM - Virtual Machine Monitor, parawirtualizacja, interpreter i kompilator JIT - Just In Time, emulator istniejącego sprzętu):

[edytuj] System operacyjny

W budowie systemów operacyjnych (pamięć wirtualna, technologia mikrojądra, wirtualny system plików VFS (ang. Virtual File System), wirtualny system operacyjny):

[edytuj] System sieciowy

W sieciach komputerowych, w systemach serwerów sieciowych (VPN - Virtual Private Network, VPS - Virtual Private Server):

  • Virtuozzo - firmy SWsoft,
  • Sun Containers - firmy Sun Microsystems,
  • VServer - Linux Virtual Server,
  • Virtual Iron,
  • TRANGO Real-time Embedded Hypervisor.

[edytuj] Podział zasobów

W partycjonowaniu, skupianiu, rozszczepianiu i łączeniu zasobów:

  • RAID (Redundant Array of Independent Disks),
  • RAIN,

w dzieleniu pracy i dostępu procesora do pamięci (zobacz: ISA - Instruction Set Architecture):

  • przetwarzanie symetryczne (SMP - Symmetric Multiprocessing),
  • przetwarzanie asymetryczne (ASMP - Asymmetric Multiprocessing),
  • przetwarzanie asynchroniczne (AMP - Asynchronous Multiprocessing),
  • przetwarzanie współbieżne nierównomierne (NUMA, Non-Uniform Memory Access),
  • przetwarzanie w pełni równoległe (MPP - Massively Parallel Processors),

i poprzez uaktywnienie wirtualnego trybu pracy procesora (a tryb jest związany m.in. z dostępem procesora do pamięci), pracy chronionej przez system operacyjny i oprogramowanie obsługujące V86 - Virtual 8086, VDS - Virtual DMA Specification, VCPI - Virtual Control Program Interface lub DPMI - DOS Protected Mode Interface:

[edytuj] Procesor

W sprzęcie fizycznym - w mikroprocesorach:

[edytuj] Zobacz też

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com